Brad King
6a7eae7184
Rewrite CTest child output handling
...
This commit fixes cmCTestRunTest and cmProcess to more efficiently
handle child output. We now use the buffer for each child output pipe
to hold at most a partial line plus one new block of data at a time.
All complete lines are scanned in-place, and then only the partial line
at the end of the buffer is moved back to the beginning before appending
new data.
We also simplify the cmProcess interface by making GetNextOutputLine the
only method that needs to be called while the process is running. This
simplifies cmCTestRunTest so that CheckOutput can be called until it
returns false when the process is done.
2009-09-11 12:26:41 -04:00
Brad King
b6c26cded2
Initialize cmCTestRunTest instances robustly
...
All instances of this class need a cmCTestTestHandler, so we now require
one to construct it. The instance also provides the cmCTest instance
too.
2009-09-11 10:09:48 -04:00
Zach Mullen
4b4e801eba
BUG: Fixed segfault and bad reporting if a ctest executable could not be found. Also added some batch testing code that is not yet complete.
2009-09-10 11:16:08 -04:00
Zach Mullen
a02ef56401
BUG: Fixed issue where ctest would hang if a process terminated with output in its buffers but no newline
2009-09-08 10:16:16 -04:00
Zach Mullen
5fb958fde9
ENH: Added ctest test options PROCESSORS and RUN_SERIAL. These allow specification of resource allocation for given tests running with the ctest -j N option. RUN_SERIAL ensures that a given test does not run in parallel with any other test. Also forced appending of "..." to the longest test name in ctest.
2009-09-07 10:26:17 -04:00
Zach Mullen
5517e17bf9
Fixed ctest output processing. Should now display output as it occurs, as well as be able to consume multiple lines if they exist within the timeout.
2009-09-04 13:50:06 -04:00
Zach Mullen
d4adde13d7
Allowed tests to pull more than one line of output in their quantum. Fixed uninitialized variables in the case that the test process could not start.
2009-09-03 15:33:44 -04:00
Zach Mullen
659171d1f7
ENH: Added PARALLEL_LEVEL option for ctest_memcheck(). Added PROCESSORS option to set_tests_properties (implementation to come).
2009-09-03 10:47:14 -04:00
Zach Mullen
69fd641adb
Fixed ctest output where max test index is not the same width as the total number of tests. Also some preliminary changes for batching ctest jobs
2009-09-02 10:08:40 -04:00
Zach Mullen
90cc5c5e04
ENH: Improved test reporting output
2009-09-01 11:58:04 -04:00
Zach Mullen
5a5cc52230
Fixed conversion warning on 64 bit machines
2009-08-31 09:50:35 -04:00
Zach Mullen
387ba0c646
Fixed line length issue
2009-08-30 10:57:30 -04:00
Zach Mullen
b0b5ffcf5c
MemCheck should now work again in ctest
2009-08-28 15:08:03 -04:00
Zach Mullen
996bb51a1d
Replaced std::stringstream with cmOStringStream
2009-08-28 11:40:34 -04:00
Zach Mullen
b427d1985e
Added ctest -N test. Fixed ctest working directory bug. MemCheck fix coming soon...
2009-08-28 11:08:39 -04:00
Zach Mullen
177edc5ed1
Fixed ctest -N segfault issue. Further refactored ctest. Enabled failover for ctest
2009-08-27 10:37:30 -04:00
Zach Mullen
8ffd8d0a03
ENH: refactored ctest. All testing is now parallel. If no -j option is specified, defaults to a MP level of 1 (non parallel)
2009-08-26 12:09:06 -04:00
Zach Mullen
8c6aa445a2
Fixed line length over 80
2009-08-20 09:46:43 -04:00
Zach Mullen
b9daa192af
ENH: Refactored CTest test execution code into an object
2009-08-19 08:58:36 -04:00