Commit Graph

709 Commits

Author SHA1 Message Date
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