CMake/Tests
Brad King 783c375766 Tests: Extend BuildDepends test to cover OBJECT_DEPENDS
The actual file timestamp dependency is known to not work on
Visual Studio or Xcode generators.  Tolerate such failure for
these generators (Tests/CustomCommand already covers using
OBJECT_DEPENDS to pull a custom command into a target, and
that still works with these generators).
2015-07-22 11:37:47 -04:00
..
AliasTarget HP aCC: record compiler flag for Ansi C++98 support for version 3.80 onwards 2014-04-25 17:59:57 +02:00
Architecture Xcode: Fix test architecture selection for Xcode >= 5 2013-10-02 12:48:20 -04:00
ArgumentExpansion
Assembler Avoid if() quoted auto-dereference 2014-10-20 11:49:16 -04:00
BuildDepends Tests: Extend BuildDepends test to cover OBJECT_DEPENDS 2015-07-22 11:37:47 -04:00
BundleGeneratorTest
BundleTest Tests/BundleTest: Drop use of ChangeLog.txt 2014-02-07 13:35:31 -05:00
BundleUtilities OSX: Warn when attempting to change runtime paths on OS X 10.5 2014-10-10 10:17:27 -04:00
CFBundleTest Tests: Run CFBundleTest only with valid configuration 2014-12-19 08:24:04 -05:00
CMakeCommands Tests: Do not try to use invalid "ld -v" flag on Solaris 2015-03-31 11:21:36 -04:00
CMakeLib cmSystemTools: Teach RunSingleCommand to separate stdout and stderr 2015-04-20 15:47:50 -04:00
CMakeOnly Merge topic 'CheckCompilerFlag-do-not-use-FLAGS' 2015-07-09 09:17:19 -04:00
CMakeTestAllGenerators
CMakeTestMultipleConfigures
CMakeTests Tests: Move command failure cases into RunCMake infrastructure 2015-07-14 10:25:38 -04:00
COnly
CPackComponents
CPackComponentsDEB CPack/DEB per component dependencies 2015-05-08 23:36:26 +02:00
CPackComponentsForAll CPackRPM content listing refactor 2015-04-19 18:22:18 +02:00
CPackComponentsPrefix CPack: Enable DEB and RPM tests more reliably 2015-05-12 08:56:34 -04:00
CPackTestAllGenerators
CPackWiXGenerator CPackWiX: Fix test to build with expected config 2014-03-08 13:05:40 -05:00
CTestBuildCommandProjectInSubdir Tests: Drop CMAKE_TEST_GENERATOR(|_TOOLSET) variables 2014-03-03 15:26:49 -05:00
CTestConfig Tests: Use -A option to pass generator platform selection 2014-09-15 10:26:59 -04:00
CTestCoverageCollectGCOV CTestCoverageCollectGCOV: Support CTEST_CUSTOM_COVERAGE_EXCLUDE 2015-04-04 12:25:15 +02:00
CTestLimitDashJ
CTestScriptMode
CTestTest Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTest2 Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestBadExe Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestBadGenerator Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestChecksum Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestCostSerial Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestCrash Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestCycle Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestDepends Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestEmptyBinaryDirectory Tests: added test for ctest_empty_binary_directory() 2013-11-01 21:32:16 +01:00
CTestTestFailure Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestFdSetSize Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestLabelRegExp CTest: Fix combined inclusive/exclusive label regular expressions 2014-06-06 10:28:18 +02:00
CTestTestLaunchers Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestMissingDependsExe CTest: fix regressions introduced by the ctest-fix-run-serial topic 2013-12-23 15:31:15 +01:00
CTestTestParallel Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestResourceLock Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestRunScript
CTestTestScheduler Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestSerialInDepends CTest: fix dashboard issues associated with the ctest-fix-run-serial topic 2013-10-25 21:39:58 +02:00
CTestTestSerialOrder CTest: fix regressions introduced by the ctest-fix-run-serial topic 2013-12-23 15:31:15 +01:00
CTestTestSkipReturnCode Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestStopTime Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestSubdir Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestTimeout Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestUpload Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CTestTestVerboseOutput CTest: Output test-specific env vars in verbose mode (#15446) 2015-03-17 10:11:33 -04:00
CTestTestZeroTimeout Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
CheckCompilerRelatedVariables VS14: Add Visual Studio 14 generator (#14982) 2014-06-25 14:51:19 -04:00
CoberturaCoverage CTest: Generalize Cobertura coverage format handling 2014-06-04 14:26:19 +00:00
CommandLineTest
CompatibleInterface Honor $<LINK_ONLY> when checking interface properties 2014-07-16 13:28:47 -04:00
CompileCommandOutput
CompileDefinitions Tests: Shorten paths in CompileDefinitions 2015-01-25 08:12:12 -05:00
CompileFeatures Features: Update MSVC features for VS 2015 RTM 2015-07-21 12:56:47 -04:00
CompileOptions Makefile: Handle '#' in COMPILE_OPTIONS (#15070) 2014-08-12 13:56:21 -04:00
Complex cmState: Restore renamed commands on cleanup. 2015-07-12 10:09:54 +02:00
ComplexOneConfig Tests: Remove incorrect indentation from Complex test comment 2015-01-22 14:11:46 -05:00
ConfigSources cmTarget: Don't allow relative paths in INTERFACE_SOURCES 2014-11-29 12:24:59 +01:00
Contracts Tests/Contracts: Submit notes with VTK build 2013-12-19 10:01:14 -05:00
CrossCompile
CustComDepend
CustomCommand Merge topic 'fix-OBJECT_DEPENDS-after-path-normalization' 2015-01-29 09:13:53 -05:00
CustomCommandByproducts ExternalProject: Replace placeholder tokens in BYPRODUCTS 2015-03-09 10:04:44 -04:00
CustomCommandWorkingDirectory
CxxDialect Features: Enable compiler extensions by default. 2014-05-31 12:16:12 +02:00
CxxOnly
CxxSubdirC Tests: Test using objects from a language enabled in a subdirectory (#15325) 2014-12-22 20:13:40 -05:00
DelphiCoverage CTest: Add code coverage parser for Pascal/Delphi 2014-10-21 15:02:20 -04:00
Dependency Fix link line order when shared libraries are de-duplicated 2014-11-10 14:46:22 -05:00
DoubleProject
EmptyDepends
EmptyLibrary
EmptyProperty set_property: Do not remove a property when APPENDing nothing 2013-07-24 10:50:15 -04:00
Environment
ExportImport Add generator expression support to OUTPUT_NAME target property 2015-07-09 11:48:10 -04:00
ExternalOBJ
ExternalProject ExternalProject: Add unit tests for GIT_SUBMODULES argument 2015-06-08 10:27:06 -04:00
ExternalProjectLocal Tests: Shorten paths in ExternalProjectLocal 2015-01-27 08:57:57 -05:00
ExternalProjectSubdir ExternalProject: Allow dependencies on INTERFACE libraries 2015-04-22 08:48:52 -04:00
ExternalProjectUpdate ExternalProject: Add unit tests for UPDATE_DISCONNECTED 2014-11-06 15:09:44 +01:00
FindGSL FindGSL: Add module to find the GNU Scientific Library 2014-12-17 10:59:48 -05:00
FindGTK2 FindGTK2: Add tests for components and targets in gtk and gtkmm modules 2013-10-08 10:47:06 -04:00
FindJsonCpp FindJsonCpp: Drop new module due to upstream jsoncpp providing package 2015-02-20 08:22:02 -05:00
FindMatlab Tests: Increasing the stability of the FindMatlab.basic_checks test 2015-04-13 09:36:13 -04:00
FindModulesExecuteAll
FindPackageModeMakefileTest Remove .* expressions from beginning and end of MATCHES regexs 2014-04-14 18:17:11 +02:00
FindPackageTest Tests: Fix failures when running under the default install prefix (#15566) 2015-05-14 10:07:37 -04:00
ForceInclude Avoid if() quoted auto-dereference 2014-10-20 11:49:16 -04:00
Fortran Fortran: Fix passing of preprocessor definitions to dependency scanner 2015-07-06 10:35:02 -04:00
FortranC Avoid if() quoted auto-dereference 2014-10-20 11:49:16 -04:00
FortranOnly CheckFortranCompilerFlag: Add test case 2015-02-05 11:18:13 -05:00
Framework
FunctionTest Tests: Fix CMP0054 warnings 2014-09-16 09:06:29 -04:00
GeneratorExpression Genex: Only evaluate TARGET_OBJECTS to determine target sources. 2014-04-02 23:12:57 +02:00
GhsMulti Add a 'Green Hills MULTI' generator on Windows 2015-04-20 13:55:40 -04:00
IPO
IncludeDirectories IncludeDirectories: Respect SYSTEM flag when using CONFIG genex. 2015-01-23 00:08:18 +01:00
InterfaceLibrary Allow add_dependencies() on INTERFACE libraries (#15414) 2015-03-27 16:25:09 -04:00
InterfaceLinkLibraries Make $<LINK_ONLY> available to projects (#14751) 2014-07-16 13:28:44 -04:00
JCTest
JacocoCoverage CTest: Fix Jacoco Coverage 2015-03-06 11:18:19 -05:00
Java
JavascriptCoverage CTest: Add Javascript coverage parser 2014-10-29 11:27:11 -04:00
Jump
LibName
LinkDirectory Test: Remove obsolete commented code. 2014-01-07 09:38:00 -05:00
LinkFlags Add additonal tests for the linker flags 2013-07-31 08:41:08 -04:00
LinkLanguage
LinkLine
LinkLineOrder
LinkStatic Avoid if() quoted auto-dereference 2014-10-20 11:49:16 -04:00
LoadCommand Tests: Simplify LoadCommand tests 2014-06-25 15:27:01 -04:00
LoadCommandOneConfig Tests: Simplify LoadCommand tests 2014-06-25 15:27:01 -04:00
MFC
MacRuntimePath Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
MacroTest Tests: Fix CMP0054 warnings 2014-09-16 09:06:29 -04:00
MakeClean Tests: Don't read the LOCATION property from build targets. 2013-11-19 18:07:27 +01:00
MathTest
MissingInstall InstallRules: added new variable to disable generation of install rules 2014-01-08 16:28:14 +01:00
MissingSourceFile
Module ExternalData: Add option to disable use of symlinks 2015-05-22 09:21:47 -04:00
ModuleDefinition Avoid if() quoted auto-dereference 2014-10-20 11:49:16 -04:00
MumpsCoverage CTEST: Fix MUMPS file parser and update test 2014-08-15 10:50:36 -04:00
NewlineArgs
ObjC++
ObjectLibrary add_library: Allow arbitrary non-linked sources in OBJECT libraries 2014-07-09 09:43:42 -04:00
OutDir Encoding: Modify tests to work using non-ascii paths. 2015-01-08 20:56:51 -07:00
OutOfBinary
OutOfSource
PDBDirectoryAndName Avoid if() quoted auto-dereference 2014-10-20 11:49:16 -04:00
PerConfig Use a more reliable regex for extracting binary INFO strings 2014-09-03 17:00:48 -04:00
Plugin HP aCC: record compiler flag for Ansi C++98 support for version 3.80 onwards 2014-04-25 17:59:57 +02:00
Policy0002
PolicyScope
PositionIndependentTargets Add the INTERFACE_LIBRARY target type. 2013-10-07 19:56:31 -04:00
PreOrder
PrecompiledHeader Avoid if() quoted auto-dereference 2014-10-20 11:49:16 -04:00
Preprocess Tests: Update Preprocess test for XL compiler limitations 2015-04-14 11:03:48 -04:00
Properties cmSourceFileLocation: Collapse full path for directory comparisons. 2014-03-31 23:18:43 +02:00
PythonCoverage Adding support for the Python coverage.py tool. 2013-10-08 09:20:30 -04:00
Qt4And5Automoc FindQt4: Make AUTOMOC work regardless which order Qt 4/5 is found. 2014-01-29 17:02:43 +01:00
Qt4Deploy
Qt4Targets Qt4: Extend the Qt4Targets test to cover dir and target moc parameters. 2014-05-06 13:39:45 -04:00
QtAutoUicInterface QtAutoUic: Add INTERFACE_AUTOUIC_OPTIONS target property. 2013-11-27 19:06:12 +01:00
QtAutogen Merge topic 'qt-autogen-always-run' 2015-06-23 09:08:15 -04:00
QtAutomocNoQt
ReturnTest
RunCMake Merge topic 'export-no-custom-target' 2015-07-22 11:04:32 -04:00
RuntimePath
SBCS
SameName
SetLang
Simple
SimpleCOnly
SimpleExclude
SimpleInstall Tests: Teach SimpleInstall to use "cmake --build" 2013-11-18 08:26:22 -05:00
SimpleInstallS2 Tests: Teach SimpleInstall to use "cmake --build" 2013-11-18 08:26:22 -05:00
SourceFileProperty test: test source file properties with case-insensitivity 2014-12-02 10:56:36 -05:00
SourceGroups
SourcesProperty cmTarget: Don't allow relative paths in INTERFACE_SOURCES 2014-11-29 12:24:59 +01:00
StagingPrefix Tests: Add generator platform support 2014-09-10 11:21:50 -04:00
StringFileTest Fix failing StringFileTest when using unicode characters. 2014-10-27 17:55:15 -06:00
SubDir
SubDirSpaces Use CMAKE_SYSTEM_NAME instead of CMAKE_SYSTEM where sufficient 2014-04-14 18:17:18 +02:00
SubProject VS: Fix subproject .sln dependencies on custom targets 2014-06-12 11:14:06 -04:00
SwiftMix Add rudimentary support for the Apple Swift language with Xcode 2015-07-06 16:15:49 -04:00
SwiftOnly Add rudimentary support for the Apple Swift language with Xcode 2015-07-06 16:15:49 -04:00
SwigTest
SystemInformation Features: Add support for C++14 features. 2014-05-22 18:01:23 +02:00
TargetName
TestDriver
Testing
TestsWorkingDirectory
TryCompile Avoid if() quoted auto-dereference 2014-10-20 11:49:16 -04:00
Tutorial Tests/Tutorial: Fix when USE_MYMATH is OFF 2014-10-31 11:32:24 -04:00
Unset unset: Add PARENT_SCOPE option 2013-10-08 08:37:50 -04:00
VSExcludeFromDefaultBuild VS: Add option to put INSTALL target in .sln default build 2015-05-06 10:31:39 -04:00
VSExternalInclude Tests: Use -A option to pass generator platform selection 2014-09-15 10:26:59 -04:00
VSGNUFortran
VSMASM VS: Add test for MASM support 2014-08-20 10:19:49 -04:00
VSMidl
VSNsightTegra VS: Add more Nsight Tegra generator Android property settings 2015-07-14 14:24:05 -04:00
VSProjectInSubdir
VSResource VS: Add /machine: flag to Librarian tool (#11240) 2015-06-26 10:07:08 -04:00
VSWinStorePhone VS: Add source file property to set extra hlsl shader flags 2015-01-28 09:29:50 -05:00
VSWindowsFormsResx VS: Add support for XAML source files 2015-04-03 13:40:35 -04:00
VSXaml VS: Add support for XAML source files 2015-04-03 13:40:35 -04:00
VariableUnusedViaSet
VariableUnusedViaUnset
VariableUsage
Visibility Honor visibility properties for all target types (#15556) 2015-05-26 09:03:16 -04:00
WarnUnusedCliUnused CLI: Suppress the unused warning if the key value pair is cached. 2013-06-04 12:38:56 +02:00
Wrapping Tests: Don't read the LOCATION property from build targets. 2013-11-19 18:07:27 +01:00
X11
XCTest Tests: Add XCTest example to test Frameworks and Cocoa App Bundles 2015-03-23 09:12:20 -04:00
iOSNavApp
.NoDartCoverage
BootstrapTest.cmake Tests: Launch BootstrapTest through cmake instead of ctest 2013-11-18 08:26:22 -05:00
CMakeBuildTest.cmake.in Tests: Use -A option to pass generator platform selection 2014-09-15 10:26:59 -04:00
CMakeCopyright.cmake Copyright.txt: Add test to check year range 2013-11-12 16:35:26 -05:00
CMakeInstall.cmake Tests: Launch CMake.Install test through 'cmake --build' 2013-11-18 08:26:22 -05:00
CMakeLists.txt Tests: Move CTestTestConfigFileInBuildDir into RunCMake.ctest_start 2015-07-14 09:32:53 -04:00
CTestUpdateBZR.cmake.in
CTestUpdateCVS.cmake.in ctest_update: Fix RETURN_VALUE on VCS tool failure (#15610) 2015-06-11 11:00:48 -04:00
CTestUpdateCommon.cmake ctest_update: Fix RETURN_VALUE on VCS tool failure (#15610) 2015-06-11 11:00:48 -04:00
CTestUpdateGIT.cmake.in ctest_update: Fix RETURN_VALUE on VCS tool failure (#15610) 2015-06-11 11:00:48 -04:00
CTestUpdateGIT.sh.in
CTestUpdateHG.cmake.in ctest_update: Fix RETURN_VALUE on VCS tool failure (#15610) 2015-06-11 11:00:48 -04:00
CTestUpdateP4.cmake.in ctest_update: Do not remove the p4 depot name 2013-11-01 08:52:26 -04:00
CTestUpdateSVN.cmake.in ctest_update: Fix RETURN_VALUE on VCS tool failure (#15610) 2015-06-11 11:00:48 -04:00
CheckFortran.cmake
EnforceConfig.cmake.in
README
bootstrap.bat.in
test_clean.cmake.in

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.