CMake/Tests
Brad King bf02e75079 Merge topic 'INTERFACE_LIBRARY-build-targets'
b04f3b9 Create make rules for INTERFACE_LIBRARY targets.
dba4962 Makefile: Always create clean target command
2013-10-21 09:48:04 -04:00
..
AliasTarget Add the INTERFACE_LIBRARY target type. 2013-10-07 19:56:31 -04:00
Architecture Xcode: Fix test architecture selection for Xcode >= 5 2013-10-02 12:48:20 -04:00
ArgumentExpansion
Assembler Clang: Add separate "AppleClang" compiler id 2013-10-07 20:12:46 -04:00
BuildDepends Xcode: Teach BuildDepends test that Xcode >= 5 needs no help 2013-10-08 14:21:25 -04:00
BundleGeneratorTest
BundleTest
BundleUtilities
CFBundleTest
CheckCompilerRelatedVariables VS12: Add Visual Studio 12 generator (#14251) 2013-06-28 18:13:14 -04:00
CMakeCommands target_link_libraries: Allow repeated use of LINK_{PRIVATE,PUBLIC} keywords. 2013-10-17 17:37:20 +02:00
CMakeLib Add class cmRST to do basic reStructuredText processing 2013-10-16 09:22:35 -04:00
CMakeOnly Merge topic 'CheckStructHasMember_CXX' 2013-10-08 09:53:37 -04:00
CMakeTestAllGenerators
CMakeTestBadCommandLines
CMakeTestMultipleConfigures
CMakeTests get_property: Drop test for builtin property documentation 2013-10-16 09:22:36 -04:00
CommandLineTest
CompatibleInterface Add the INTERFACE_LIBRARY target type. 2013-10-07 19:56:31 -04:00
CompileCommandOutput
CompileDefinitions Remove the LINK_LANGUAGE generator expression. 2013-07-24 10:40:00 -04:00
CompileOptions Add generator expressions for compiler versions. 2013-06-28 14:32:58 +02:00
Complex Haiku: Several fixes to platform module 2013-10-08 09:54:46 -04:00
ComplexOneConfig Haiku: Several fixes to platform module 2013-10-08 09:54:46 -04:00
COnly
Contracts update Trilinos contract test 2013-08-28 15:28:14 -04:00
CPackComponents
CPackComponentsForAll
CPackTestAllGenerators
CPackWiXGenerator CPackWIX: Handle CPACK_PACKAGE_EXECUTABLES (#13967) 2013-07-19 10:49:00 -04:00
CrossCompile
CTestBuildCommandProjectInSubdir
CTestConfig
CTestLimitDashJ
CTestScriptMode
CTestTest
CTestTest2
CTestTestBadExe
CTestTestChecksum
CTestTestConfigFileInBuildDir
CTestTestCostSerial
CTestTestCrash
CTestTestCycle
CTestTestDepends Add the ALIAS target concept for libraries and executables. 2013-08-02 15:21:00 +02:00
CTestTestFailedSubmits
CTestTestFailure
CTestTestFdSetSize
CTestTestMemcheck CTestTestMemcheck: Fix matching of malloc debug messages 2013-09-13 16:47:47 -04:00
CTestTestParallel
CTestTestResourceLock
CTestTestRunScript
CTestTestScheduler
CTestTestStopTime
CTestTestSubdir
CTestTestTimeout
CTestTestUpload
CTestTestZeroTimeout
CustComDepend
CustomCommand Add a test to expose a bug with add_custom_command and ninja. 2013-06-25 14:43:47 -04:00
CustomCommandWorkingDirectory
CxxOnly
Dependency
DoubleProject
EmptyDepends
EmptyLibrary
EmptyProperty set_property: Do not remove a property when APPENDing nothing 2013-07-24 10:50:15 -04:00
Environment
ExportImport Merge topic 'INTERFACE_LIBRARY-target-type' 2013-10-08 10:58:40 -04:00
ExternalOBJ
ExternalProject
ExternalProjectUpdate
FindGTK2 FindGTK2: Add tests for components and targets in gtk and gtkmm modules 2013-10-08 10:47:06 -04:00
FindModulesExecuteAll
FindPackageModeMakefileTest cmTarget: Deprecate the LOCATION target property with a policy. 2013-10-11 21:17:27 +02:00
FindPackageTest
ForceInclude
Fortran
FortranC
FortranOnly
Framework
FunctionTest
GeneratorExpression Merge topic 'test-property-genex' 2013-10-07 15:44:23 -04:00
IncludeDirectories Add a test for SYSTEM headers in INTERFACE libraries. 2013-10-10 00:33:33 +02:00
InterfaceBuildTargets Create make rules for INTERFACE_LIBRARY targets. 2013-10-21 09:46:27 -04:00
InterfaceLibrary Add the INTERFACE_LIBRARY target type. 2013-10-07 19:56:31 -04:00
InterfaceLinkLibraries Introduce the INTERFACE_LINK_LIBRARIES property. 2013-07-08 22:39:09 +02:00
iOSNavApp
IPO
Java
JCTest
Jump
LibName
LinkDirectory
LinkFlags Add additonal tests for the linker flags 2013-07-31 08:41:08 -04:00
LinkLanguage
LinkLine
LinkLineOrder
LinkStatic
LoadCommand
LoadCommandOneConfig
MacroTest
MacRuntimePath OS X: Enable rpath support on Mac OS X when find_library() is used. 2013-07-15 22:39:08 -06:00
MakeClean Genex: Evaluate genexes for additional make clean files. 2013-08-28 00:49:29 +02:00
MathTest
MFC
MissingSourceFile
Module Merge topic 'VISIBILITY_PRESET-property' 2013-06-05 09:38:59 -04:00
ModuleDefinition
MumpsCoverage
NewlineArgs
ObjC++
ObjectLibrary
OutDir
OutOfBinary
OutOfSource
PDBDirectoryAndName
PerConfig
Plugin
Policy0002
PolicyScope
PositionIndependentTargets Add the INTERFACE_LIBRARY target type. 2013-10-07 19:56:31 -04:00
PrecompiledHeader
PreOrder
Preprocess Test COMPILE_DEFINITIONS target property get/set/get round-trip 2013-07-24 13:25:47 -04:00
Properties
PythonCoverage Adding support for the Python coverage.py tool. 2013-10-08 09:20:30 -04:00
Qt4And5Automoc
Qt4Deploy
Qt4Targets
QtAutomoc Search for the Q_GADGET macro for running automoc too. 2013-08-28 10:18:11 +02:00
QtAutomocNoQt
ReturnTest
RunCMake Merge topic 'cmake-syntax-updates' 2013-10-21 09:02:00 -04:00
RuntimePath
SameName
SBCS
SetLang
Simple
SimpleCOnly
SimpleExclude
SimpleInstall
SimpleInstallS2
SourceGroups
StringFileTest
SubDir
SubDirSpaces
SubProject
SwigTest
SystemInformation
TargetName
TarTest
TestDriver
Testing
TestsWorkingDirectory
TryCompile Merge topic 'try_compile-COPY_FILE_ERROR' 2013-07-15 09:33:32 -04:00
Tutorial
Unset unset: Add PARENT_SCOPE option 2013-10-08 08:37:50 -04:00
VariableUnusedViaSet
VariableUnusedViaUnset
VariableUsage
VSExcludeFromDefaultBuild
VSExternalInclude VS12: Add Visual Studio 12 generator (#14251) 2013-06-28 18:13:14 -04:00
VSGNUFortran
VSMidl
VSProjectInSubdir
VSResource
VSWindowsFormsResx VS: Add Resx configuration to the vcxproj file 2013-06-28 09:23:41 -04:00
WarnUnusedCliUnused CLI: Suppress the unused warning if the key value pair is cached. 2013-06-04 12:38:56 +02:00
Wrapping
X11
.NoDartCoverage
bootstrap.bat.in
CheckFortran.cmake
CMakeBuildTest.cmake.in
CMakeInstall.cmake
CMakeLists.txt Create make rules for INTERFACE_LIBRARY targets. 2013-10-21 09:46:27 -04:00
CMakeWizardTest.cmake
CTestUpdateBZR.cmake.in
CTestUpdateCommon.cmake
CTestUpdateCVS.cmake.in
CTestUpdateGIT.cmake.in
CTestUpdateGIT.sh.in
CTestUpdateHG.cmake.in
CTestUpdateSVN.cmake.in
EnforceConfig.cmake.in
README
RegexEscapeString.cmake Fix test failures caused by regexp-sensitive characters in the build paths 2013-06-03 16:51:21 +02:00
test_clean.cmake.in
TestInstall.sh.in

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.