Commit Graph

615 Commits

Author SHA1 Message Date
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
Brad King dc13914cd6 ENH: Create cmXMLSafe to help escapes in XML
This class provides easy syntax to efficiently insert blocks of data
into XML documents with proper escapes.  It replaces the old
cmCTest::MakeXMLSafe and cmSystemTools::MakeXMLSafe methods which
allocated extra memory instead of directly streaming the data.
2009-02-05 16:31:37 -05:00
Brad King d18ae05da1 ENH: Re-order generation of build summary and xml
This moves the error/warning count summary printed by
cmCTestBuildHandler to after Build.xml is generated.  Later we will
compute the counts during generation of the xml.
2009-02-04 14:34:25 -05:00
Brad King 5f65e04ea2 ENH: Refactor Build.xml generation
This divides cmCTestBuildHandler::GenerateDartBuildOutput into three
methods to generate the header, content, and footer components of
Build.xml files.  It will allow the content generation to be replaced
later.
2009-02-04 14:34:12 -05:00
David Cole c6d499aba5 COMP: Iterator version of std::set not available with vs6 implementation of STL. Use explicit iteration to insert individual elements one at a time. Sigh. 2009-02-04 12:38:03 -05:00
David Cole 6f88b29121 ENH: Add FILES arg to the ctest_submit command. BUG: Propagate the IsCDash setting properly to the ctest configuration during a submit. Also, do not propagate TriggerSite for projects submitting to CDash. No triggers are necessary with CDash. 2009-02-03 11:52:54 -05:00
Brad King cc2092d5bb ENH: Put test labels in MemCheck results
This refactors generation of <Test> element headers and footers in
cmCTestTestHandler and re-uses it in cmCTestMemCheckHandler.  The change
removes duplicate code and enables the new <Labels> element for MemCheck
results.
2009-02-02 13:24:26 -05:00
Bill Hoffman 56ea0ad186 STYLE: fix warning 2009-01-29 09:26:40 -05:00
Bill Hoffman a26c70477c STYLE: fix warning 2009-01-28 16:56:33 -05:00
Brad King 6ae2f8e7ee BUG: Fix CTest submit-only operation
We need to initialize cmCTestSubmitHandler on construction to make sure
all parts get enabled by default.  The recent fix to re-enable all parts
on initialization broke submit-only operations because the handler did
not initialize on construction.  This also removes duplicate
initialization code.
2009-01-27 10:58:25 -05:00
David Cole 0a23c0ee40 BUG: Fix issue #8363. Wrap output with MakeXMLSafe calls so that the generated XML files are valid, parse-able XML. 2009-01-22 07:16:05 -05:00
Bill Hoffman 40366f6ced ENH: fix part submission to not have memory of the last part submission 2009-01-15 13:24:54 -05:00
Bill Hoffman be52e3b6fc BUG: fix for bug #8174 2009-01-15 10:32:56 -05:00
Bill Hoffman 046449e2f7 ENH: fix return value to ctest_build and remove debug print in cmProcess 2009-01-14 13:48:03 -05:00
Bill Hoffman 82c3afcf6f ENH: allow ctest_build to return error and warning counts 2009-01-14 13:01:38 -05:00
Brad King e92d99d05c COMP: Fix const set find for Borland 5.5
The Borland 5.5 compiler's STL set does not define correct signatures
for its find() members, leading to build errors.  This works around the
problem.
2009-01-14 09:51:58 -05:00
Brad King d66c25c2f0 ENH: Teach ctest_submit about parts
This adds a PARTS option to the ctest_submit command which tells it to
submit only parts whose names are listed with the option.
2009-01-12 10:38:27 -05:00
Brad King 447f5b303e ENH: Divide CTest file submission list by part
This splits the list of files for CTest to submit into those belonging
to each part.  The set is recombined just before submission.  Later this
will allow piecewise submissions.
2009-01-12 10:37:55 -05:00
Brad King cccac773ce ENH: Teach ctest_* to create appending XML files
This adds an APPEND option to the ctest_* commands which tells them to
put the Append="true" attribute in the Site element of their XML file.
2009-01-12 09:11:29 -05:00
Brad King ae2c4143d2 ENH: Refactor CTest command argument handling
The previous approach to handling of arguments to ctest_* commands
worked only for keyword/value arguments with a single value.  This
refactors the approach to allow some commands to define alternative
argument forms.
2009-01-12 09:10:47 -05:00
Bill Hoffman ed387ffe6b ENH: add subproject tag property for ctest 2009-01-09 12:05:23 -05:00
Brad King 377bebb910 ENH: Teach CTest to submit test property LABELS
This teaches CTest to send the test property "LABELS" in Test.xml
dashboard submissions as Label elements inside a Labels element.
2009-01-07 10:41:37 -05:00
Brad King f0e6000827 BUG: Manage LC_MESSAGES with an object
This moves management of the LC_MESSAGES environment variable into an
automatic variable.  Previously if an error occurred the original
environment value was not restored.  This makes the fix to issue #5936
more robust.
2009-01-06 14:58:30 -05:00
Brad King c2d2a412b8 STYLE: Remove trailing whitespace 2009-01-06 14:41:56 -05:00
David Cole 9457ca3cf5 ENH: Add OPTIONS argument to the ctest_configure command so that you can pass -D arguments to the cmake configure step from a ctest -S script. Also clarify/correct some not so helpful error messages. 2008-12-30 09:13:02 -05:00
Bill Hoffman ede2be4be1 ENH: add start end time for procs 2008-12-29 17:49:17 -05:00
David Cole 61cda77869 STYLE: Fix line length violation. 2008-12-26 15:27:01 -05:00
Bill Hoffman 690f83b81b STYLE: fix shadow warning 2008-12-19 10:19:37 -05:00
Bill Hoffman f5ee5cc04f BUG: partial fix for #8056 2008-12-18 21:59:25 -05:00
Bill Hoffman 5b1139caea BUG: fix for bug #8224 fix crash 2008-12-18 21:57:42 -05:00
Brad King 4c725d1e0e ENH: Minor readability improvement in CTest output
When ctest --build-and-test runs the --test-command its output did not
quote the arguments of the command being tested making it difficult to
read.  This adds the quotes.  This also changes the wording of the
failure case to not sound like CTest could not run the executable when
in fact it ran and returned failure.
2008-12-18 12:27:59 -05:00
David Cole ceaef94ccc ENH: Implement feature request from issue 7885. Allow setting environment variables on a per-test basis for ctest using set_test_properties ENVIRONMENT. 2008-11-26 14:38:43 -05:00
Bill Hoffman bdfc3fadd3 ENH: add more debug stuff to CTestCTest2 so I can figure out redwall 2008-11-23 10:49:46 -05:00
Alexander Neundorf 45aec04508 ENH: load CMakeDetermineSystem and CMakeSystemSpecificInformation when
executing a ctest script so the search paths are fully set up and variables
like CMAKE_SYSTEM are available. This is useful e.g. for new-style ctest
scripting.
(these files are also loaded on startup by cpack, so now they behave
similar).
Hmmm, maybe they should be also loaded by cmake -P ?

Alex
2008-11-07 15:56:54 -05:00
Bill Hoffman 935e984900 BUG: use LC_MESSAGES = C instead of en_EN 2008-10-19 10:44:16 -04:00
Brad King 9d1f471845 BUG: Fix recognition of files deleted from CVS
The output of "cvs update" contains a line such as one of

  cvs update: `foo.txt' is no longer in the repository
  cvs update: foo.txt is no longer in the repository
  cvs update: warning: foo.txt is not (any longer) pertinent

when file "foo.txt" has been removed in the version to which the update
occurs.  Previously only the first case would be recognized.  This fixes
the regular expression to match all these cases.
2008-10-18 12:07:15 -04:00
Bill Hoffman 74e606a270 ENH: play it safe and restore the value of LC_MESSAGES 2008-10-10 09:36:16 -04:00
Bill Hoffman d306ab66b1 ENH: make sure LC_MESSAGES is en_EN so that we can parse the output of svn and cvs 2008-10-10 09:23:49 -04:00
Bill Hoffman 57a2a408c4 BUG: fix for 5218 Error message pattern match for VS8 2008-10-09 13:00:31 -04:00
Alexander Neundorf 3b0862749d STYLE: lowercase ctest_test() in the documentation
Alex
2008-10-08 17:58:39 -04:00
Bill Hoffman 71fee8522e STYLE: fix line length issues 2008-10-02 09:18:47 -04:00
Bill Hoffman 32bc02d660 BUG: undo fix for 7292 because a switched file should show up as an odd thing on the dashbaord 2008-10-01 12:46:45 -04:00
Bill Hoffman ecf312ccc8 STYLE: fix line length stuff for KWStyle 2008-10-01 09:04:27 -04:00
Bill Hoffman 43fe0d3978 ENH: add max width option to ctest ouptut 2008-09-22 14:04:13 -04:00
Bill Hoffman 64fc597de2 ENH: add initial support for HAIKU OS from bug# 7425 2008-09-15 17:53:28 -04:00
Bill Hoffman 3864910681 BUG: fix for bug 7292, svn parsing flagged errors or conflicts for switched or locked files 2008-09-09 13:12:46 -04:00
Bill Hoffman 6bc394c8e5 BUG: 0007569 add ability to do -R/-E in ctest_test command 2008-09-09 11:44:16 -04:00
Brad King 810c47f56e BUG: Make CTest honor user-specified config
When the -C or --build-config option is used to specify the
configuration to be tested by CTest, do not override it with the
configuration in which CTest is built.
2008-09-04 11:31:10 -04:00
David Cole 86e7a9dad8 ENH: Add RecurseThroughSymlinks data member to kwsys::Glob. Allows recursive globs to skip symlinks when necessary. Default to true for backwards compatible behavior. Used from the ctest coverage handler to avoid recursing through the '/Applications' directory on the Mac looking for *.da files... Should fix the hangs reported recently by Mac CMake dashboard submitters. 2008-08-20 13:24:16 -04:00
David Cole 5a0389a0b7 BUG: Fix issue#4792 - improve verbose and log output when ctest cannot find a file during coverage analysis. 2008-07-31 14:16:34 -04:00
David Cole f059ebff69 BUG: Fix issue #4971 - use lower case when comparing file names from gcov output on _WIN32 since sometimes the drive letters have different case. 2008-07-31 11:28:45 -04:00
Bill Hoffman bc58fe6485 COMP: fix warning 2008-07-06 22:06:08 -04:00
Bill Hoffman a4ae5a72a0 COMP: fix some more warnings 2008-07-06 20:03:08 -04:00
Bill Hoffman cb4eaeabe5 COMP: fix a few more warnings 2008-07-06 19:58:38 -04:00
Bill Hoffman 5292b3edef COMP: try to fix sgi compiler problem with set and also shorten symbol lengths for set class 2008-07-04 10:28:22 -04:00
Bill Hoffman 112d377fbb COMP: fix more warnings 2008-07-04 10:10:30 -04:00
Bill Hoffman fba54c56f2 COMP: fix warning 2008-07-04 09:55:26 -04:00
Bill Hoffman 7098b666fa COMP: fix some warnings 2008-07-04 09:50:32 -04:00
Bill Hoffman 9e167b6800 ENH: one more fix for the old hp c++ compiler 2008-07-03 16:26:03 -04:00
Bill Hoffman f188d0e241 ENH: one more fix for hp 2008-07-03 15:02:52 -04:00
Bill Hoffman 096c139c80 ENH: fix for old hp compiler 2008-07-03 13:55:36 -04:00
Bill Hoffman 7950b99d9d ENH: add missing file 2008-07-03 09:49:49 -04:00
Bill Hoffman bb7b27e417 ENH: add initial ctest -j feature 2008-07-03 09:31:33 -04:00
Bill Hoffman bf3598bab4 BUG: make sure ctest sees the output of the cmake run in build and test cases, it was not... 2008-06-18 09:07:53 -04:00
Bill Hoffman aa53857f59 BUG: fix for bug 7136 2008-06-17 14:03:49 -04:00
Ken Martin 5020a1f4a0 ENH: make tes test finding logic also try full paths as relative paths because some folks have been doing that and 2.4 handled it 2008-05-30 09:14:25 -04:00
Bill Hoffman 1427aa8391 BUG: fix for bug 7077 handle DartMeasurement tags with tyep text/html 2008-05-23 11:28:46 -04:00
Alexander Neundorf 39bf28f5d2 STYLE: use lower case also for the ctest-specific commands, as in cmake
I hope I didn't make a typo anywhere, at least the tests still succeed

Alex
2008-05-12 09:11:51 -04:00
Bill Hoffman ffbe61bb11 ENH: make sure english is used for output of gcov 2008-05-10 11:12:09 -04:00
Bill Hoffman 2b6ee95c1d BUG: 0006988 do not set coverage to false when it is not 2008-05-08 12:47:30 -04:00