mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 07:55:56 +00:00
- update svn properties
- improve error checking - return -2 when the test fails - add a few test configs (required for sysregtest target) svn path=/trunk/; revision=24751
This commit is contained in:
parent
8269b5eebd
commit
dd14ad52ea
5 changed files with 384 additions and 19 deletions
|
@ -325,15 +325,21 @@ namespace Sysreg_
|
||||||
OsSupport::ProcessID pid = OsSupport::createProcess ((TCHAR*)boot_cmd.c_str (), 0, NULL);
|
OsSupport::ProcessID pid = OsSupport::createProcess ((TCHAR*)boot_cmd.c_str (), 0, NULL);
|
||||||
|
|
||||||
string::size_type pipe_pos = boot_cmd.find (_T("serial pipe:"));
|
string::size_type pipe_pos = boot_cmd.find (_T("serial pipe:"));
|
||||||
pipe_pos += 12;
|
|
||||||
string::size_type pipe_pos_end = boot_cmd.find (_T(" "), pipe_pos);
|
if (pipe_pos != string::npos)
|
||||||
if (pipe_pos != string::npos && pipe_pos > 0 && pipe_pos < boot_cmd.size())
|
|
||||||
{
|
{
|
||||||
pipecmd = _T("\\\\.\\pipe\\") + boot_cmd.substr (pipe_pos, pipe_pos_end - pipe_pos);
|
pipe_pos += 12;
|
||||||
|
string::size_type pipe_pos_end = boot_cmd.find (_T(" "), pipe_pos);
|
||||||
|
if (pipe_pos != string::npos && pipe_pos > 0 && pipe_pos < boot_cmd.size())
|
||||||
|
{
|
||||||
|
pipecmd = _T("\\\\.\\pipe\\") + boot_cmd.substr (pipe_pos, pipe_pos_end - pipe_pos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (!pipecmd.length ())
|
||||||
{
|
{
|
||||||
return false;
|
//FIXME
|
||||||
|
pipecmd = _T("\\\\.\\pipe\\vmwaredebug");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_Delayread)
|
if (m_Delayread)
|
||||||
|
@ -355,27 +361,31 @@ namespace Sysreg_
|
||||||
|
|
||||||
bool ret = true;
|
bool ret = true;
|
||||||
vector<string> vect;
|
vector<string> vect;
|
||||||
|
size_t lines = 0;
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
if (isTimeout(m_Timeout))
|
if (isTimeout(m_Timeout))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
size_t line_count = namedpipe_reader.readPipe (vect);
|
||||||
if (namedpipe_reader.readPipe (vect) != 0)
|
if (!line_count)
|
||||||
{
|
{
|
||||||
DebugState state = checkDebugData(vect);
|
cerr << "No data read" << endl;
|
||||||
if (state == DebugStateBSODDetected || state == DebugStateUMEDetected)
|
continue;
|
||||||
{
|
|
||||||
ret = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (state == DebugStateCPReached)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DebugState state = checkDebugData(vect);
|
||||||
|
if (state == DebugStateBSODDetected || state == DebugStateUMEDetected)
|
||||||
|
{
|
||||||
|
ret = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (state == DebugStateCPReached)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
lines += line_count;
|
||||||
}
|
}
|
||||||
namedpipe_reader.closePipe ();
|
namedpipe_reader.closePipe ();
|
||||||
_sleep(3* CLOCKS_PER_SEC);
|
_sleep(3* CLOCKS_PER_SEC);
|
||||||
|
|
117
reactos/tools/sysreg/runonce.cfg
Normal file
117
reactos/tools/sysreg/runonce.cfg
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
; ROS_OUTPUT
|
||||||
|
;
|
||||||
|
; This variable sets the location where to search symbol files for modules
|
||||||
|
; This is required when tracing usermode exceptions, bsod etc...
|
||||||
|
;
|
||||||
|
; If this value is not defined, sysreg looks for the environment variable
|
||||||
|
; ROS_OUTPUT. If this is also not set, it uses the default output-i386
|
||||||
|
|
||||||
|
ROS_OUTPUT=D:\reactos\output-i386
|
||||||
|
|
||||||
|
; ROS_ADDR2LINE
|
||||||
|
;
|
||||||
|
; This value is used by the symbol resolver to convert an module address into
|
||||||
|
; an source file + line number;
|
||||||
|
;
|
||||||
|
; Note: The symbol resolver appends the modulename and the module address seperated by an space
|
||||||
|
|
||||||
|
ROS_ADDR2LINE=addr2line.exe --exe=
|
||||||
|
|
||||||
|
;-----------------------------------------------------------------------------------------
|
||||||
|
; RosBoot specific settings
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_CMD
|
||||||
|
;
|
||||||
|
; This value is the command which is executed to gain debugging data
|
||||||
|
; this value is mandatory
|
||||||
|
|
||||||
|
ROSBOOT_CMD=D:\reactos\qemu\qemu.exe -serial pipe:qemu -boot c -m 128 -L D:\reactos\qemu\ D:\reactos\RosVM.vmdk -pidfile pid.txt
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_PIDFILE
|
||||||
|
;
|
||||||
|
; This option stores the pid of the emulator process in a text file.
|
||||||
|
;
|
||||||
|
|
||||||
|
ROSBOOT_PID_FILE=pid.txt
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_DEBUG_PORT
|
||||||
|
;
|
||||||
|
; This variable controls on where to look for debugging data. If the
|
||||||
|
; value is set to file, then sysreg will execute ROSBOOT_CMD and also
|
||||||
|
; open the file specified in ROSBOOT_DEBUG_FILE and read the debugging info from the file
|
||||||
|
;
|
||||||
|
; If the value is set to pipe, then sysreg will read from pipe created by the
|
||||||
|
; ROSBOOT_CMD
|
||||||
|
;
|
||||||
|
;ROSBOOT_DEBUG_PORT=file
|
||||||
|
ROSBOOT_DEBUG_PORT=pipe
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_DEBUG_FILE
|
||||||
|
;
|
||||||
|
; This value specifies the debug file. This variable must be set when using
|
||||||
|
; ROSBOOT_DEBUG_PORT=file
|
||||||
|
;
|
||||||
|
; Note: when ROSBOOT_DEBUG_PORT is set to pipe, then sysreg will write all received
|
||||||
|
; debug data to the specified debug file
|
||||||
|
;
|
||||||
|
|
||||||
|
;ROSBOOT_DEBUG_FILE=D:\ReactOS\tools\sysreg\bsdebug.log
|
||||||
|
;ROSBOOT_DEBUG_FILE=D:\ReactOS\tools\sysreg\debug.log
|
||||||
|
|
||||||
|
; ROSBOOT_DELAY_READ;
|
||||||
|
;
|
||||||
|
; When the emulator is started, it spends a little time loading and running through its
|
||||||
|
; BIOS. This time delays reading from the pipe/file untill the specified value
|
||||||
|
;
|
||||||
|
; the value is in seconds
|
||||||
|
;
|
||||||
|
; Note: if the value is not provided, then reading debug info is started immediately
|
||||||
|
|
||||||
|
ROSBOOT_DELAY_READ=4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ROSBOOT_TIME_OUT
|
||||||
|
;
|
||||||
|
; This variable is the maximum runtime of the ROSBOOT_CMD. If the command
|
||||||
|
; runs longer than this value, sysreg exits with success mode;
|
||||||
|
;
|
||||||
|
; Note: if you set the variable ROSBOOT_CHECK_POINT and the checkpoint is not reached
|
||||||
|
; within this time, sysreg exits with failure mode
|
||||||
|
;
|
||||||
|
; If the variable is not set, the default timeout is 1 minute
|
||||||
|
;
|
||||||
|
ROSBOOT_TIME_OUT=180.0
|
||||||
|
|
||||||
|
; ROSBOOT_CHECK_POINT
|
||||||
|
;
|
||||||
|
; RosBoot will stop executing when it finds a string in the form
|
||||||
|
; SYSREG_CHECKPOINT:CP_NAME
|
||||||
|
;
|
||||||
|
; CP_NAME is the value of the ROSBOOT_CHECK_POINT variable
|
||||||
|
|
||||||
|
ROSBOOT_CHECK_POINT=THIRDBOOT_COMPLETE
|
||||||
|
|
||||||
|
; ROSBOOT_CRITICAL_APP
|
||||||
|
;
|
||||||
|
; If an user-mode exception occurs in an critical application, i.e. setup.exe / explorer.exe, sysreg will report
|
||||||
|
; that the test has failed and quit debugging immediately
|
||||||
|
;
|
||||||
|
; if an user-mode exception occurs in any other application, sysreg will report the exception but the exception
|
||||||
|
; has no effect on the test result
|
||||||
|
;
|
||||||
|
; Note: if the value is set to IGNORE, sysreg will ignore all user-mode exceptions
|
||||||
|
;
|
||||||
|
; Note: if the variable is not set, then sysreg will stop on the first user-mode exception
|
||||||
|
;
|
||||||
|
; seperate each application with an space
|
||||||
|
|
||||||
|
|
||||||
|
ROSBOOT_CRITICAL_APP=setup.exe userinit.exe smss.exe winlogon.exe csrss.exe explorer.exe
|
||||||
|
;ROSBOOT_CRITICAL_APP=setup.exe userinit.exe smss.exe winlogon.exe csrss.exe explorer.exe lsass.exe
|
||||||
|
|
118
reactos/tools/sysreg/secstage.cfg
Normal file
118
reactos/tools/sysreg/secstage.cfg
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
; ROS_OUTPUT
|
||||||
|
;
|
||||||
|
; This variable sets the location where to search symbol files for modules
|
||||||
|
; This is required when tracing usermode exceptions, bsod etc...
|
||||||
|
;
|
||||||
|
; If this value is not defined, sysreg looks for the environment variable
|
||||||
|
; ROS_OUTPUT. If this is also not set, it uses the default output-i386
|
||||||
|
|
||||||
|
ROS_OUTPUT=D:\reactos\output-i386
|
||||||
|
|
||||||
|
; ROS_ADDR2LINE
|
||||||
|
;
|
||||||
|
; This value is used by the symbol resolver to convert an module address into
|
||||||
|
; an source file + line number;
|
||||||
|
;
|
||||||
|
; Note: The symbol resolver appends the modulename and the module address seperated by an space
|
||||||
|
|
||||||
|
ROS_ADDR2LINE=addr2line.exe --exe=
|
||||||
|
|
||||||
|
;-----------------------------------------------------------------------------------------
|
||||||
|
; RosBoot specific settings
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_CMD
|
||||||
|
;
|
||||||
|
; This value is the command which is executed to gain debugging data
|
||||||
|
; this value is mandatory
|
||||||
|
|
||||||
|
ROSBOOT_CMD=D:\reactos\qemu\qemu.exe -serial pipe:qemu -boot c -m 128 -L D:\reactos\qemu\ D:\reactos\RosVM.vmdk -pidfile pid.txt
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_PIDFILE
|
||||||
|
;
|
||||||
|
; This option stores the pid of the emulator process in a text file.
|
||||||
|
;
|
||||||
|
|
||||||
|
ROSBOOT_PID_FILE=pid.txt
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_DEBUG_PORT
|
||||||
|
;
|
||||||
|
; This variable controls on where to look for debugging data. If the
|
||||||
|
; value is set to file, then sysreg will execute ROSBOOT_CMD and also
|
||||||
|
; open the file specified in ROSBOOT_DEBUG_FILE and read the debugging info from the file
|
||||||
|
;
|
||||||
|
; If the value is set to pipe, then sysreg will read from pipe created by the
|
||||||
|
; ROSBOOT_CMD
|
||||||
|
;
|
||||||
|
;ROSBOOT_DEBUG_PORT=file
|
||||||
|
ROSBOOT_DEBUG_PORT=pipe
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_DEBUG_FILE
|
||||||
|
;
|
||||||
|
; This value specifies the debug file. This variable must be set when using
|
||||||
|
; ROSBOOT_DEBUG_PORT=file
|
||||||
|
;
|
||||||
|
; Note: when ROSBOOT_DEBUG_PORT is set to pipe, then sysreg will write all received
|
||||||
|
; debug data to the specified debug file
|
||||||
|
;
|
||||||
|
|
||||||
|
;ROSBOOT_DEBUG_FILE=D:\ReactOS\tools\sysreg\bsdebug.log
|
||||||
|
;ROSBOOT_DEBUG_FILE=D:\ReactOS\tools\sysreg\debug.log
|
||||||
|
|
||||||
|
; ROSBOOT_DELAY_READ;
|
||||||
|
;
|
||||||
|
; When the emulator is started, it spends a little time loading and running through its
|
||||||
|
; BIOS. This time delays reading from the pipe/file untill the specified value
|
||||||
|
;
|
||||||
|
; the value is in seconds
|
||||||
|
;
|
||||||
|
; Note: if the value is not provided, then reading debug info is started immediately
|
||||||
|
|
||||||
|
ROSBOOT_DELAY_READ=4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ROSBOOT_TIME_OUT
|
||||||
|
;
|
||||||
|
; This variable is the maximum runtime of the ROSBOOT_CMD. If the command
|
||||||
|
; runs longer than this value, sysreg exits with success mode;
|
||||||
|
;
|
||||||
|
; Note: if you set the variable ROSBOOT_CHECK_POINT and the checkpoint is not reached
|
||||||
|
; within this time, sysreg exits with failure mode
|
||||||
|
;
|
||||||
|
; If the variable is not set, the default timeout is 1 minute
|
||||||
|
;
|
||||||
|
ROSBOOT_TIME_OUT=180.0
|
||||||
|
|
||||||
|
; ROSBOOT_CHECK_POINT
|
||||||
|
;
|
||||||
|
; RosBoot will stop executing when it finds a string in the form
|
||||||
|
; SYSREG_CHECKPOINT:CP_NAME
|
||||||
|
;
|
||||||
|
; CP_NAME is the value of the ROSBOOT_CHECK_POINT variable
|
||||||
|
|
||||||
|
ROSBOOT_CHECK_POINT=SYSSETUP_COMPLETE
|
||||||
|
|
||||||
|
|
||||||
|
; ROSBOOT_CRITICAL_APP
|
||||||
|
;
|
||||||
|
; If an user-mode exception occurs in an critical application, i.e. setup.exe / explorer.exe, sysreg will report
|
||||||
|
; that the test has failed and quit debugging immediately
|
||||||
|
;
|
||||||
|
; if an user-mode exception occurs in any other application, sysreg will report the exception but the exception
|
||||||
|
; has no effect on the test result
|
||||||
|
;
|
||||||
|
; Note: if the value is set to IGNORE, sysreg will ignore all user-mode exceptions
|
||||||
|
;
|
||||||
|
; Note: if the variable is not set, then sysreg will stop on the first user-mode exception
|
||||||
|
;
|
||||||
|
; seperate each application with an space
|
||||||
|
|
||||||
|
|
||||||
|
ROSBOOT_CRITICAL_APP=setup.exe userinit.exe smss.exe winlogon.exe csrss.exe explorer.exe
|
||||||
|
;ROSBOOT_CRITICAL_APP=setup.exe userinit.exe smss.exe winlogon.exe csrss.exe explorer.exe lsass.exe
|
||||||
|
|
|
@ -97,6 +97,7 @@ int _tmain(int argc, TCHAR * argv[])
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cout << "The regression test " << regtest->getName () << " failed" << endl;
|
cout << "The regression test " << regtest->getName () << " failed" << endl;
|
||||||
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
119
reactos/tools/sysreg/txtmode.cfg
Normal file
119
reactos/tools/sysreg/txtmode.cfg
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
; ROS_OUTPUT
|
||||||
|
;
|
||||||
|
; This variable sets the location where to search symbol files for modules
|
||||||
|
; This is required when tracing usermode exceptions, bsod etc...
|
||||||
|
;
|
||||||
|
; If this value is not defined, sysreg looks for the environment variable
|
||||||
|
; ROS_OUTPUT. If this is also not set, it uses the default output-i386
|
||||||
|
|
||||||
|
ROS_OUTPUT=D:\reactos\output-i386
|
||||||
|
|
||||||
|
; ROS_ADDR2LINE
|
||||||
|
;
|
||||||
|
; This value is used by the symbol resolver to convert an module address into
|
||||||
|
; an source file + line number;
|
||||||
|
;
|
||||||
|
; Note: The symbol resolver appends the modulename and the module address seperated by an space
|
||||||
|
|
||||||
|
ROS_ADDR2LINE=addr2line.exe --exe=
|
||||||
|
|
||||||
|
;-----------------------------------------------------------------------------------------
|
||||||
|
; RosBoot specific settings
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_CMD
|
||||||
|
;
|
||||||
|
; This value is the command which is executed to gain debugging data
|
||||||
|
; this value is mandatory
|
||||||
|
|
||||||
|
ROSBOOT_CMD=D:\reactos\qemu\qemu.exe -serial pipe:qemu -boot d -m 128 -L D:\reactos\qemu\ D:\reactos\RosVM.vmdk -cdrom D:\Reactos\ReactOS-RegTest.iso -pidfile pid.txt
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_PIDFILE
|
||||||
|
;
|
||||||
|
; This option stores the pid of the emulator process in a text file.
|
||||||
|
;
|
||||||
|
|
||||||
|
ROSBOOT_PID_FILE=pid.txt
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_DEBUG_PORT
|
||||||
|
;
|
||||||
|
; This variable controls on where to look for debugging data. If the
|
||||||
|
; value is set to file, then sysreg will execute ROSBOOT_CMD and also
|
||||||
|
; open the file specified in ROSBOOT_DEBUG_FILE and read the debugging info from the file
|
||||||
|
;
|
||||||
|
; If the value is set to pipe, then sysreg will read from pipe created by the
|
||||||
|
; ROSBOOT_CMD
|
||||||
|
;
|
||||||
|
;ROSBOOT_DEBUG_PORT=file
|
||||||
|
ROSBOOT_DEBUG_PORT=pipe
|
||||||
|
|
||||||
|
;
|
||||||
|
; ROSBOOT_DEBUG_FILE
|
||||||
|
;
|
||||||
|
; This value specifies the debug file. This variable must be set when using
|
||||||
|
; ROSBOOT_DEBUG_PORT=file
|
||||||
|
;
|
||||||
|
; Note: when ROSBOOT_DEBUG_PORT is set to pipe, then sysreg will write all received
|
||||||
|
; debug data to the specified debug file
|
||||||
|
;
|
||||||
|
|
||||||
|
;ROSBOOT_DEBUG_FILE=D:\ReactOS\tools\sysreg\bsdebug.log
|
||||||
|
;ROSBOOT_DEBUG_FILE=D:\ReactOS\tools\sysreg\debug.log
|
||||||
|
|
||||||
|
; ROSBOOT_DELAY_READ;
|
||||||
|
;
|
||||||
|
; When the emulator is started, it spends a little time loading and running through its
|
||||||
|
; BIOS. This time delays reading from the pipe/file untill the specified value
|
||||||
|
;
|
||||||
|
; the value is in seconds
|
||||||
|
;
|
||||||
|
; Note: if the value is not provided, then reading debug info is started immediately
|
||||||
|
|
||||||
|
ROSBOOT_DELAY_READ=4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ROSBOOT_TIME_OUT
|
||||||
|
;
|
||||||
|
; This variable is the maximum runtime of the ROSBOOT_CMD. If the command
|
||||||
|
; runs longer than this value, sysreg exits with success mode;
|
||||||
|
;
|
||||||
|
; Note: if you set the variable ROSBOOT_CHECK_POINT and the checkpoint is not reached
|
||||||
|
; within this time, sysreg exits with failure mode
|
||||||
|
;
|
||||||
|
; If the variable is not set, the default timeout is 1 minute
|
||||||
|
;
|
||||||
|
ROSBOOT_TIME_OUT=180.0
|
||||||
|
|
||||||
|
; ROSBOOT_CHECK_POINT
|
||||||
|
;
|
||||||
|
; RosBoot will stop executing when it finds a string in the form
|
||||||
|
; SYSREG_CHECKPOINT:CP_NAME
|
||||||
|
;
|
||||||
|
; CP_NAME is the value of the ROSBOOT_CHECK_POINT variable
|
||||||
|
|
||||||
|
ROSBOOT_CHECK_POINT=USETUP_COMPLETE
|
||||||
|
;ROSBOOT_CHECK_POINT=SYSSETUP_COMPLETE
|
||||||
|
;ROSBOOT_CHECK_POINT=THIRDBOOT_COMPLETE
|
||||||
|
|
||||||
|
; ROSBOOT_CRITICAL_APP
|
||||||
|
;
|
||||||
|
; If an user-mode exception occurs in an critical application, i.e. setup.exe / explorer.exe, sysreg will report
|
||||||
|
; that the test has failed and quit debugging immediately
|
||||||
|
;
|
||||||
|
; if an user-mode exception occurs in any other application, sysreg will report the exception but the exception
|
||||||
|
; has no effect on the test result
|
||||||
|
;
|
||||||
|
; Note: if the value is set to IGNORE, sysreg will ignore all user-mode exceptions
|
||||||
|
;
|
||||||
|
; Note: if the variable is not set, then sysreg will stop on the first user-mode exception
|
||||||
|
;
|
||||||
|
; seperate each application with an space
|
||||||
|
|
||||||
|
|
||||||
|
ROSBOOT_CRITICAL_APP=setup.exe userinit.exe smss.exe winlogon.exe csrss.exe explorer.exe
|
||||||
|
;ROSBOOT_CRITICAL_APP=setup.exe userinit.exe smss.exe winlogon.exe csrss.exe explorer.exe lsass.exe
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue