Commit Graph

884 Commits

Author SHA1 Message Date
Zach Mullen a2fe175647 More debugging of StopTime test 2010-03-18 10:29:02 -04:00
Zach Mullen 0d48f81d32 Test using std::min 2010-03-17 12:12:04 -04:00
Zach Mullen 4c59570bfb Replace min() call with its literal definition 2010-03-17 12:07:10 -04:00
Zach Mullen 0ba9d04117 Add the --stop-time argument
Unit test and script hook for STOP_TIME
2010-03-17 11:04:13 -04:00
Zach Mullen 2fd9b8072b Add unit test for RESOURCE_LOCK test property 2010-03-03 10:33:09 -05:00
Zach Mullen 767ffba8ff Added RESOURCE_LOCK test property. 2010-03-02 15:38:02 -05:00
Zach Mullen 5cfbdb1f80 Close ifstream. 2010-03-01 12:05:58 -05:00
Zach Mullen 348f6c4d8c If tests failed on the last run, have them run first next time 2010-03-01 11:59:00 -05:00
Zach Mullen 09e748c69a Configurable path to CTest cost data file
Allow the user to set the CMake variable CTEST_COST_DATA_FILE, which will be used to store the cost data from test runs.  If not set, defaults to the original location in the build tree Testing/Temporary dir.
2010-03-01 11:06:28 -05:00
Zach Mullen b4d27dc041 Use historical average of test times to schedule tests. 2010-02-26 11:02:05 -05:00
Zach Mullen 57efb4a497 BUG: We shouldn't be setting the HideWindow option on the test processes we create. 2010-02-19 13:28:04 -05:00
David Cole 90f6a7270a Fix for fix for issue #2336 - do not specify CMAKE_BUILD_TYPE when the ctest -C configuration type string is empty. 2010-02-10 14:47:21 -05:00
Brad King 8bd231866a cmCTestGIT: Refresh index for local modifications
We use 'git diff-index' to detect local modifications after pull.  On
some filesystems the work tree timestamps of a few files may be dated
after the index, making them appear as locally modified.  We address the
problem by using 'git update-index --refresh' to refresh the index and
avoid false local modifications.
2010-02-09 13:31:32 -05:00
Brad King 2ec78b4de7 cmCTestBZR: Strip trailing slashes from paths
Our internal path processing methods assume no trailing slashes, but bzr
adds trailing slashes to updated directories.  This can lead to empty
entries in Update.xml files.  We address the problem by stripping the
slashes as soon as they are parsed.
2010-02-09 13:31:12 -05:00
Zach Mullen a0cc49a915 Support for relative paths to executables in MemCheck tests. Also fixed a bug causing memcheck args to be overwritten repetitively. 2010-02-04 11:24:57 -05:00
Zach Mullen c87282ce52 Re-enabled Scheduler test and fixed the underlying problem. 2010-02-03 16:32:26 -05:00
David Cole b0d5fa0bc7 Fix for issue #5041 - improve error messages that may occur during ctest_build and ctest_configure.
The improved text gives very clear information when either the CMakeLists.txt or CTestConfig.cmake file is missing. Hopefully, it makes it easier for those poor future souls who encounter these messages to solve their problems quickly.
2009-12-29 18:03:45 -05:00
David Cole aad15c3abf Fix issue #10060 - add APPEND arg to ctest_start command.
If APPEND is given to ctest_start, it will read the tag from the current existing Testing/TAG file rather than creating a new one based on the current time stamp. This allows a developer to run several dashboard scripts in a row, all of which will share the same tag/stamp/buildid when they finally get submitted to CDash. Now you can split the running of build phases and test phases for the same dashboard row into multiple scripts.
2009-12-29 14:38:31 -05:00
David Cole 4d3a387ac6 Preserve environment variables across calls to cmCTestScriptHandler::RunConfigurationScript. This will help prevent problems like we are currently experiencing (regarding CMake continuous dashboards only running once each day because the HOME environment variable is modified indirectly by a command in a called script, but affects the environment in the calling script). 2009-12-23 14:34:46 -05:00
Brad King cb27cfb1cc Use human-readable Git commit times in Update.xml
Previously we produced commit times formatted like

  1261403774 -0500

which is what the Git plumbing prints.  Now we use a human-readable
format like

  2009-12-21 15:28:06 -0500

which is still easy to machine-parse.
2009-12-21 10:29:00 -05:00
Zach Mullen 3312e3d710 Fix size type conversion warning in RunTest. 2009-12-21 09:52:56 -05:00
Zach Mullen 66f44f64d5 Fix segfault on Borland compiler resulting from divide by 0. 2009-12-18 11:42:58 -05:00
Brad King a4cdd73636 Use literal quotes in Update.xml UpdateCommand
Previously we escaped quotes in <UpdateCommand>...</UpdateCommand>
values using '&quot;'.  This is not necessary because the value is in
xml CDATA and not an xml attribute.
2009-12-18 10:54:24 -05:00
Brad King 3e724b2725 Submit Subversion directory path in Update.xml
A Subversion revision is unique across the entire repository, but work
trees typically correspond only to a subdirectory below the root path.
In order to specify the version of the source code that was tested,
CTest now submits a <SVNPath> element in Update.xml that specifies the
directory of the repository that corresponds to the work tree.  In
combination with the revision number this uniquely specifies the tested
source.  See issue #7541.
2009-12-18 08:19:41 -05:00
Brad King a73833d037 Submit global tree revision in Update.xml
We teach CTest to report in a <Revision> element the revision of the
source tree that was tested.  This makes sense for all modern VCS tools
because they version the whole tree.  We simply omit this element for
CVS because it only versions files.  See issue #7541.
2009-12-18 08:13:51 -05:00
Zach Mullen 1842d2eae0 Fix output compression error message 2009-12-17 11:17:57 -05:00
Zach Mullen ff916b48bd CTest output submitted to the dashboard is now compressed by default. 2009-12-17 11:14:49 -05:00
Zach Mullen 9add940eb6 Added an option to conditionally attach files to a test submission only if the test does not pass. Also some preliminary changes for test output compression. 2009-12-16 14:50:16 -05:00
Zach Mullen 5bfe1a1962 Changed XML formatting of files attached to test so that each file is archived and marked up individually, in order to make things easier on the CDash side. Also switched to using the NamedMeasurement tag instead of a new tag. 2009-12-15 14:24:24 -05:00
Zach Mullen dc66139f7c CTest-side changes to allow users to attach arbitrary files to test results that will be submitted to cdash using the ATTACHED_FILES test property. 2009-12-15 12:07:15 -05:00
Zach Mullen b2e7da885d Added a "-http1.0" option to ctest to make it submit using curl's http 1.0 option. Also added parsing of html reponse output to determine whether errors or warnings were sent in response from the server. If errors or warnings occurred, the response is output to stdout, and the "submission successful" message has been changed to accurately reflect whether or not warnings or errors were returned with the response. 2009-12-11 14:10:37 -05:00
Zach Mullen 5e427677c3 Restore the "***Not Run" message to ctest command line output for tests which did not start due to missing/bad executables or missing required files. 2009-12-10 15:51:56 -05:00
Zach Mullen 4de7cc3621 Unfortunately, I noticed the comment on bug 8668 too late. This changes my last implementation of the exe wrapper to something which makes much more sense: a REQUIRED_FILES property on tests. 2009-12-10 15:37:04 -05:00
Zach Mullen 48b6133928 [0008668: CTest Dev: Missing executables shown as failed tests when using MPI.] Added a wrapping option to add_test so that exes built by the project can be safely wrapped in other exes and be listed as "not run" rather than "failed" if they are not built. 2009-12-10 14:38:32 -05:00
Zach Mullen 08ac33fe6a Fix memory leak that occurred when a test executable could not be started. (See BadExe test) 2009-12-10 09:39:19 -05:00
Zach Mullen c32088cfee Local test timeouts will now always take precedence over the global --timeout option. 2009-12-08 10:26:43 -05:00
Zach Mullen b30f627190 CMake global timeout (--timeout option) should prevail over individual test timeouts if it is lower than the individual timeout. 2009-12-07 13:25:54 -05:00
David Cole 0b38bb4c53 Fix issue #2336 - honor the -C arg to ctest. Honor it for all stages of running -D dashboards from the command line and running ctest_configure, ctest_build and ctest_test commands in -S scripts. Also, allow a script to change it by setting the CTEST_CONFIGURATION_TYPE variable: allows for multiple configuration build/test cycles within one script. Add a new signature for the cmake command build_command that accepts CONFIGURATION as one argument. The original build_command signature is still there, but now marked as deprecated in the documentation. Of course... also add CTestConfig tests to verify that -C is honored for -D dashboards and -S scripts. 2009-12-04 12:09:01 -05:00
Bill Hoffman 22c37b2b19 Hanle the case where a test can not be run because it is a bad executable. 2009-12-02 16:37:43 -05:00
Zach Mullen c17ce46c73 Align test output for timeout condition. 2009-11-30 16:09:00 -05:00
Zach Mullen a52c0118d4 Added the --timeout option to ctest command line. This sets a global timeout on all tests if no more specific timeout is set on them. 2009-11-30 16:08:11 -05:00
Brad King e1548142fb CTest: Move initial checkout to ctest_start()
In CTest command-driven script mode we support starting without a source
tree.  Previously the ctest_start() command would do some initialization
but could not do anything that required CTestConfig.cmake from the input
source tree.  Later, ctest_update() would run CTEST_CHECKOUT_COMMAND to
create the source tree, and then re-initialize everything.  This
delayed-initialization approach led to many complicated cases of which
only some worked.  For example, the second initialization only worked
correctly in Nightly mode and simply failed for Experimental and
Continuous builds.

A simpler solution is to run CTEST_CHECKOUT_COMMAND during ctest_start()
and then have a single initialization path.  In principle this change in
behavior could break scripts that set the checkout command after
ctest_start() but before ctest_update().  However, the convention we've
always followed has been to set all variables before ctest_start().

See issue #9450.
2009-11-24 08:58:59 -05:00
Zach Mullen 2921fa96ed Handle multiple carriage return issue on windows VS9. Also make sure that running ctest in showonly mode does not kill our cost store, since many ctest tests do this and corrupt our cost data. 2009-11-16 10:58:43 -05:00
Bill Hoffman 1b48d361d8 fix number of callers to work with newer versions of valgrind 2009-11-11 08:43:15 -05:00
Zach Mullen c9c0ee4056 Change logic of ctest subdirs command to allow for absolute paths. Also added test coverage for passing absolute paths to subdirs. 2009-11-10 10:40:24 -05:00
Zach Mullen f7899c7445 Fixed a bug where it was possible for a test to be started twice if a lower-indexed test depended on it. 2009-11-09 16:07:47 -05:00
Zach Mullen 17afd5257b Bug 9090: CTest does not handle absolute paths in CTestTestfile SUBDIR( ) entries.
The ctest subdirs command now checks the relative path first, and if that does not exist, also checks if the given path was absolute.  Thanks vodall for the patch.
2009-11-09 14:07:36 -05:00
Zach Mullen 9f105a3f6d Fix style warning in cmsystemtools, cosmetic change to ctest code 2009-11-05 11:37:47 -05:00
Zach Mullen 9aa4e134b5 Fixed infinite loop condition when a test's dependent test executable could not be found. 2009-11-05 11:03:07 -05:00
Zach Mullen 85912a3777 Added TARGET, CONFIGURATION, PROJECT_NAME, and FLAGS arguments to ctest_build command 2009-11-03 16:46:30 -05:00
Zach Mullen d47ada823a Added logic to check for cycles in the test dependency graph before any tests are run. Previously a cycle resulted in a segfault from stack overflow. 2009-11-02 12:52:50 -05:00
Zach Mullen 8612aa10b6 Hook for scheduling tests in a random order
This may help statistically detect implicit dependencies among unit
tests while running in parallel.
2009-10-29 15:30:12 -04:00
Bill Hoffman d7a3277fb3 Fix bug#9767 catch missing leak. 2009-10-29 08:38:04 -04:00
Zach Mullen e2b63e473d Fix working dir issue for ctest show only mode (-N) 2009-10-27 10:16:01 -04:00
Zach Mullen 99697308f3 Add a ctest test to cover cmCTestBatchTestHandler. Since its behavior isn't fully defined yet, we just run it as is and don't care much about the result. 2009-10-26 09:44:08 -04:00
Zach Mullen f2010871ba Ctest was broken for subdirs. Restored working directory state for tests so that their executables could be found. 2009-10-20 10:54:02 -04:00
Zach Mullen 727fa7bcb6 Fix ctest output alignment for cases where total tests run is not the same width as max test index. 2009-10-15 12:02:22 -04:00
David Cole 85feea2d0d Fix floating point comparison warnings. Thanks to Alex Neundorf for the patch. 2009-10-13 16:39:48 -04:00
David Cole 4439f17b20 Fix issue #5668 - use CollapseFullPath when determining if covered file is within source or binary tree. Allows gcc/gcov coverage analysis using MinGW on Windows. 2009-10-12 14:51:54 -04:00
Zach Mullen 7fd3d7cf80 BUG: #0009648 Change "The following tests FAILED" message to print on stdout rather than stderr 2009-10-05 12:47:09 -04:00
Zach Mullen b304186bc5 Match width of ctest "Start xx: " line to line up with the end test line 2009-10-05 10:20:52 -04:00
Alexander Neundorf b3040beb41 fix two more warnings from icpc
asfGlob and abfGlob were there since rev 1.3 of this file (Oct 17th 2004) and unused since
then, so remove them

Alex
2009-10-04 11:40:02 -04:00
David Cole ccb0cf1306 Fix warnings in CMake source code. 2009-10-02 15:30:01 -04:00
David Cole 44bcba7461 Fix warnings in CMake source code. Suppress rampant warnings emanating from Qt files. 2009-10-01 16:47:08 -04:00
Zach Mullen a5be445ca9 BUG: CTest should honor test timeouts. 2009-09-29 14:31:58 -04:00
Zach Mullen 202bb45695 BUG: 0009612: --output-on-failure option doesn't work with the new parallel CTest handler 2009-09-29 09:45:43 -04:00
Brad King 96afb12087 Convert CMake to OSI-approved BSD License
This converts the CMake license to a pure 3-clause OSI-approved BSD
License.  We drop the previous license clause requiring modified
versions to be plainly marked.  We also update the CMake copyright to
cover the full development time range.
2009-09-28 11:43:28 -04:00
Zach Mullen 5e06f0a557 Fixed uninitialized memory issue in ctest show-only mode 2009-09-25 11:45:19 -04:00
Zach Mullen 5a2f24856e Output a message in ctest when each test is started 2009-09-24 13:49:20 -04:00
Zach Mullen 65c418e56f Reformat ctest -N output. Removed the "Start processing tests" message as well. 2009-09-24 09:49:46 -04:00
Zach Mullen 84f3f6cad6 Tests which are not run should be added to the failed test list. 2009-09-23 15:37:50 -04:00
Zach Mullen 4342e37d63 More SLURM experimentation (ctest batch mode) 2009-09-21 15:29:34 -04:00
Zach Mullen a4c6f178fe Fixed a slurm batch argument identifier. 2009-09-21 14:58:30 -04:00
Zach Mullen 87b4c66ca8 Need to quote args when generating batch scripts from ctest 2009-09-21 14:21:41 -04:00
Zach Mullen e4293b4b38 Re-enabled failing tests; fixed ctest_build output to be consistent in the error condition across different make programs so that these tests would pass. 2009-09-21 13:40:40 -04:00
Bill Hoffman 932dac93b7 Fix uninitialized errors. 2009-09-16 11:49:09 -04:00
Zach Mullen 243bbae954 Removed fork-and-continue option from ctest generated batch script entries 2009-09-14 11:23:20 -04:00
Brad King bcbb4626a3 Avoid shadowing std::vector member
The cmProcess::Buffer class derives from std::vector.  We were using
local variable 'data' in the GetLine method but this name shadowed a
member of vector with GNU.  This renames it to 'text'.
2009-09-12 10:20:00 -04:00
Bill Hoffman 63a7d85249 Fix for bug#9442, ctest crash if CTEST_SOURCE_DIRECTORY was not set. 2009-09-11 17:15:02 -04:00
Brad King 8c24c1dcc3 Fix new CTest output handling for no newline
When we clear the buffer for an output pipe after returning the last
partial line (without a newline) we need to set the partial line range
to empty.  Otherwise the buffer object is left in an inconsistent state.
2009-09-11 16:20:24 -04:00
Bill Hoffman 8a690289c2 Add label summary times to ctest default output. Also, remove parallel time output. Add flag to disable label summary. 2009-09-11 13:34:35 -04:00
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
Brad King b41a548d86 Add parentheses around '&&' between '||' for gcc
The GNU compiler warns about possible operator precedence mistakes and
asks for explicit parentheses (-Wparentheses).  We add the parentheses
to silence the warning.  This also fixes one real logic error in the
find_package() implementation by correcting expression evaluation order.
2009-09-11 08:18:15 -04:00
Zach Mullen c57fb18920 Added some ctest batch capabilities 2009-09-10 11:18:05 -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 a516040579 ENH: ctest now writes time cost data to a file after a test set is run, and uses these time costs to schedule the processes the next time ctest is run in that build tree. 2009-09-08 17:10:35 -04:00
Zach Mullen 6727834a8c BUG: Fixed extraneous newlines from ctest process output 2009-09-08 14:48:23 -04:00
Zach Mullen 39e5f9d963 ENH: Replaced the EXPENSIVE test property with a COST test property taking a floating point value. Tests are now started in descending order of their cost, which defaults to 0 if none is specified. 2009-09-08 13:39:13 -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 384f4d1f3f Fixed warning 2009-09-08 09:12:44 -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
Bill Hoffman cdb966532b Fix memory and process leak in ctest_run_script. 2009-09-04 17:01:47 -04:00
David Cole 68b8332088 Increase curl submit timeout. A submit will timeout if there are 120 seconds of very little activity. 30 seconds was too short. 2009-09-04 14:00:26 -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
Bill Hoffman 7d190a65ca Change run_ctest_script in ctest to not stop processing when there is an error in the script being run. Also, add a RETURN_VALUE option so that you can find out if the script failed 2009-09-04 13:24:25 -04:00
Zach Mullen 7f9a0f508f Fixed output as-it-happens issue. Now displays output as it receives each newline. 2009-09-04 11:23:38 -04:00
Zach Mullen c6e5dd21fd Added the test property EXPENSIVE, which denotes that the given test(s) should be started prior to tests that are not marked as such. Also fixed test dependencies, and a few uninitialized variables in cmProcess. 2009-09-04 10:16:06 -04:00
Zach Mullen 7f6ff73396 Fixed 2 unused variable warnings 2009-09-03 15:50:47 -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 20713ab89d Fixed warnings 2009-09-03 11:14:13 -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 c5cf9b0e5f STYLE: line length 2009-09-02 16:32:43 -04:00
Zach Mullen 7e20db0224 ENH: Added PARALLEL_LEVEL option to ctest_test() command. 2009-09-02 12:35:42 -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
David Cole d741a6a57f Add curl timeout options to the SubmitUsingHTTP method. They were only in the SubmitUsingFTP method. 2009-09-01 17:23:50 -04:00
Zach Mullen 90cc5c5e04 ENH: Improved test reporting output 2009-09-01 11:58:04 -04:00
Zach Mullen 6d0b6f2b9e Fixed ctest_memcheck docs (http://www.cmake.org/Bug/view.php?id=9242) 2009-08-31 11:32:39 -04:00
Zach Mullen 59b34a6a1a Fixed Dart time recording for ctest 2009-08-31 10:28:39 -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 a2ef34d344 Fixed overwriting of a previous change set 2009-08-19 09:24:55 -04:00
Zach Mullen b9daa192af ENH: Refactored CTest test execution code into an object 2009-08-19 08:58:36 -04:00
Bill Hoffman c02c8c287c Add test times to log file as well as the stdout. 2009-08-18 14:03:50 -04:00
Bill Hoffman 3c34d0440c If labels are found on the tests, then print a time summary for all the tests run with each label. 2009-08-18 13:34:05 -04:00
Brad King dd2cf7388b Fix classification of externals in svn status
CTest runs 'svn status' to identify modified and conflicting files in
the working directory.  This commit fixes the interpretation of the 'X'
status, which corresponds to svn eXternals.  This status should be
ignored rather than treated as a local modification.
2009-08-12 08:06:57 -04:00
Bill Hoffman a696fe8183 Output total time when using -j N 2009-08-11 22:02:49 -04:00
Bill Hoffman a86df0251f Fix failing test on release build for VS 10 cmSystemTools::GetLineFromStream crashes if the stream is not open in that case. 2009-08-11 16:25:56 -04:00
Brad King a48f29c904 Set current directory variables in CTest scripts
The commit "Fix get_filename_component ABSOLUTE mode" broke the code

  get_filename_component(cwd . ABSOLUTE)

because CTest scripts did not make cmMakefile::GetCurrentDirectory()
available.  This commit fixes the problem by setting the proper
information on CTest script instances of cmMakefile.

This also makes CMAKE_CURRENT_SOURCE_DIR and CMAKE_CURRENT_BINARY_DIR
available to CTest scripts.  They are set to the working directory at
script startup.
2009-07-31 09:19:19 -04:00
Brad King e9d7ebb3ec BUG: Do not double-initialize local generators
All global generator CreateLocalGenerator methods automatically
initialize the local generator instances with SetGlobalGenerator.  In
several places we were calling SetGlobalGenerator again after receiving
the return value from CreateLocalGenerator.  The double-initializations
leaked the resources allocated by the first call to SetGlobalGenerator.
This fix removes the unnecessary calls.
2009-07-28 10:47:02 -04:00
Bill Hoffman 40850e7f1f ENH: add test times and a total time to the output of command line ctest 2009-07-27 14:17:38 -04:00
Bill Hoffman a5b06dcbb6 ENH: fix warning 2009-07-19 13:40:38 -04:00
Bill Hoffman eb5d0a7f61 ENH: fix warning 2009-07-17 16:15:11 -04:00
Bill Hoffman 3250cb3d3b ENH: compute the max test name width based on the length of the tests 2009-07-17 10:06:38 -04:00
Alexander Neundorf 7048373296 STYLE: don't load CMakeDetermineSystem and CMakeSystemSpecific directly from
cmCTestScriptHandler, but have it load the new script CTestScriptMode.cmake
-> that makes it more flexible, also add a simple test that the system name
has been determined correctly

Alex
2009-07-12 04:51:51 -04:00
Alexander Neundorf 46f99c6565 STYLE: move the code for writing the initial cache into its own separate
function, makes the long ProcessHandler() a little bit shorter

Alex
2009-07-11 16:30:18 -04:00
Alexander Neundorf a605bd5225 STYLE: rename InitCache to InitialCache, since it contains the contents for
the initial cache and is not e.g. a flag which shows whether the cache
should be initialized

Alex
2009-07-11 16:27:28 -04:00
Brad King ea00bb990b COMP: Fix cmCTestHG for old HP compiler
The compiler does not have a fully compliant std::string.
2009-07-10 13:08:54 -04:00
Brad King d4d467dbd5 ENH: Teach CTest to handle Mercurial repositories
This creates cmCTestHG to drive CTest Update handling on hg-based work
trees.  Currently we always update to the head of the remote tracking
branch (hg pull), so the nightly start time is ignored for Nightly
builds.  A later change will address this.

See issue #7879.  Patch from Emmanuel Christophe.  I modified the patch
slightly for code style, to finish up some parsing details, and to fix
the test.
2009-07-10 11:08:05 -04:00
Brad King 5b51ad580b ENH: Reports "Passed" for WILL_FAIL tests
Previously tests marked with WILL_FAIL have been reported by CTest as

  ...............***Failed  - supposed to fail

when they correctly failed.  Now we just report ".....Passed" because
there is no reason to draw attention to something that works as
expected.
2009-07-02 16:13:55 -04:00
Bill Hoffman 953439f738 ENH: add reminder comment 2009-06-25 16:39:10 -04:00
Bill Hoffman 736d8c1a0c ENH: set an upload speed limit for ctest 2009-06-25 16:38:47 -04:00
Brad King 66953c78a9 BUG: Fix CVS update parsing for TortoiseCVS
The TortoiseCVS version of cvs.exe includes the '.exe' in cvs update
messages for files removed from the repository.  This change accounts
for it in the regular expressions that match such lines.  Now removed
files are properly reported by ctest_update() when using TortoiseCVS.
2009-06-23 09:06:13 -04:00
Bill Hoffman 0e85c8b6a1 STYLE: fix warning 2009-06-15 14:22:13 -04:00
Bill Hoffman 15ad6db170 BUG: fix crash when running ctest coverage for VTK 2009-06-15 13:51:07 -04:00
Brad King 8f5af6172a ENH: Disable the xmlrpc drop method by default
We've chosen to drop our default dependence on xmlrpc.  Thus we disable
the corresponding CTest submission method and remove the sources for
building xmlrpc locally.  Users can re-enable the method by setting the
CTEST_USE_XMLRPC option to use a system-installed xmlrpc library.
2009-06-11 11:24:56 -04:00
Bill Hoffman bd1e91a460 BUG: fix for bug #8153 add purify suppression file and fix output to not be one big line 2009-05-27 11:14:08 -04:00
Brad King 55c4cbbae9 BUG: Parse more bzr xml output encodings
The BZR xml output plugin can use some encodings that are not recognized
by expat, which leads to "Error parsing bzr log xml: unknown encoding".
This works around the problem by giving expat a mapping, and adds a
test.  Patch from Tom Vercauteren.  See issue #6857.
2009-05-18 10:34:35 -04:00
Brad King 2bb13f2ca5 ENH: Remove CTest public.kitware.com drop default
Previously CTest would drop dashboard submissions at public.kitware.com
on the PublicDashboard project if there was no configuration.  The
server no longer supports forwarding to cdash.org, so there is no point
in this default.  Furthermore, there should be no default at all because
it could leak information about proprietary projects that are not
configured correctly.
2009-05-15 15:39:43 -04:00
Brad King a524e07152 ENH: Teach CTest to handle Bazaar repositories
This creates cmCTestBZR to drive CTest Update handling on bzr-based work
trees.  Currently we always update to the head of the remote tracking
branch (bzr pull), so the nightly start time is ignored for Nightly
builds.  A later change will address this.  Patch from Tom Vercauteren.
See issue #6857.
2009-05-14 16:13:52 -04:00
Brad King 7b527a6585 BUG: Remove '-d<now' from 'cvs log' commands
When CTest runs 'cvs log' to get revision information for updated files,
we were passing '-d<now'.  The option seems useless since revisions
cannot be created in the future, and can lose revisions if the client
machine clock is behind the server.
2009-04-29 14:20:40 -04:00
Brad King e8e3080ebe COMP: Fix class reference for HP aCC 2009-04-22 10:22:25 -04:00
Brad King 9c17cbeb44 ENH: Teach CTest to handle git repositories
This creates cmCTestGIT to drive CTest Update handling on git-based work
trees.  Currently we always update to the head of the remote tracking
branch (git pull), so the nightly start time is ignored for Nightly
builds.  A later change will address this.  See issue #6994.
2009-04-22 09:19:06 -04:00
Brad King d25289ad92 ENH: Factor global-VC parts out of cmCTestSVN
This factors parts of the svn update implementation that are useful for
any globally-versioning vcs tool into cmCTestGlobalVC.  It will allow
the code to be shared among the support classes for most vcs tools.
2009-04-22 09:18:19 -04:00
Bill Hoffman be7824c369 ENH: make sure CTEST_CURL_OPTIONS work from script mode 2009-04-17 14:44:01 -04:00
Bill Hoffman 682e15184a ENH: remove warning and improve message 2009-04-11 09:29:27 -04:00
Bill Hoffman d75513c9fa ENH: remove cerr call 2009-04-10 13:00:27 -04:00
Bill Hoffman 4ec691a9d1 ENH: add ability to control ssl cert checking 2009-04-10 12:15:03 -04:00
Bill Hoffman 4c3718d7b6 ENH: use 0 not FALSE 2009-03-31 15:30:36 -04:00
Bill Hoffman 1f0835b5eb ENH: add submit via cp mode 2009-03-31 15:24:50 -04:00
Brad King d66436e2e4 BUG: Fix return value of ctest_update
The CTest version control refactoring broke the value returned for the
ctest_update command's RETURN_VALUE argument.  The value is supposed to
be the number of files updated, but the refactoring accidentally made it
the number of locally modified files after the update.
2009-03-20 14:19:56 -04:00
Bill Hoffman 0a65ee8d95 ENH: allow for https submission if ctest is built with a curl that supports it 2009-03-12 14:54:00 -04:00
Brad King 589b4265a6 BUG: Do not produce empty coverage log files
This moves the filtering of source files to before the production of
coverage log files in order to avoid producing a CoverageLog-*.xml file
for 100 filtered-out files.  The change greatly reduces the number of
submitted coverage files when using label filters.
2009-03-11 13:31:40 -04:00
Brad King 5bc17136a3 BUG: Do not carry over file list between coverage
When performing multiple ctest_coverage() commands in a single CTest
instance we need to clear the list of CoverageLog-*.xml files for
submission.  Otherwise if the current coverage run produces fewer log
files than the previous run CTest will attempt to submit non-existing
files.
2009-03-11 13:31:33 -04:00
Brad King f3e713ba65 BUG: Avoid duplicate CTest coverage submission
This teaches ctest_coverage() to remove any existing CoverageLog-*.xml
when it creates new coverage results.  Otherwise the next ctest_submit()
may submit old coverage log files which unnecessarily.
2009-03-11 12:03:47 -04:00
Brad King 1d96c943e0 ENH: Efficiently filter CTest coverage by label
This teaches CTest to process coverage information only for object files
in targets containing labels of interest.  This change also improves
loading of global coverage information by globbing only in each target
support directory instead of the entire build tree.
2009-03-09 12:19:56 -04:00
Brad King a86e81c358 ENH: Generate a central list of target directories
This generalizes the previous CMakeFiles/LabelFiles.txt created at the
top of the build tree to a CMakeFiles/TargetDirectories.txt file.  It
lists the target support directories for all targets in the project.
Labels can still be loaded by looking for Labels.txt files in each
target directory.
2009-03-09 12:19:27 -04:00
Brad King dcd1c5cd8a BUG: Initialize ctest_coverage command ivar
This initializes the LabelsMentioned ivar in cmCTestCoverageCommand.
2009-03-05 10:17:42 -05:00
Bill Hoffman e7f16fcb1b BUG: make sure error condition is reset before loading scripts 2009-03-04 11:24:57 -05:00
Brad King 91a8569648 ENH: Teach ctest_coverage to filter with LABELS
This teaches ctest_coverage() to report only coverage of files labeled
with at least one label given by a new LABELS option.
2009-03-02 15:33:18 -05:00
Brad King 3078fef81c BUG: Fix coverage label reports for Bullseye
This teaches CTest to report Labels elements in the Coverage.xml file
for Bullseye coverage results.
2009-03-02 15:33:03 -05:00
Brad King c4596605df BUG: Fix coverage handler initialization
This resets coverage handler internal state on initialization so that
multiple coverage runs are independent.
2009-03-02 15:32:59 -05:00
Bill Hoffman 3043ddf144 BUG: #8611 add pass fail reasons into log file 2009-02-27 16:28:07 -05:00
Brad King 3829be4ca6 ENH: Refactor initial checkout into cmCTestVC
This adds cmCTestVC::InitialCheckout and uses it in cmCTestUpdateHandler
to run the initial checkout command.  The new implementation logs the
command in the update log consistently with the rest of the new update
implementation.
2009-02-26 09:22:32 -05:00
Brad King 7dbacb94f4 COMP: Fix cmCTestVC member access for HP compiler
The HP C++ compiler needs some help to allow access to some member
classes of cmCTestVC.
2009-02-25 15:45:14 -05:00
Brad King 80282b749f ENH: Rewrite CTest Update implementation
This adds a new VCS update implementation to the cmCTestVC hierarchy and
removes it from cmCTestUpdateHandler.  The new implementation has the
following advantages:

  - Factorized implementation instead of monolithic function
  - Logs vcs tool output as it is parsed (less memory, inline messages)
  - Uses one global svn log instead of one log per file
  - Reports changes on cvs branches (instead of latest trunk change)
  - Generates simpler Update.xml (only one Directory element per dir)

Shared components of the new implementation appear in cmCTestVC and may
be re-used by subclasses for other VCS tools in the future.
2009-02-25 14:42:45 -05:00
Brad King 261600bd09 COMP: Fix cmCTestVC char[]->string Borland warning
The Borland compiler warns about returning a char[] from a function with
return type std::string without an explicit construction.
2009-02-25 09:20:26 -05:00
Bill Hoffman 3b73cdc89f ENH: add a CDash measured value showing the reason for passed and failed tests based on regular expressions 2009-02-24 17:23:51 -05:00
Brad King 506e745c37 ENH: Teach cmCTestSVN to load repo/tree relation
This teaches cmCTestSVN::NoteNewRevision to save the repository URL
checked out in the work tree, the repository root, and the path below
the root to reach the full URL.
2009-02-24 15:43:25 -05:00
Brad King de3dedb4ea ENH: Factor out VCS work tree revision checks
This moves checks of the work tree revision before and after update from
cmCTestUpdateHandler::ProcessHandler into the cmCTestVC hierarchy.
2009-02-24 12:52:36 -05:00
Brad King d76bc78a12 ENH: Factor out nightly start time computation
Move generation of the nightly start time string from
cmCTestUpdateHandler::ProcessHandler into cmCTestVC.
2009-02-24 12:50:48 -05:00
Brad King fdd0d2a32b ENH: Factor out svn work tree cleanup
This removes work tree cleanup from cmCTestUpdateHandler and adds an
interface for it in cmCTestVC with an implementation in cmCTestSVN.
2009-02-24 12:50:15 -05:00
Brad King 4e4f2a3a10 ENH: Create cmCTestVC::RunChild and parse helpers
This method will help VCS tool subclasses run child processes and log
the output while parsing it.
2009-02-24 12:49:57 -05:00
Brad King 6bdc2b5d99 ENH: Add cmCTestCVS and cmCTestSVN
These cmCTestVC subclasses will implement interaction with CVS and SVN
tools.
2009-02-24 10:39:55 -05:00
Brad King 1b8ea27bd1 ENH: Create cmCTestVC for VCS interaction
This creates cmCTestVC, the base for a forthcoming class hierarchy to
interact with version control systems.
2009-02-24 10:39:28 -05:00
Brad King 0d66aa3915 ENH: Factor out VCS tool detection
In cmCTestUpdateHandler, this factors out version control tool detection
from the monolithic cmCTestUpdateHandler::ProcessHandler to separate
methods.  This also places priority on detection of the tool managing
the source tree since using any other tool will cause errors.
2009-02-24 09:09:43 -05:00
Brad King 844df75676 ENH: Factor out initial checkout method
This moves the initial checkout code from the monolithic
cmCTestUpdateHandler::ProcessHandler to a separate method
cmCTestUpdateHandler::InitialCheckout.
2009-02-24 09:09:14 -05:00
Brad King a6c0784489 ENH: Refactor quoting of VCS tool command
Previously we pre-quoted the command line tool path.  This avoids it by
quoting the command everywhere it is used, thus preserving access to the
original, unquoted command.
2009-02-23 15:59:39 -05:00
Brad King 31e652059a ENH: Document APPEND option in ctest_* commands
This adds documentation of the APPEND option to the configure, build,
test, memcheck, and coverage commands.  The docs leave specific
semantics for the dashboard server to define.
2009-02-20 15:51:03 -05:00
Brad King ab1b9b45ff ENH: Improve ctest_* command documentation
This corrects the terse documentation and adds detail to the full
documentation of some commands.  It also normalizes the layout of the
documentation string endings to make adding lines easier.
2009-02-20 15:50:57 -05:00
Brad King 17dc49c013 ENH: More documentation for ctest_submit command
This clarifies the terse documentation and lists valid values for PARTS.
2009-02-20 15:50:15 -05:00
Brad King 57a1d0093e ENH: Remove generation of unused Update.xml parts
This removes generation of some Update.xml content that is not used by
any Dart1, Dart2, or CDash servers:
  - Revisions elements
  - Directory attribute of File elements
  - File elements within Author elements
The content was generated only because the original Dart1 Tcl client
generated it, but the content was never used.
2009-02-17 11:37:18 -05:00
Brad King 1b499f0019 BUG: Fix svn update logic for modified files
The main svn update parsing loop in cmCTestUpdateHandler previously had
a logic error because the variable 'res' was not reset for each
iteration.  For a locally modified file it would report the update info
for the previous non-modified file, or nothing if there was no previous
file.  This fixes the logic by setting variable 'res' in both control
paths for each iteration.  See issue #8168.
2009-02-16 10:01:43 -05:00
Brad King 354f7eb9ab STYLE: Fix spelling in cmCTestUpdateHandler
This renames the variable 'numModiefied' to 'numModified' to fix its
spelling.  It also renames 'modifiedOrConflict' to 'notLocallyModified'
to describe its purpose (rather than the opposite of its purpose).
See issue #8168.
2009-02-16 10:00:58 -05:00
Brad King 70b1ed2548 ENH: Teach CTest to put labels in coverage results
This teaches CTest to include source file labels in coverage dashboard
submissions.  The labels for each source are the union of the LABELS
property from the source file and all the targets in which it is built.
2009-02-13 15:17:06 -05:00
Brad King 5be7846277 STYLE: Remove unused variable 2009-02-13 15:16:58 -05:00
Brad King a0359d3c15 BUG: Fix CTEST_USE_LAUNCHERS in dashboard scripts
Since CTest does not currently load configuration settings computed at
CMake Configure time while running dashboard scripts, the ctest_build
command must honor the CTEST_USE_LAUNCHERS option directly.
2009-02-13 11:49:31 -05:00
Brad King 7435355ec8 ENH: Report file names relative to source dir
This teaches cmCTestLaunch to report source files that lie under the top
source directory relative to the top.
2009-02-12 13:00:22 -05:00
Brad King fa9e93f712 BUG: Do not drop build fragments with same time
When we collect Build.xml fragments generated by 'ctest --launch', this
lexicographically orders fragments with the same time stamp on disk
instead of incorrectly dropping duplicates.
2009-02-12 10:01:39 -05:00
Brad King 7497fd575d ENH: Teach CTest dashboard builds to use launchers
This defines a 'UseLaunchers' CTest configuration option.  When enabled,
CTest skips log scraping from the Build step output.  Instead it defines
the environment variable CTEST_LAUNCH_LOGS to a log directory during the
build.  After the build it looks for error-*.xml and warning-*.xml files
containing fragments for inclusion in Build.xml and submission.

This is useful in conjuction with 'ctest --launch' and the RULE_LAUNCH_*
properties to get reliable, highly-granular build failure reports.
2009-02-11 15:18:08 -05:00
Brad King b42b6a7f60 COMP: Do not use modern empty init list syntax
cmCTestLaunch first used an empty initializer list to zero-initialize a
buffer, but this is not supported on older compilers.  Instead we avoid
the need for initialization altogether.
2009-02-11 11:57:24 -05:00
Brad King 0847d825b3 ENH: Create internal 'ctest --launch' tool
This creates an undocumented 'ctest --launch' mode.  It launches a
specified command and optionally records a failure in an xml fragment.
We will optionally use this in CTest's Build stage to record per-rule
build failure information when using Makefile generators.
2009-02-11 11:31:25 -05:00
Bill Hoffman 4e710a9ebe ENH: add the ability to run tests by labels 2009-02-10 14:24:24 -05:00
Bill Hoffman 70363cbf8f BUG: partial fix for 8056 -W now works with -j 2009-02-10 14:19:50 -05:00