CMake/Tests
Brad King 813b519280 Merge topic 'minor-fixes'
ba48e63 Generate config-specific interface link libraries propeties.
deb51a7 Remove unused forward declarations.
9712362 Don't allow utility or global targets in the LINKED expression.
faa927e Make sure INTERFACE properties work with OBJECT libraries.
510fdcb Whitelist target types in target_{include_directories,compile_definitions}
4de7178 Ensure that the build interface includes have been added.
df74bc3 Only append build interface include dirs to particular targets.
d4e5c67 Don't keep track of content determined by target property values.
1fb545a Move a special case for PIC from the genex to the cmTarget code.
57175d5 Only use early evaluation termination for transitive properties.
4cf161a Fix determination of evaluating link libraries.
3a298c0 Fix generation of COMPILE_DEFINITIONS in DependInfo.cmake.
655e98b Ensure type specific compatible interface properties do not intersect.
46e2896 The COMPATIBLE_INTERFACE does not affect the target it is set on.
5f926a5 Test printing origin of include dirs from tll().
7c0ec75 De-duplicate validation of genex target names.
...
2013-02-11 13:59:48 -05:00
..
Architecture Use correct default multiple architecture values in test 2011-07-19 11:53:31 -04:00
ArgumentExpansion Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Assembler Tests/Assembler: Use CMAKE_OSX_SYSROOT to generate .s file 2012-09-21 11:15:23 -04:00
BuildDepends Merge topic 'link-depends-no-shared' 2012-11-13 14:31:54 -05:00
BundleGeneratorTest Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
BundleTest Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
BundleUtilities Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CFBundleTest Fix XCode -> Xcode typos, notably in man page (#12231) 2011-05-31 09:13:00 -04:00
CMakeCommands Only use early evaluation termination for transitive properties. 2013-02-07 16:21:09 +01:00
CMakeLib Avoid string.clear and string.push_back (#13319) 2012-06-19 14:21:34 -04:00
CMakeOnly Tests: Add generator toolset support 2013-02-07 11:09:56 -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 Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CMakeTests Merge topic 'implicit-lib-canonical-path' 2013-02-08 13:38:10 -05:00
COnly Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CPackComponents Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CPackComponentsForAll Tests: Use the right path to CPack value for running CPack tests 2012-11-29 15:49:36 -05:00
CPackTestAllGenerators Tests: Use the right path to CPack value for running CPack tests 2012-11-29 15:49:36 -05:00
CPackWiXGenerator CPack: Add a WiX Generator (#11575) 2012-12-03 11:00:31 -05:00
CTestConfig Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestLimitDashJ Add CTestLimitDashJ test (#12904) 2013-01-03 13:37:50 -05:00
CTestScriptMode Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CTestTest Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTest2 Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestBadExe Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestChecksum Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestConfigFileInBuildDir Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestCostSerial Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestCrash Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestCycle Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestDepends Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestFailedSubmits Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestFailure Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestMemcheck Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestParallel Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestResourceLock Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestRunScript Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
CTestTestScheduler Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestStopTime Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestSubdir Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestTimeout Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestUpload Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CTestTestZeroTimeout Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CheckCompilerRelatedVariables VS: Fix MSVC_IDE definition recently broken by refactoring 2012-08-30 16:18:05 -04:00
CommandLineTest Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CompatibleInterface The COMPATIBLE_INTERFACE does not affect the target it is set on. 2013-02-07 16:21:09 +01:00
CompileCommandOutput Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
CompileDefinitions GenEx: Test the use of generator expressions to generate lists. 2012-10-17 16:21:12 -04:00
Complex Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
ComplexOneConfig Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Contracts Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
CrossCompile Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
CustComDepend Remove trailing whitespace from most CMake and C/C++ code 2012-08-13 14:18:39 -04:00
CustomCommand Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CustomCommandWorkingDirectory Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
CxxOnly Fix CXX/Fortran MODULE flags when enabled before C (#12929) 2012-02-03 15:45:13 -05:00
Dependency Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
DocTest Remove trailing whitespace from most CMake and C/C++ code 2012-08-13 14:18:39 -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
EmptyDepends Watcom: Avoid prompt from wmake about dll with no exports... 2012-11-28 12:11:52 -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 Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
ExternalOBJ Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
ExternalProject ExternalProject: Allow DEPENDS on normal targets (#13849) 2013-01-16 10:35:58 -05:00
ExternalProjectUpdate Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
FindModulesExecuteAll Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
FindPackageModeMakefileTest Fix FindPackageMode test Makefile (#13314) 2012-06-19 08:26:01 -04:00
FindPackageTest Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
ForceInclude Map multiple /FI flags for VS < 10 (#11649) 2011-01-03 10:02:16 -05:00
Fortran Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
FortranC Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
FortranOnly Fortran: Add support for free- and fixed-form flags 2011-08-31 10:24:43 -04:00
Framework Remove trailing whitespace from most CMake and C/C++ code 2012-08-13 14:18:39 -04:00
FunctionTest Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
GeneratorExpression Make it an error for INSTALL_PREFIX to be evaluated. 2013-01-31 17:27:06 +01:00
IPO Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
IncludeDirectories Test workaround of bad interface include directories from depends. 2013-01-31 17:34:20 +01:00
JCTest Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Java Remove trailing whitespace from most CMake and C/C++ code 2012-08-13 14:18:39 -04:00
Jump Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
LibName Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04: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 Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
LinkLineOrder Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
LinkStatic Test static linking with LINK_SEARCH_START_STATIC 2011-03-04 08:37:57 -05:00
LoadCommand Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
LoadCommandOneConfig Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -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 Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
MakeClean Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
MathTest Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
MissingSourceFile Test that missing source mentions directory (#11677) 2011-01-15 08:16:50 -05:00
Module Fix Module.ExternalData test on Cygwin 2013-02-04 15:19:49 -05:00
ModuleDefinition Test generated module .def files 2012-04-02 10:54:25 -04:00
MumpsCoverage Update test data to match new coverage format. 2012-05-07 15:46:29 -04:00
NewlineArgs Remove trailing whitespace from most CMake and C/C++ code 2012-08-13 14:18:39 -04:00
ObjC++ Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
ObjectLibrary Make sure INTERFACE properties work with OBJECT libraries. 2013-02-08 20:10:22 +01:00
OutDir Fix OutDir test on HP, MinGW, and Cygwin 2009-10-29 09:26:17 -04:00
OutOfBinary Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
OutOfSource Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
PDBDirectoryAndName Run PDBDirectoryAndName test on MSVC and Intel 2012-09-29 07:17:42 -04:00
PerConfig Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Plugin Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Policy0002 Test support for OLD behavior of policy CMP0002 2009-09-28 17:34:34 -04:00
PolicyScope Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
PositionIndependentTargets Fix PositionIndependentTargets test with clang trunk. 2012-06-27 16:39:24 +02:00
PreOrder Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
PrecompiledHeader Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Preprocess Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Properties Remove CMake multiline block-end command arguments 2012-08-15 16:50:29 -04:00
Qt4Deploy Remove QtGui dependency in Qt4Deploy test and verify QtSql existance. 2012-02-29 07:55:31 -07:00
Qt4Targets Add includes and compile definitions with target_link_libraries. 2013-01-31 17:34:20 +01:00
QtAutomoc Ensure that the build interface includes have been added. 2013-02-08 12:54:27 +01:00
ReturnTest Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
RunCMake Merge topic 'minor-fixes' 2013-02-11 13:59:48 -05:00
RuntimePath Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
SBCS Visual Studio: Allow setting Single Byte Character Set (#12189) 2012-02-17 11:30:23 -05:00
SameName Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
SetLang Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Simple Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
SimpleCOnly Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
SimpleExclude Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
SimpleInstall Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
SimpleInstallS2 Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
SourceGroups Remove trailing whitespace from most CMake and C/C++ code 2012-08-13 14:18:39 -04:00
StringFileTest Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
SubDir Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
SubDirSpaces Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
SubProject ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
SwigTest Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
SystemInformation OS X: Detect implicit linker framework search paths 2012-12-11 15:15:52 -05:00
TarTest Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
TargetName Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
TestDriver Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Testing Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
TestsWorkingDirectory Fix XCode -> Xcode typos, notably in man page (#12231) 2011-05-31 09:13:00 -04:00
TryCompile Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Tutorial Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Unset Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
VSExcludeFromDefaultBuild Add tests for EXCLUDE_FROM_DEFAULT_BUILD 2012-11-13 09:08:42 -05:00
VSExternalInclude Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
VSGNUFortran Tests/VSGNUFortran: Avoid C++ comment in C code (#13314) 2012-06-18 16:18:27 -04: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 Fix casing of 'Qt' in docs, comments and user-visible strings. 2012-08-28 11:24:55 +02:00
X11 Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -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 Tests: Add generator toolset support 2013-02-07 11:09:56 -05:00
CMakeInstall.cmake Avoid running CMake.Install test simultaneously with other tests 2010-12-31 09:18:52 -05:00
CMakeLists.txt Tests: Add generator toolset support 2013-02-07 11:09:56 -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 Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CTestUpdateCVS.cmake.in Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CTestUpdateCommon.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CTestUpdateGIT.cmake.in Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CTestUpdateGIT.sh.in ctest_update: Support Git upstream branch rewrites 2010-06-08 16:50:17 -04:00
CTestUpdateHG.cmake.in Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CTestUpdateSVN.cmake.in Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CheckFortran.cmake Modules: Fix spelling 'To distributed' -> 'To distribute' 2010-08-09 08:48:31 -04:00
EnforceConfig.cmake.in Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
README Add stronger infrastructure for CMake-only tests 2012-03-12 09:33:21 -04: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 Convert CMake-language commands to lower case 2012-08-13 14:19:16 -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 the test configures the project only once and it must succeed then 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.

If the test configures the project with multiple variations and verifies
success or failure each time then put it into the Tests/RunCMake/ directory.
Read the instructions in Tests/RunCMake/CMakeLists.txt to add a test.

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.