Commit Graph

1371 Commits

Author SHA1 Message Date
Brad King 012c986309 ExternalProject: Add LOG_* options to hide step output
Optionally hide the output of each external project build step by
wrapping its command in a launcher script.  Make output available in log
files instead.  This simplifies the output of external project builds.
2010-06-21 13:25:13 -04:00
Brad King 4f4cce5637 Merge branch 'remove-CTestTest3' 2010-06-15 14:10:50 -04:00
Brad King b4aa834900 Merge branch 'ctest-git-flexibility' 2010-06-15 14:10:41 -04:00
Brad King b6313565e1 Merge branch 'msys-bootstrap-test' 2010-06-15 14:06:28 -04:00
David Cole 199e7f2f33 Remove CTestTest3.
At this point, CTestTest3 causes more problems than it's worth.
It uses CVS to grab a remote (over the network) copy of kwsys
code for testing. This causes some sort of problem nearly every
night on the nightly CMake dashboards. Worse: it causes problems
on different machines on different nights, then the next day, it's
fine again. So: remove this test and monitor the coverage.

If we lose a significant portion of code coverage, I will revert
this commit and re-activate the test. However, if we do not lose
a significant portion of code coverage, I will remove the code
for the test as well as removing it from the CMakeLists.txt file.

Brad King and I discussed this over the last few weeks, and we both
think we have sufficient coverage of all the checkout and update code
in other locally (non-network) based tests.

On the other hand, even if we do take a mild hit on coverage temporarily,
it should be relatively easy to increase our coverage again by adding
bits to those other locally based tests.
2010-06-13 11:02:27 -04:00
Brad King 5e102d5e01 Enable BootstrapTest on MSYS
The bootstrap script works under MSYS, so test it.  Use a launcher batch
file since 'ctest --build-and-test' is a Windows program and will not
honor the shebang line in the script.
2010-06-11 14:30:44 -04:00
Zach Mullen af5ef0c969 Testing for CTest checksum 2010-06-10 12:25:49 -04:00
Brad King 376fb31d1a Run CTest.NoNewline test using built CMake
Even though this test is checking that the ctest running it can handle
test output without newlines we should run the just-built CMake binary.
This allows the MemCheck test mode to check the correct CMake.
2010-06-10 08:24:27 -04:00
Brad King c3781efb28 ctest_update: Support Git upstream branch rewrites
Use 'git fetch' followed by 'git reset' to update the source tree.  This
is better than 'git pull' because it can handle a rewritten upstream
branch and does not leave local modifications.  After fetch, parse
FETCH_HEAD to find the merge head that 'git pull' would choose to track
the upstream branch.  Then reset to the selected head.

In the normal fast-forward case the behavior remains unchanged.
However, now local modifications and commits will be erased, and
upstream rewrites are handled smoothly.  This ensures that the upstream
branch is tested as expected.
2010-06-08 16:50:17 -04:00
Brad King 2eae651acc ctest_update: Support custom Git update command
Define CTest configuration variable CTEST_GIT_UPDATE_CUSTOM to set a
custom command line for updating Git-managed source trees.
2010-06-08 16:12:28 -04:00
Brad King 11bdc2b1a1 Generalize CTest.Update* test dashboard script helpers
Teach (create|run)_dashboard_script macros to treat the argument as the
name of a build tree.  Append '.cmake' to generate the dashboard script
name.  This allows future re-use of the macros for multiple test
scripts.
2010-06-08 15:58:39 -04:00
Brad King 6cf1ccd632 Merge branch 'per-config-link-flags' 2010-06-07 14:36:28 -04:00
Brad King 69292eacfa Merge branch 'fix-large-output-test' 2010-06-07 14:33:57 -04:00
Brad King 9ed98d8802 Merge branch 'update_release_scripts' 2010-06-07 14:29:37 -04:00
Brad King d868ec9406 Merge branch 'add-git-to-CheckSourceTreeTest' 2010-06-07 14:28:45 -04:00
Brad King 0d07e4379e Merge branch 'improve-file-download'
Conflicts:
	Modules/ExternalProject.cmake
2010-06-07 14:26:24 -04:00
Brad King a03e85f13c Merge branch 'add-git-to-ExternalProject'
Conflicts:
	Modules/ExternalProject.cmake
2010-06-07 14:23:45 -04:00
David Cole f6909a69ec Use the long test timeout value for SubmitLargeOutput.
Hopefully this will be a large enough value to get the
large output test to pass on the still exceedingly slow
dash19.
2010-06-03 17:47:48 -04:00
David Cole 29383b4b85 Add FindGit module.
Use it from ExternalProject and the ExternalProject test's
CMakeLists file rather than having duplicate find_program calls.
Add logic so that we do not try to use *.cmd variants of git
programs when using the MSYS Makefiles generator. Should fix
the last remaining dashboard issue with the new ExternalProject
git support additions.

Also, correct minor problem regarding placement of the local git
repo during test execution. On clean builds, it was being placed
incorrectly because of the ../.. relative reference. Use an absolute
path to place the local git repo in the proper directory, and only
use the relative reference when referring to it.
2010-06-03 17:30:07 -04:00
David Cole d569b48b7a Use relative path for git repo reference.
So it will work with git_EXECUTABLE='C:\cygwin\bin\git.exe' in a
non-cygwin-based build.
2010-06-03 15:59:36 -04:00
Zach Mullen e525649a4e Checksums on CTest submit files, and retry timed out submissions. 2010-06-03 10:34:34 -04:00
Brad King c8b13ecc38 Intel-specific workaround for LinkFlags tests
The Intel C compiler for Linux does not seem to reject any bad flags or
object files on its link lines.  Work around the problem by using a
preprocessor #error directive to ensure that BADFLAG appears in the
build output.  This does not really achieve the purpose of the tests but
it allows them to pass.
2010-06-03 09:47:23 -04:00
David Cole e73ad22e38 Fix ExternalProject test failures on dashboards.
Double quote executable names that may have spaces in them.
Do not run the new git portions of the test on machines that
have git < version 1.6.5 on them.
2010-06-02 18:05:41 -04:00
David Cole 670e16af2d Add git support to ExternalProject.
Requires at least version 1.6.5 of a git client for
git submodule update --recursive use.
2010-06-02 16:28:04 -04:00
Brad King a9b24af25c Borland-specific bad flag for LinkFlags tests
The Borland librarian actually creates a BADFLAG.obj when the object is
missing the first time!  This causes later tests to not reject it.
Instead use a Borland-specific variation on the flag.
2010-06-02 08:16:06 -04:00
Brad King 6a009280fd Better "bad" flag in LinkFlags test
The Intel C Compiler for Linux ignores _BADFLAG_ when linking!  Use a
flag that looks like a missing object file to ensure its rejection.
2010-06-01 17:46:58 -04:00
David Cole 2deba1b911 Add .zip and .tar.bz2 extraction to ExternalProject.
Add archives of these file types and add to the test
cases covered in the ExternalProject test.

Also add an "Example" directory in the Tests/ExternalProject
directory containing the canonical simplest example of
ExternalProject usage.
2010-05-31 14:30:22 -04:00
Bill Hoffman aa4daa528e change nightly release builds to use next, and move qmake on dash2win64 2010-05-28 17:53:26 -04:00
Brad King fe971d97ca Add STATIC_LIBRARY_FLAGS_<CONFIG> property (#10768)
This is a per-configuration version of STATIC_LIBRARY_FLAGS.
2010-05-28 11:09:10 -04:00
Brad King d3303dbc81 Test LINK_FLAGS and STATIC_LIBRARY_FLAGS (#10768)
Add a LinkFlags test series to check that these properties work.  Since
no link flag is accepted everywhere we test for presence of flags by
adding a bad flag and looking for the complaint in the test output.
2010-05-28 11:01:42 -04:00
David Cole c943ccdbfa Allow return value of 1 from git status. 2010-05-28 10:16:44 -04:00
David Cole 806eaa290c Further refinements to the CheckSourceTree test.
Echo results of calling git status before exiting with
an error. Add one special case so that the test may pass
on the dashmacmini2 continuous dashboard, despite a 'git
status' non-zero return code. More logic like this may
be required. I will re-evaluate based on tomorrow's
nightly dashboard runs.
2010-05-27 16:43:28 -04:00
David Cole 1dd316563a Add git support to the CMake.CheckSourceTree test.
Additionally, output some more information in both cvs
and git cases. When it is a cvs checkout, echo the contents
of CVS/Root and CVS/Repository to the test output. When it
is a git checkout, echo the output of 'git branch -a'.

This will allow us to see more details about any given CMake
source tree right in the CDash results for this test.
2010-05-27 15:44:57 -04:00
David Cole f67139ae6f Improve FILE(DOWNLOAD) and ExternalProject.
Improve FILE(DOWNLOAD ...):

- Add percent complete progress output to the FILE DOWNLOAD
  command. This progress output is off by default to
  preserve existing behavior. To turn it on, pass
  SHOW_PROGRESS as an argument.

- Add EXPECTED_MD5 argument. Verify that the downloaded
  file has the expected md5 sum after download is complete.

- Add documentation for SHOW_PROGRESS and EXPECTED_MD5.

  When the destination file exists already and has the
  expected md5 sum, then do not bother re-downloading
  the file. ("Short circuit" return.)

  Also, add a test that checks for the status output
  indicating that the short circuit behavior is actually
  occurring. Use a binary file for the test so that the
  md5 sum is guaranteed to be the same on all platforms
  regardless of "shifting text file line ending" issues.

Improve ExternalProject:

- Add argument URL_MD5.

- Add verify step that compares md5 sum of .tar.gz file
  before extracting it.

- Add md5 check to download step, too, to prevent
  unnecessary downloads.

- Emit a warning message when a file is not verified.
  Indicate that the file may be corrupt or that no
  checksum was specified.
2010-05-27 12:21:56 -04:00
Brad King 3ebb41d58a Merge branch 'version' 2010-05-17 13:34:29 -04:00
Bill Hoffman aa30bd3f2a Disable purify on unix, as it works differently and ctest can't use it. 2010-05-11 09:30:41 -04:00
Zach Mullen d80323bccd Fix CTestTestScheduler sporadic failure.
Increased the time difference between each test so that overburdened systems won't fail this test sometimes.
2010-05-07 11:16:44 -04:00
Brad King 678073bec2 CTest: Submit author email in Update.xml
Add the <Email>...</Email> element in Update.xml for each commit
reported.  This field was defined by Dart but never really used.
Distributed version control systems use author name and email
instead of a user id, so now it makes sense to use this field.
2010-05-07 09:17:26 -04:00
Brad King 4d653fb4ee Fix 'Architecture' test for more Mac linkers
Some Mac linkers produce the message

  "file was built for unsupported file format which is not the
   architecture being linked"

for this test.  Update the test output regex to match it.
2010-05-06 14:37:55 -04:00
Brad King 67277bacca Teach ctest_update about Git submodules
Git does not automatically checkout the matching version of a submodule
when it checks out a new version of the parent project in the work tree.
If the submodule reference changed in the parent project then we were
reporting the submodule path as a local modification.  Work around the
problem in ctest_update using "git submodule update" after "git pull".
For projects with no submodules this is a no-op.  See issue #10662.
Also add a submodule to the test project for CTest.UpdateGIT to test the
work-around.
2010-05-04 09:40:04 -04:00
David Cole 2938263636 Fix missing set of MSVC10 and add CheckCompilerRelatedVariables test. 2010-04-30 00:46:24 -04:00
Brad King 0328379411 Report commit hash in CMake development versions
For builds from Git repositories, add "-g<commit>" to the end of the
version number.  If the source tree is modified, append "-dirty".
For builds from CVS checkouts, add "-cvs-<branch>".
2010-04-23 10:01:49 -04:00
Zach Mullen 9676c52c3e Fix for StopTime for cases when gmtime is a day ahead of localtime 2010-03-18 13:53:40 -04:00
Zach Mullen a2fe175647 More debugging of StopTime test 2010-03-18 10:29:02 -04:00
Zach Mullen 91c1a70193 Output times during StopTime test for debugging 2010-03-17 12:32:44 -04:00
Zach Mullen b41647ca8f Move get_date call closer to ctest_test for more predictable results. 2010-03-17 11:10:39 -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
David Cole a61c5ab6e5 Add CMAKE_TESTS_CDASH_SERVER variable and CTestSubmitLargeOutput test.
If defined and non-empty, the value of CMAKE_TESTS_CDASH_SERVER should point
to a CDash server willing to accept submissions for a project named
PublicDashboard. On machines that also run a CDash dashboard, set this
variable to "http://localhost/CDash-trunk-Testing" so that the CMake tests
that submit dashboards do not have to send those submissions over the wire.

The CTestSubmitLargeOutput test runs a dashboard that has a test that produces
very large amount of output on stdout/stderr. Since we do not even want	 to
attempt to send such large output over the wire, this test is off by default
unless the CMAKE_TESTS_CDASH_SERVER server is localhost. This test is expected
to cause a submission failure when sent to CDash. It passes if the submit
results contain error output. It fails if the submit succeeds.

CMAKE_TESTS_CDASH_SERVER: CDash server used by CMake/Tests.

If not defined or "", this variable defaults to the server at
http://www.cdash.org/CDash.

If set explicitly to "NOTFOUND", curl tests and ctest tests that use the
network are skipped.

If set to something starting with "http://localhost/", the CDash is expected
to be an instance of CDash used for CDash testing, pointing to a
cdash4simpletest database. In these cases, the CDash dashboards should be
run first.
2010-03-08 13:25:58 -05:00
Zach Mullen 9d7e08de48 Remove empty_binary_dir command in new unit test 2010-03-03 10:49:21 -05:00
Zach Mullen 2fd9b8072b Add unit test for RESOURCE_LOCK test property 2010-03-03 10:33:09 -05:00
Bill Hoffman ab650f095f Different versions of cygwin report differet messages for cygwin
For cygwin pass the badexe test if either ***Failed or BAD_COMMAND
show up in the output of the test.
2010-02-26 13:45:23 -05:00
Bill Hoffman 0a1ecf197b Change the tag to be master from CVS for release scripts 2010-02-25 14:46:10 -05:00
David Cole b39fe9407e Fix problem with ExternalProject test in in-source builds. 2010-02-17 16:21:41 -05:00
Zach Mullen 1c13f57313 Add a high COST value to BootstrapTest so that it will be scheduled first in parallel ctest executions. 2010-02-11 11:58:04 -05:00
Brad King 2de33ebd58 Make CTest.UpdateCVS robust to some cvs clients
Commit "Teach CTest.Update tests to strongly check entries" (2010-02-09)
started checking Update.xml entries strongly.  This revealed that some
cvs clients report "U CTestConfig.cmake" during update even though the
file did not change and it selects the same revision.  As a result the
test fails with

  Update.xml has extra unexpected entries:

    Updated{CTestConfig.cmake}

We fix the test to tolerate this particular extra entry without failing.
2010-02-10 11:48:09 -05:00
David Cole 10750bff1c Fix configure time error that occurs when there is a backslash in the HOME environment variable. 2010-02-10 11:23:07 -05:00
Brad King 6e7e71e9b9 Teach CTest.UpdateGIT test to fake file timestamp
We wrap the git executable in a shell script that touches one source
file after 'git pull'.  This makes the file newer than the index even
though it has not actually changed.  If CTest does not refresh the index
properly then the test will fail with a bogus modified file.
2010-02-09 13:31:40 -05:00
Brad King 78a5727d49 Teach CTest.Update tests to strongly check entries
Previously these tests just checked for matching file names in the
Update.xml files.  Now we check the update types (Updated, Modified, or
Conflicting) and reject unexpected extra entries.
2010-02-09 13:31:20 -05:00
Zach Mullen c87282ce52 Re-enabled Scheduler test and fixed the underlying problem. 2010-02-03 16:32:26 -05:00
Zach Mullen 4864d48f27 Disable Scheduler test until underlying problem is resolved. 2010-02-03 16:17:02 -05:00
Zach Mullen fe7c4d0c2a Add unit test to ensure that CTestCostData scheduling works correctly 2010-02-03 15:06:29 -05:00
Brad King 3c2ecbe74e Add alternate per-vendor compiler id detection
At least one Fortran compiler does not provide a preprocessor symbol to
identify itself.  Instead we try running unknown compilers with version
query flags known for each vendor and look for known output.  Future
commits will add vendor-specific flags/output table entries.
2010-02-01 09:03:05 -05:00
Brad King 2b3eee4646 Avoid PathScale cmd-line bug in TryCompile test
The PathScale compiler silently accepts unknown options that start in
more than one '-':

  $ touch foo.c
  $ pathcc -c foo.c --junk
  $ echo $?
  0
  $ pathcc -c foo.c ---junk
  $ echo $?
  0
  $ pathcc -c foo.c -junk
  pathcc ERROR parsing -junk: unknown flag
  $ echo $?
  2

We teach the TryCompile to pass a bogus flag with only one '-' instead
of three '-'s for this compiler.
2010-01-25 08:47:32 -05:00
Brad King 4d1351e8d3 Skip Fortran module mangling test on PathScale
We disable this test because PathScale Fortran mangles module symbols as
"MYSUB.in.MYMODULE" so we cannot interface with it from C.  We already
did this for SunPro and MIPSpro.
2010-01-25 08:27:34 -05:00
Brad King cbfbb86b58 Fix escapes in Fortran depend.make entries
Makefile dependencies must be escaped using cmLocalGenerator::Convert
with the cmLocalGenerator::MAKEFILE option.  This fixes Fortran module
dependencies with spaces in the path.  We test the fix by adding a space
to one of the module paths in the Fortran test.
2010-01-04 10:18:44 -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
Brad King 5cf77136cb Longer CTestTestTimeout default time on Cygwin
The commit "Make CTestTestTimeout time configurable" added a CMake cache
variable CTestTestTimeout_TIME to configure the length of the timeout
used by the inner CTestTestTimeout test.  The reason was to allow users
on slow machines to give this test some extra time without extending the
timeout for everyone.  However, Cygwin CMake seems to load slowly enough
that it is worth a longer default timeout for that platform.
2009-12-21 10:00:51 -05:00
Brad King 918355632c Test for SVNPath element in Update.xml
The commit "Submit Subversion directory path in Update.xml" added the
element <SVNPath>...</SVNPath> to Update.xml for Subversion work trees.
This commit teaches the CTest.UpdateSVN test to verify the presence of
the element.
2009-12-18 11:01:24 -05:00
Bill Hoffman bdcce34435 Fix BadExe test on cygwin. 2009-12-18 09:24:49 -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
Brad King 11e6b513c2 Test the CheckTypeSize module
We create test "Module.CheckTypeSize" to verify that type sizes get
detected correctly.
2009-12-17 15:15:34 -05:00
Brad King 6c9f678098 Teach ADD_TEST_MACRO about test namespaces
We teach ADD_TEST_MACRO to transform names of the form "Namespace.Name"
to the directory "Namespace/Name" and the project name "Name".  This
will allow new tests to be better organized.
2009-12-17 15:14:14 -05:00
Zach Mullen 5c2a5e06fd Workaround for CTestTestBadExe on Cygwin 2009-12-17 12:51:40 -05:00
David Cole 5eb8e80b2a Add a test to build the CSE project if the optional cache entry CMAKE_TEST_PROJECT_CSE_DIR is set. 2009-12-15 16:52:27 -05:00
Brad King 1ac1058272 Honor real language flags in FortranC.Flags test
The test overrides the CMAKE_C_FLAGS and CMAKE_Fortran_FLAGS to test
passing a specific flag to the compiler wrapper scripts.  We fix it to
honor any outside flags needed for the real compiler.
2009-12-15 14:03:03 -05:00
Brad King 0306080e6e FortranCInterface: Support '=' in language flags
The commit "FortranCInterface: Honor language flags in checks" taught
the FortranCInterface module to pass C and Fortran flags into its
detection and verification checks.  We improve on the change to allow
the '=' character in the language flags.  This requires passing the
cache entry type with the -D options.
2009-12-15 14:02:52 -05:00
David Cole c31b7fcad0 Add one more possible error message from curl for the failed submit tests. 2009-12-14 22:43:40 -05:00
Brad King 555fcbd2e2 Test FortranCInterface flag propagation
We create test FortranC.Flags to try passing per-language flags from a
project into its FortranCInterface detect/verify checks.  We wrap the
compilers with scripts that enforce presence of expected flags.
2009-12-14 12:36:25 -05:00
Brad King 55275e017d New decision method to enable Fortran tests
CMake does not enable Fortran for its own build, but it needs to find a
Fortran compiler to know if it is possible to enable Fortran tests.
Previously we searched for a hard-coded list of Fortran compilers which
was duplicated from the CMakeDetermineFortranCompiler.cmake module.  We
now run CMake on a small test project that enables the Fortran language
and reports the compiler it found.  This represents a more realistic
check of whether the Fortran tests will be able to find a compiler.
2009-12-10 12:16:38 -05:00
Brad King faf6d82bd6 Always use a configuration for CMake tests
Previously our EnforceConfig script that loads at test-time would only
enforce a non-empty CTEST_CONFIGURATION_TYPE for CMake 2.6.2 and lower.
Now we simply always enforce use of a configuration, and select one of
the configurations that was built if none is given.

This is necessary to run tests like CMake.Install that need to know the
configuration with which CMake was built.
2009-12-10 11:19:23 -05:00
Brad King 6c79c96265 Test 'install' target of CMake itself
We create option CMake_TEST_INSTALL to enable a new CMake.Install test.
It tests running the "make install" target to install CMake itself into
a test directory.  We enable the option by default for dashboard builds.
2009-12-10 10:34:36 -05:00
Brad King 9d823f7847 Apply CMake test-time config to all tests
We configure an EnforceConfig.cmake script to load at CTest time.
Previously we loaded it from Tests/CTestTestfile.cmake, but now we load
it from the top level so it applies to all tests.
2009-12-10 10:33:42 -05:00
Brad King 9478ad0945 Create CMakeLibTests output dir for Xcode
Xcode 2.x forgets to create the target output directory before linking
the individual architecture pieces of a universal binary for the target
CMakeLibTests.  Then it passes the directory to -L and -F options when
linking the and warns that the directory does not exist.  We work around
the problem by using a pre-build rule on the target to create the output
directory.
2009-12-09 10:56:30 -05:00
Brad King f5ac85a29e Test XML encoding with UTF-8 character validation
This creates a unit test for cmXMLSafe.  See issue #10003.
2009-12-08 15:44:45 -05:00
Brad King 0a64936f49 Test UTF-8 decoding
This creates a unit test for cm_utf8.  See issue #10003.
2009-12-08 15:44:22 -05:00
Brad King 5872cc7c1f Create CMakeLib test driver and test cmXMLParser
We create a new CMakeLibTests driver executable in which to writes unit
tests for CMakeLib.  Our first test is a smoke-test of cmXMLParser.
2009-12-08 11:44:50 -05:00
Brad King d4ada9d0d5 Clean up CMake build tree 'bin' directory
We re-arrange EXECUTABLE_OUTPUT_PATH settings to avoid putting utility
and test executables in the 'bin' directory of the build tree.  This
makes the directory look like that in the installation tree, except that
on multi-configuration generators we still use a per-config
subdirectory.
2009-12-08 11:44:28 -05:00
Brad King 1d91bc64aa Remove unused DumpDocumentation code
The DumpDocumentation executable and some supporting code and tests were
completely unused by CMake.  Generation of documentation is done by the
individual executables with --help* options.  In this commit we simply
remove the unused code, executable, and test.
2009-12-08 09:38:36 -05:00
David Cole 1e04804e84 Force CheckSourceTree test to pass if the source tree is not a CVS checkout. The test can only do its checking if cvs is available and the source tree is a cvs checkout. Also, allow for the possibility that backslash characters exist in the HOME environment variable, because they may when built in a cygwin environment on Windows. 2009-12-07 11:54:23 -05:00
Zach Mullen 25d7399272 Remove WILL_FAIL property from BadExe test, since CTest was returning 0. Replaced with a pass regex. 2009-12-07 10:15:34 -05:00
Zach Mullen a8ab3005ae Cosmetic changes to previous commit, for consistency. 2009-12-07 09:37:32 -05:00
Zach Mullen f30c82f370 Added a unit test for running a test command which exists but is not an executable, because it previously caused the outer ctest process to fail. 2009-12-07 09:34:05 -05:00
David Cole 8d28ce8029 Fix cvs password problems during the CMake.CheckSourceTree test. Make sure cvs has access to the original value of the HOME environment variable and not the 'CMake testing' value of it so that any cvs passwords set up on the machine work to get the list of local modifications using 'cvs up'... 2009-12-04 14:50:37 -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
Brad King 9daa4a6c3f Remove CMAKE_SHARED_MODULE_RUNTIME_${lang}_FLAG
This platform configuration variable is unused.  Modules are built using
the value of CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG.
2009-12-02 15:17:32 -05:00
Zach Mullen f3cd66577f Remove unnecessary configure time operations from CTestTest* tests 2009-12-02 09:42:06 -05:00
Brad King b14734b9b6 Make CTestTestTimeout time configurable
In this test we start up a cmake script that runs a process that sleeps,
and the timeout for the script is shorter than the sleep time.  However,
in order to properly detect that the sleeping grandchild is killed when
the script times out we need to give sufficient time for the script to
start the grandchild.  Otherwise the log file for the grandchild is not
available.

On some (cygwin) builds our previous 1 second timeout for the script was
not long enough to let the interpreter load and start the grandchild.
We make the timeout time configurable by setting CTestTestTimeout_TIME
in the cache for CMake itself.  It tells the test how long to let the
script run.  The grandchild always sleeps for 4 seconds longer to ensure
a comfortable window during which the process tree can be killed.
2009-12-02 09:31:49 -05:00
Brad King ed55b1b8d2 Remove unused code from CTest test suite
We remove from Tests/CTestTest*/CMakeLists.txt some historical cruft
that is no longer used by the test suite.
2009-12-02 09:16:29 -05:00
Brad King 7380d3ab7c Always use a configuration for CTestTestTimeout
This test requires that the dashboard script it drives be invoked with
"ctest -C <config> -S ...".  We create a "CTestTest_CONFIG" variable to
hold a configuration selected at test time.  We use the configuration
given to the outer CTest, if any, and then default to either Debug or
the CMAKE_BUILD_TYPE.
2009-12-01 09:12:07 -05:00
Brad King 88eefaced1 CTest: Test process tree kill on timeout
We extend the CTestTestTimeout test to check that when a test times out
its children (grandchildren of ctest) are killed.  Instead of running
the timeout executable directly, we run it through a cmake script that
redirects the timeout executable output to a file.  A second test later
runs and verifies that the timeout executable was unable to complete and
write data to the log file.  Only if the first inner test times out and
the second inner test passes (log is empty) does the CTestTestTimeout
test pass.
2009-11-30 16:31:28 -05:00