- Flush cout after each write as already done by Colin in r66855, per ROSTESTS-158
- Use DbgPrint instead of OutputDebugStringA again because the latter only calls the former anyway
Fixes test summary lines not being recognized by Testman, especially on VMware.
A little summary so we don't keep going back and forth with this function:
1) Only writing complete lines is required to that the output doesn't mix with debug output from other components. See r55618
2) OutputDebugStringA splits its input into 512-byte-sized blocks with no regard for line breaks, so using it with strings larger than 512 bytes breaks (1).
3) OutputDebugStringA eventually calls DbgPrint("%s", string) anyway so using it with chunks smaller than 512 bytes is not an optimization
As a result, yes this function MUST split up the lines itself, this can't be optimized or simplified away! kthxbye
ROSTESTS-178 #resolve
svn path=/trunk/; revision=68246
Make outputting a string as easy as it should be. Now that our StringOut internally uses OutputDebugStringA instead of DbgPrint, we don't need to output in 512 byte chunks anymore.
Additionally, do an explicit flush when using std::cout to not lose debug output.
ROSTESTS-158 #resolve #comment Committed in r66855
svn path=/trunk/; revision=66855
- Add /n option to suppress console output. May or may not help to speed up testbot runs, but can't hurt to have in here.
svn path=/trunk/; revision=66318
Use "advanced C++ features" like default parameters to reduce the complexity of StringOut calls and fix a warning in the MSVC build :-)
svn path=/trunk/; revision=57076
If the last chunk of the string sent to StringOut isn't a whole line and forcePrint is set to false, send back what's left after processing. The caller is then responsible for prepending that string next time it calls StringOut. Should fix the rest of debug log corruptions.
svn path=/trunk/; revision=55670
rosautotest
- Rewrite rosautotest in C++
Should increase maintainability and expandability, since most of the functionality is encapsulated in classes and there exist some abstract classes for further enhancements (i.e. new test types).
Furthermore, due to the usage of STL strings, we don't need x lines anymore just for building a string out of several small parts.
- The new codebase made it fairly easy to implement a Crash Recovery feature based on a journal.
If you start rosautotest with the /r option under ReactOS, it will keep a journal about the tests to run and the tests already ran. In case of a crash, it can just continue with the next test in the list then.
- Add some reasonable timeouts to avoid certain hangs in case a test crashes
sysreg2
- Make the necessary changes to sysreg2 to restart the VM in case of such a crash in 3rd stage, but set a maximum number of allowed crashes as well.
Christoph, please test and review that on the Buildslave :-)
- Prepend all sysreg messages with [SYSREG] through a new function SysregPrintf, so the BuildBot aggregator script of testman can distinguish between debug output and sysreg messages.
- Put all header includes into the central header file "sysreg.h"
- Remove unnecessary libs from the Makefile
testman
- Change the testman Web Interface to show such crashes as CRASH in the Compare and Detail views.
svn path=/trunk/; revision=40147