mirror of
https://github.com/reactos/CMake.git
synced 2024-12-05 10:16:50 +00:00
42a81e7119
The CMakeOnly directory added by commit9a20abf0
(Add infrastructure for CMake-only tests, 2012-01-11) was sufficient only for tests that always run CMake to successfully configure a project. Later commiteeaaffcb
(find_package: Test error and warning messages in failure cases, 2012-02-28) added a sample test that covers failure cases. Generalize the above to create new "RunCMake" test infrastructure that can run CMake multiple times for a single project with different variations and check for expected result/stdout/stderr. Allow for both successful and failing CMake project configuration cases. This will be useful to test error messages and failure behavior.
40 lines
1.9 KiB
Plaintext
40 lines
1.9 KiB
Plaintext
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.
|