CMake/Tests
Brad King 3b75421515 VS: Improve workaround for CUDA -Xcompiler placement bug
In commit v3.9.0-rc1~431^2~6 (VS: Place CUDA host compiler options in
proper project file fields, 2017-03-07) we worked around a bug in the
CUDA VS integration by dropping `AdditionalCompilerOptions`.  However,
this silently drops `-Xcompiler=` options given by the user that don't
map to one of CudaCompile's dedicated settings.  Improve the workaround
to instead put the remaining `AdditionalCompilerOptions` into the
`AdditionalOptions` field behind `-Xcompiler=` ourselves.
2017-06-21 14:24:11 -04:00
..
AliasTarget
Architecture
ArgumentExpansion
Assembler
BuildDepends Drop Visual Studio 7 .NET 2003 generator 2017-04-19 15:28:05 -04:00
BundleGeneratorTest
BundleTest
BundleUtilities
CFBundleTest
CheckCompilerRelatedVariables
CMakeCommands CompileFeatures: Makes tests work with meta-feature only 2017-05-29 13:51:45 -04:00
CMakeLib Xcode: Drop support for Xcode versions below 3 2017-04-22 15:19:11 -04:00
CMakeOnly Merge topic 'fix-test-all-find-modules' 2017-04-24 09:34:03 -04:00
CMakeTestAllGenerators Tests: Drop machine-specific logic from CMakeTestAllGenerators 2017-04-18 15:12:22 -04:00
CMakeTestMultipleConfigures
CMakeTests ImplicitLinkInfo: Add support for PGI on Windows 2017-05-20 20:02:43 +02:00
CoberturaCoverage
CommandLineTest
CompatibleInterface
CompileCommandOutput
CompileDefinitions
CompileFeatures CompileFeatures: Makes tests work with meta-feature only 2017-05-29 13:51:45 -04:00
CompileOptions
Complex
ComplexOneConfig
ConfigSources
COnly
Contracts
CPackComponents Tests: Fix CPackComponents NSIS install root 2017-03-09 10:20:35 -05:00
CPackComponentsDEB
CPackComponentsForAll CPack/RPM tests: handle build-id links 2017-03-27 09:08:24 -04:00
CPackComponentsPrefix
CPackTestAllGenerators
CPackWiXGenerator
CrossCompile
CSharpOnly VS: added support for C# (for Visual Studio 2010, 2012, 2013, 2015) 2017-01-13 09:28:13 +01:00
CTestBuildCommandProjectInSubdir
CTestConfig
CTestCoverageCollectGCOV
CTestLimitDashJ
CTestScriptMode
CTestTest
CTestTest2
CTestTestBadExe
CTestTestBadGenerator
CTestTestChecksum Tests: Fix spurious CTestTestParallel failures 2017-03-31 13:46:08 -04:00
CTestTestCostSerial
CTestTestCrash
CTestTestCycle
CTestTestDepends
CTestTestEmptyBinaryDirectory
CTestTestFailure
CTestTestFdSetSize
CTestTestLabelRegExp
CTestTestLaunchers Tests: Add additional launcher tests 2017-01-10 13:48:59 -05:00
CTestTestMissingDependsExe
CTestTestParallel
CTestTestResourceLock
CTestTestRunScript
CTestTestScheduler
CTestTestSerialInDepends
CTestTestSerialOrder
CTestTestSkipReturnCode
CTestTestStopTime Tests: make tests pass with SOURCE_DATE_EPOCH set 2017-01-30 09:25:44 -05:00
CTestTestSubdir
CTestTestTimeout
CTestTestUpload
CTestTestVerboseOutput
CTestTestZeroTimeout
Cuda CUDA: Visual Studio now properly delays device linking 2017-04-26 11:41:22 -04:00
CudaOnly VS: Improve workaround for CUDA -Xcompiler placement bug 2017-06-21 14:24:11 -04:00
CustComDepend
CustomCommand add_custom_{command,target}: Add COMMAND_EXPAND_LISTS option 2017-01-13 20:02:16 -06:00
CustomCommandByproducts Tests: Fix CustomCommandByproducts regex for phony rules 2017-05-31 11:48:02 -04:00
CustomCommandWorkingDirectory Tests: use BYPRODUCTS in the CustomCommandWorkingDirectory test 2017-04-21 08:57:40 -04:00
CxxDialect
CxxOnly
CxxSubdirC
DelphiCoverage
Dependency
DoubleProject
EmptyDepends
EmptyLibrary
EmptyProperty
Environment
ExportImport Tests: Make function name not match SONAME 2017-05-18 10:26:09 -04:00
ExternalOBJ
ExternalProject ExternalProject: only append COMMAND if actually adding a command 2017-02-27 11:33:31 -05:00
ExternalProjectLocal
ExternalProjectSourceSubdir
ExternalProjectSubdir
ExternalProjectUpdate
FindBoost
FindBZip2
FindDoxygen Improve Doxygen support 2017-05-24 10:15:45 +07:00
FindGSL
FindGTest Tests: Remove unnecessary setting of CMAKE_MODULE_PATH 2017-05-16 08:05:32 +10:00
FindGTK2
FindICU
FindJsonCpp
FindLibRHash
FindLibUV
FindLTTngUST
FindMatlab
FindModulesExecuteAll Tests: Fix FindModulesExecuteAll when KDE4 is installed 2017-04-21 10:11:10 -04:00
FindMPI TestFindOpenMP,MPI: Disable default languages 2017-05-08 21:43:01 +02:00
FindOpenCL
FindOpenGL
FindOpenMP TestFindOpenMP,MPI: Disable default languages 2017-05-08 21:43:01 +02:00
FindOpenSSL
FindPackageModeMakefileTest
FindPackageTest
FindPNG
FindProtobuf FindProtobuf: Rename imported targets to match upstream names 2017-05-22 10:51:55 -04:00
FindThreads
FindTIFF Tests: Remove unnecessary setting of CMAKE_MODULE_PATH 2017-05-16 08:05:32 +10:00
FindVulkan
FindXalanC Tests: Remove unnecessary setting of CMAKE_MODULE_PATH 2017-05-16 08:05:32 +10:00
FindXercesC Tests: Remove unnecessary setting of CMAKE_MODULE_PATH 2017-05-16 08:05:32 +10:00
ForceInclude
Fortran
FortranC
FortranModules
FortranOnly
Framework Apple: Add support for static frameworks 2017-01-31 08:59:15 -05:00
FunctionTest
GeneratorExpression Genex: Allow TARGET_OBJECTS to be used everywhere 2017-04-18 11:36:09 -04:00
GhsMulti
GhsMultiDuplicateSourceFilenames
GoogleTest GoogleTest: Add support for disabled tests 2017-06-05 10:11:08 -04:00
IncludeDirectories
InterfaceLibrary
InterfaceLinkLibraries
iOSNavApp
IPO
JacocoCoverage
Java
JavaExportImport Tests: Test namespaces with exported JARs 2017-04-21 10:51:09 -04:00
JavaJavah
JavascriptCoverage
JCTest
Jump
LibName
LinkDirectory
LinkFlags
LinkLanguage
LinkLine
LinkLineOrder
LinkStatic
LoadCommand
LoadCommandOneConfig
MacroTest
MacRuntimePath
MakeClean
MathTest
MFC
MissingInstall
MissingSourceFile
Module CompileFeatures: Makes tests work with meta-feature only 2017-05-29 13:51:45 -04:00
ModuleDefinition Support WINDOWS_EXPORT_ALL_SYMBOLS with .def files 2017-03-21 10:02:34 -04:00
MSManifest
MumpsCoverage
NewlineArgs
ObjC++
ObjectLibrary Drop Visual Studio 7 .NET 2003 generator 2017-04-19 15:28:05 -04:00
OutDir
OutOfBinary
OutOfSource
PDBDirectoryAndName
PerConfig
Plugin Tests: Compile entire Plugin test with the same language standard 2017-05-26 13:26:39 -04:00
Policy0002
PolicyScope
PositionIndependentTargets clang-format.bash: Use Git attributes to mark files for formatting 2017-02-22 16:59:26 -05:00
PrecompiledHeader
PreOrder
Preprocess Drop Visual Studio 7 .NET 2003 generator 2017-04-19 15:28:05 -04:00
Properties
PythonCoverage
Qt4And5Automoc
Qt4Deploy
Qt4Targets
QtAutogen Tests: Fix Qt5Autogen test on Xcode 2017-05-30 10:09:37 -04:00
QtAutomocNoQt
QtAutoUicInterface Autogen: Test adaptions 2017-05-26 15:27:17 +02:00
ReturnTest
RunCMake IPO: Consider support for each language separately 2017-06-14 10:36:57 -04:00
RuntimePath
SameName
SBCS
Server Tests/Server: import print_function from the future 2017-05-10 09:42:31 -04:00
SetLang
Simple
SimpleCOnly
SimpleExclude
SimpleInstall Tests: Activate InstallRequiredSystemLibraries OpenMP libs 2017-03-24 10:40:58 -04:00
SimpleInstallS2
SourceFileProperty
SourceGroups source_group: Restore TREE support for relative paths 2017-05-17 09:04:02 -04:00
SourcesProperty
StagingPrefix
StringFileTest
SubDir
SubDirSpaces
SubProject
SwiftMix Swift: Simplify mixed test case to make it version agnostic 2017-03-29 15:36:05 +02:00
SwiftOnly
SwigTest
SystemInformation
TargetName
TestDriver
Testing
TestsWorkingDirectory
TryCompile
Tutorial
Unset
VariableUnusedViaSet
VariableUnusedViaUnset
VariableUsage
Visibility
VSExcludeFromDefaultBuild
VSExternalInclude
VSGNUFortran
VSMASM
VSMidl
VSNASM VS: Add support for ASM_NASM language 2017-02-07 13:20:52 -05:00
VSNsightTegra
VSProjectInSubdir
VSResource Tests: Fix VSResource test on MinGW with Ninja and a space in the path 2017-05-30 15:30:40 -04:00
VSResourceNinjaForceRSP
VSWindowsFormsResx
VSWinStorePhone
VSXaml
WarnUnusedCliUnused
Wrapping Tests: Ensure Solaris linker never sees empty contents 2017-05-18 10:32:03 +10:00
X11
XCTest XCTest: Add support for static frameworks 2017-04-25 09:56:34 -04:00
.NoDartCoverage
bootstrap.bat.in
BootstrapTest.cmake
CheckFortran.cmake Tests: Pass generator platform and toolset into check for Fortran 2017-03-08 09:12:09 -05:00
CMakeBuildTest.cmake.in
CMakeCopyright.cmake
CMakeInstall.cmake
CMakeLists.txt Merge topic 'add-common-record-features-macros' 2017-06-01 13:40:47 -04:00
CTestUpdateBZR.cmake.in
CTestUpdateCommon.cmake
CTestUpdateCVS.cmake.in
CTestUpdateGIT.cmake.in
CTestUpdateGIT.sh.in
CTestUpdateHG.cmake.in
CTestUpdateP4.cmake.in
CTestUpdateSVN.cmake.in
EnforceConfig.cmake.in
README
test_clean.cmake.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.