| 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. |