mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 06:15:52 +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);
|
||||
|
||||
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 && pipe_pos > 0 && pipe_pos < boot_cmd.size())
|
||||
|
||||
if (pipe_pos != string::npos)
|
||||
{
|
||||
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)
|
||||
|
@ -355,27 +361,31 @@ namespace Sysreg_
|
|||
|
||||
bool ret = true;
|
||||
vector<string> vect;
|
||||
|
||||
size_t lines = 0;
|
||||
while(1)
|
||||
{
|
||||
if (isTimeout(m_Timeout))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (namedpipe_reader.readPipe (vect) != 0)
|
||||
size_t line_count = namedpipe_reader.readPipe (vect);
|
||||
if (!line_count)
|
||||
{
|
||||
DebugState state = checkDebugData(vect);
|
||||
if (state == DebugStateBSODDetected || state == DebugStateUMEDetected)
|
||||
{
|
||||
ret = false;
|
||||
break;
|
||||
}
|
||||
else if (state == DebugStateCPReached)
|
||||
{
|
||||
break;
|
||||
}
|
||||
cerr << "No data read" << endl;
|
||||
continue;
|
||||
}
|
||||
|
||||
DebugState state = checkDebugData(vect);
|
||||
if (state == DebugStateBSODDetected || state == DebugStateUMEDetected)
|
||||
{
|
||||
ret = false;
|
||||
break;
|
||||
}
|
||||
else if (state == DebugStateCPReached)
|
||||
{
|
||||
break;
|
||||
}
|
||||
lines += line_count;
|
||||
}
|
||||
namedpipe_reader.closePipe ();
|
||||
_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
|
||||
{
|
||||
cout << "The regression test " << regtest->getName () << " failed" << endl;
|
||||
return -2;
|
||||
}
|
||||
|
||||
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