CMake/Tests
Modestas Vainius f5cf8f9897 Tests: Escape metachars before embedding paths into the regex (#12999)
${CMake_SOURCE_DIR} and ${CMake_BINARY_DIR} cannot be embedded into regex
directly. If they contain special regex metacharacters like +, the regex
will break. So just escape such metacharacters with a backslash before
embedding the path into the regex.

The issue affected the following tests: CTestTestConfigFileInBuildDir1 and
CTestTestConfigFileInBuildDir2.
2012-02-27 09:01:10 -05:00
..
Architecture Use correct default multiple architecture values in test 2011-07-19 11:53:31 -04:00
ArgumentExpansion Fix ArgumentExpansion test expected results 2011-01-11 17:10:28 -05:00
Assembler Do not bother enabling C++ in Assembler test 2011-03-04 09:17:30 -05:00
BuildDepends Base architecture choice logic on Xcode version 2011-07-18 09:59:58 -04:00
BundleGeneratorTest BUG: Fix issue #7523: Analyze output of 'hdiutil attach' to get the name of the volume that was mounted. Eliminates the need to use the -mountpoint arg of hdiutil which has a silly 90 character limit on the name of the mount point. Also add a custom volume icon to the BundleGeneratorTest to cover this code. 2009-01-21 13:39:22 -05:00
BundleTest Removed most usage of Carbon in favour of CoreFoundation 2011-01-31 18:21:20 -05:00
BundleUtilities Fix BundleUtilities test failure with space in build path. 2012-01-20 22:02:01 -07:00
CFBundleTest Fix XCode -> Xcode typos, notably in man page (#12231) 2011-05-31 09:13:00 -04:00
CMakeCommands GenerateExportHeader test: add newlines before end of file 2012-01-18 00:01:08 +01:00
CMakeLib complex: Move cmSystemTools::UpperCase test to CMakeLibTests 2011-12-23 16:16:54 -05:00
CMakeOnly Merge topic 'expect-more-versions' 2012-02-21 15:56:43 -05:00
CMakeTestAllGenerators Ensure libgmp-10.dll is in the PATH for CMakeTestAllGenerators 2011-07-29 11:13:33 -04:00
CMakeTestBadCommandLines Add test CMakeTestBadCommandLines. Also add --graphviz arg to cmake invoked during the CPackComponents test. The purpose of each is to increase coverage of cmake.cxx. 2009-10-27 12:18:41 -04:00
CMakeTestMultipleConfigures Add test to enable detecting differences between generation N and N+1 of a cmake generated build tree. Theoretically, each generation run with exactly the same arguments should be identical to the previous generation... Practically, there are differences. This is a tool to help us measure those differences. For now, the test always succeeds. Eventually, we may add the code to make it fail when there are differences. 2009-10-26 16:09:27 -04:00
CMakeTests fix uninitialized var in if(NOT foo bar STREQUAL "foo bar") 2012-01-22 12:15:57 +01:00
COnly Fix CXX/Fortran MODULE flags when enabled before C (#12929) 2012-02-03 15:45:13 -05:00
CPackComponents CPack: Add CPACK_NSIS_INSTALL_ROOT variable (#9148) 2011-01-11 15:42:42 -05:00
CPackComponentsForAll CPackRPM support component specific variables for spec files 2011-10-30 20:13:20 +01:00
CPackTestAllGenerators Fix failing test. Forgot to double quote last arg to STRING. 2009-10-20 15:18:45 -04:00
CTestConfig 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
CTestScriptMode STYLE: don't load CMakeDetermineSystem and CMakeSystemSpecific directly from 2009-07-12 04:51:51 -04:00
CTestTest Remove unused code from CTest test suite 2009-12-02 09:16:29 -05:00
CTestTest2 CTestTest2: Avoid running purify unless requested 2011-01-27 14:36:14 -05:00
CTestTestBadExe Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestChecksum Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestConfigFileInBuildDir CTest: Look for CTestConfig.cmake in build dir first, then source dir 2011-10-26 23:23:03 -04:00
CTestTestCostSerial Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestCrash Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestCycle Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestDepends Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestFailedSubmits Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestFailure Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestParallel Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestResourceLock Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestRunScript Increase ctest RunScript line coverage. (Note: NEW_PROCESS argument is currently causing the test to fail, still investigating the reason for this, will add coverage for it later) 2009-10-30 17:43:55 -04:00
CTestTestScheduler Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestStopTime Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestSubdir Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestTimeout Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CTestTestUpload Add the FILES keyword to ctest_upload command 2011-03-15 15:07:37 -04:00
CTestTestZeroTimeout Tests: Eliminate unnecessary files and variables. 2011-01-28 14:58:04 -05:00
CheckCompilerRelatedVariables Teach our tests about special cases for VS 11 2011-09-23 11:07:24 -04:00
CommandLineTest Remove unused DumpDocumentation code 2009-12-08 09:38:36 -05:00
CompileCommandOutput Fix CompileCommandOutput test build on Windows 2011-05-20 08:06:35 -04:00
Complex Find_library(): allow searching for versioned shared objects 2012-02-18 16:19:29 +01:00
ComplexOneConfig complex: Remove unused option to test CMakeLib 2011-12-23 16:16:57 -05:00
Contracts Tests: Update drop site value for the Trilinos contract test 2012-02-03 11:52:54 -05:00
CrossCompile Fix TRY_RUN cross compile test to pass consistently 2009-11-09 12:05:49 -05:00
CustComDepend ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
CustomCommand Normalize slashes of add_custom_(command|target) DEPENDS (#11973) 2011-03-30 09:52:07 -04:00
CustomCommandWorkingDirectory Handle relative WORKING_DIRECTORY in add_custom_(command|target) 2011-01-26 18:02:02 -05:00
CxxOnly Fix CXX/Fortran MODULE flags when enabled before C (#12929) 2012-02-03 15:45:13 -05:00
Dependency Honor strong intra-component target dependencies 2010-08-25 17:14:13 -04:00
DocTest ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
DoubleProject Fix the case where cmake --build failed with two project cmds in one file. 2011-12-20 14:16:25 -05:00
EmptyLibrary Add test that CMake errors with empty libs 2010-09-30 11:01:35 -04:00
Environment 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
ExportImport Check*.cmake: Expand imported targets in CMAKE_REQUIRED_LIBRARIES 2012-02-21 15:38:15 -05:00
ExternalOBJ Fix for bug where VS2010 did not use .obj files as part of the build. 2011-04-01 16:28:41 -04:00
ExternalProject Tests: ExternalProject: Remove unnecessary 'svn --version' call 2011-12-05 11:49:31 -05:00
FindModulesExecuteAll ENH: add a project name 2008-06-16 20:05:46 -04:00
FindPackageModeMakefileTest Silence make on OpenBSD in FindPackageModeTest(#12508) 2011-10-12 22:20:18 +02:00
FindPackageTest Set UNSUITABLE instead of not COMPATIBLE 2011-08-05 22:42:57 +02:00
ForceInclude Map multiple /FI flags for VS < 10 (#11649) 2011-01-03 10:02:16 -05:00
Fortran Fix and simplify Fortran test compiler compatibility check 2011-12-15 09:25:49 -05:00
FortranC Honor real language flags in FortranC.Flags test 2009-12-15 14:03:03 -05:00
FortranOnly Fortran: Add support for free- and fixed-form flags 2011-08-31 10:24:43 -04:00
Framework BUG: Fix issue #7046 - make sure extensionless headers and resource files work with the Xcode generator. Also fix incorrect mappings in the lastKnownFileType code. Add some extensionless files to the Framework test. 2008-09-05 15:51:19 -04:00
FunctionTest VS2010: Honor PROJECT_LABEL target property (#10611) 2010-09-09 16:44:30 -04:00
IPO Test INTERPROCEDURAL_OPTIMIZATION build feature 2009-10-02 13:52:29 -04:00
IncludeDirectories One more try. Use full path by default, and relative on broken compilers. 2011-06-03 16:16:50 -04:00
JCTest ENH: make it take longer 2008-12-29 18:11:02 -05:00
Java Tests: Java tests should test UseJava.cmake 2011-03-29 11:54:42 +02:00
Jump Cygwin: Fix tests to check CYGWIN instead of WIN32 2010-12-17 09:46:24 -05:00
KDE4StableBranchTest add a test which checks that cmake can build the latest stable KDE4 (kdelibs) release 2009-10-15 18:18:23 -04:00
LibName BUG: better fix for .dll.lib problem 2006-11-30 17:32:46 -05:00
LinkDirectory Test CMP0015 OLD and NEW link_directories behavior 2009-11-24 11:17:16 -05:00
LinkFlags Intel-specific workaround for LinkFlags tests 2010-06-03 09:47:23 -04:00
LinkLanguage Test target link information invalidation 2009-10-05 09:07:09 -04:00
LinkLine ENH: some cleanup, condensing some tests, removing arguments that were not needed but rather were cut and paste copies etc 2007-05-18 15:11:20 -04:00
LinkLineOrder ENH: remove warnings in tests 2004-05-02 11:50:14 -04:00
LinkStatic Test static linking with LINK_SEARCH_START_STATIC 2011-03-04 08:37:57 -05:00
LoadCommand LoadCommand test: cleanup 2012-01-20 18:31:32 +01:00
LoadCommandOneConfig ENH: Remove CMAKE_ANSI_CFLAGS from tests 2009-07-08 11:41:48 -04:00
MFC Tests: Only really run MFC test if we can build MFC apps (#11213) 2011-12-16 16:30:10 -05:00
MacroTest ENH: Remove CMAKE_ANSI_CFLAGS from tests 2009-07-08 11:41:48 -04:00
MakeClean ENH: Remove CMAKE_ANSI_CFLAGS from tests 2009-07-08 11:41:48 -04:00
MathTest ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
MissingSourceFile Test that missing source mentions directory (#11677) 2011-01-15 08:16:50 -05:00
Module CheckCXXCompilerFlag test: make it a CMakeOnly test 2012-01-30 19:42:51 +01:00
ModuleDefinition Fix ModuleDefinition test for Intel on Windows 2009-10-05 14:39:23 -04:00
NewlineArgs ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
ObjC++ ENH: some more CMakeList cleanups 2007-05-11 10:22:20 -04:00
OutDir Fix OutDir test on HP, MinGW, and Cygwin 2009-10-29 09:26:17 -04:00
OutOfBinary BUG: Fixed out-of-source subdirectories to work when they are also out-of-binary. Updated the OutOfSource test to test this feature. 2006-10-09 21:25:58 -04:00
OutOfSource Visual Studio 10 has the same bug as 8 so make the path shorter 2009-09-23 16:10:31 -04:00
PerConfig Merge topic 'resolve/tests-if-CYGWIN' 2010-12-21 14:05:53 -05:00
Plugin ENH: Remove CMAKE_ANSI_CFLAGS from tests 2009-07-08 11:41:48 -04:00
Policy0002 Test support for OLD behavior of policy CMP0002 2009-09-28 17:34:34 -04:00
PolicyScope Allow users to specify defaults for unset policies 2011-01-04 07:46:10 -05:00
PreOrder ENH: some more CMakeList cleanups 2007-05-11 10:22:20 -04:00
PrecompiledHeader Fix PrecompiledHeader test for Intel on Windows 2009-10-05 14:39:14 -04:00
Preprocess Teach our tests about special cases for VS 11 2011-09-23 11:07:24 -04:00
Properties Fix #12342: Add APPEND_STRING option to set_property() 2011-07-15 20:57:33 +02:00
QtAutomoc automoc: default to strict mode, use CMAKE_AUTOMOC_RELAXED_MODE 2011-12-13 22:11:47 +01:00
ReturnTest ENH: Remove CMAKE_ANSI_CFLAGS from tests 2009-07-08 11:41:48 -04:00
RuntimePath ENH: Remove CMAKE_ANSI_CFLAGS from tests 2009-07-08 11:41:48 -04:00
SameName ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
SetLang ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
Simple ENH: some more CMakeList cleanups 2007-05-11 10:22:20 -04:00
SimpleCOnly ENH: add a SimpleCOnly test, this is needed e.g. for testing sdcc since this 2007-06-26 15:30:02 -04:00
SimpleExclude ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
SimpleInstall export(): Document undefined behavior of location properties 2011-12-01 16:00:12 -05:00
SimpleInstallS2 export(): Document undefined behavior of location properties 2011-12-01 16:00:12 -05:00
SourceGroups Fix XCode -> Xcode typos, notably in man page (#12231) 2011-05-31 09:13:00 -04:00
StringFileTest allow STRING(SUBSTRING) work with length -1 as "rest of the string" 2010-12-08 16:38:30 -05:00
SubDir ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
SubDirSpaces Disable SubDirSpaces parens with GNU Make 3.82 (#11654) 2011-01-11 10:01:30 -05:00
SubProject ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
SwigTest ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
SystemInformation Add framework to detect compiler version with its id (#12408) 2011-12-07 08:59:51 -05:00
TarTest Allow test to work on machines with umasks that do not allow files to be overwritten. 2009-11-09 12:48:31 -05:00
TargetName ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
TestDriver ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
Testing Merge topic 'custom-command-generator-expressions' 2010-12-21 14:03:24 -05:00
TestsWorkingDirectory Fix XCode -> Xcode typos, notably in man page (#12231) 2011-05-31 09:13:00 -04:00
TryCompile Tests: Added test for check_prototype_definition. 2011-03-18 14:03:37 -04:00
Tutorial Use new style header generation and get rid of OBJECT_DEPENDS in tutorial 2009-10-04 22:55:02 -04:00
Unset ENH: Create $CACHE{VAR} syntax 2008-09-25 10:21:15 -04:00
VSExternalInclude Teach our tests about special cases for VS 11 2011-09-23 11:07:24 -04:00
VSGNUFortran CMakeAddFortranSubdirectory: Add NO_EXTERNAL_INSTALL option 2012-02-09 08:38:56 -05:00
VSMidl VSMidl Test: Use correct include_directories with VS6 (#11461) 2011-01-06 09:12:20 -05:00
VSResource Add support for Visual Studio project-specific globals (#8707) 2011-07-29 10:04:36 -04:00
VariableUnusedViaSet Add test for unused detection via setting it 2010-09-16 13:52:54 -04:00
VariableUnusedViaUnset Fix typo in VariableUnusedViaUnset test 2010-09-17 10:04:18 -04:00
VariableUsage Add tests for unused command line variables 2010-09-02 11:33:57 -04:00
Wrapping ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
X11 ENH: make sure tests for cpack are run correctly 2009-04-21 17:15:42 -04:00
iOSNavApp Xcode: Add test to demonstrate iOS project in Xcode 2011-09-12 15:46:24 -04:00
.NoDartCoverage clean up coverage some 2002-12-03 11:21:12 -05:00
CMakeBuildTest.cmake.in Fix the case where cmake --build failed with two project cmds in one file. 2011-12-20 14:16:25 -05:00
CMakeInstall.cmake Avoid running CMake.Install test simultaneously with other tests 2010-12-31 09:18:52 -05:00
CMakeLists.txt Tests: Escape metachars before embedding paths into the regex (#12999) 2012-02-27 09:01:10 -05:00
CMakeWizardTest.cmake Increase coverage. Add test of class cmakewizard. (cmake -i 'mode') 2009-10-06 13:27:13 -04:00
CTestUpdateBZR.cmake.in Generalize CTest.Update* test dashboard script helpers 2010-06-08 15:58:39 -04:00
CTestUpdateCVS.cmake.in Generalize CTest.Update* test dashboard script helpers 2010-06-08 15:58:39 -04:00
CTestUpdateCommon.cmake Fix machine-specific UpdateGIT test failures 2011-07-29 10:24:06 -04:00
CTestUpdateGIT.cmake.in Merge topic 'ctest-git-flexibility' 2010-08-03 16:07:31 -04:00
CTestUpdateGIT.sh.in ctest_update: Support Git upstream branch rewrites 2010-06-08 16:50:17 -04:00
CTestUpdateHG.cmake.in Generalize CTest.Update* test dashboard script helpers 2010-06-08 15:58:39 -04:00
CTestUpdateSVN.cmake.in Teach CTest.UpdateSVN to detect svn add --depth before using it 2011-10-24 17:34:55 -04:00
CheckFortran.cmake Modules: Fix spelling 'To distributed' -> 'To distribute' 2010-08-09 08:48:31 -04:00
EnforceConfig.cmake.in Always use a configuration for CMake tests 2009-12-10 11:19:23 -05:00
README Tests: document where to put tests 2012-02-17 21:02:08 +01:00
TestInstall.sh.in ENH: Added Install test. It is enabled when the CMAKE_INSTALL_PREFIX is CMake_BINARY_DIR/InstallTest. 2003-08-06 10:39:05 -04:00
bootstrap.bat.in Enable BootstrapTest on MSYS 2010-06-11 14:30:44 -04:00
test_clean.cmake.in ENH: Add test_clean target to wipe out tests 2008-08-19 11:43:57 -04:00

README

If you think about adding a new testcase then here is a small checklist you
can run through to find a proper place for it. Go through the list from the
beginning and stop once you find something that matches your tests needs,
i.e. if you will test a module and only need the configure mode use the
instructions from section 2, not 3.

1. Your testcase can run in CMake script mode, i.e. "cmake -P something"

Put your test in Tests/CMakeTests/ directory as a .cmake.in file. It will be
put into the test binary directory by configure_file(... @ONLY) and run from
there. Use the AddCMakeTest() macro in Tests/CMakeTests/CMakeLists.txt to add
your test to the test runs.

2. Your test needs CMake to run in configure mode, but will not build anything

This includes tests that will build something using try_compile() and friends,
but nothing that expects add_executable(), add_library(), or add_test() to run.

If this matches your test you should put it into the Tests/CMakeOnly/ directory.
Create a subdirectory named like your test and write the CMakeLists.txt you
need into that subdirectory. Use the add_CMakeOnly_test() macro from
Tests/CMakeOnly/CMakeLists.txt to add your test to the test runs.

3. If you are testing something from the Modules directory

Put your test in the Tests/Modules/ directory. Create a subdirectory there
named after your test. Use the ADD_TEST_MACRO macro from Tests/CMakeLists.txt
to add your test to the test run. If you have put your stuff in
Tests/Modules/Foo then you call it using ADD_TEST_MACRO(Module.Foo Foo).

4. You are doing other stuff.

Find a good place ;) In doubt mail to cmake-developers@cmake.org and ask for
advise.