12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- This directory contains tests that run CMake to configure a project
- but do not actually build anything. To add a test:
- 1. Add a subdirectory named for the test, say ``<Test>/``.
- 2. In ``./CMakeLists.txt`` call ``add_RunCMake_test`` and pass the
- test directory name ``<Test>``.
- 3. Create script ``<Test>/RunCMakeTest.cmake`` in the directory containing::
- include(RunCMake)
- run_cmake(SubTest1)
- ...
- run_cmake(SubTestN)
- where ``SubTest1`` through ``SubTestN`` are sub-test names each
- corresponding to an independent CMake run and project configuration.
- One may also add calls of the form::
- run_cmake_command(SubTestI ${CMAKE_COMMAND} ...)
- to fully customize the test case command-line.
- Alternatively, if the test is to cover running ``ctest -S`` then use::
- include(RunCTest)
- run_ctest(SubTest1)
- ...
- run_ctest(SubTestN)
- and create ``test.cmake.in``, ``CTestConfig.cmake.in``, and
- ``CMakeLists.txt.in`` files to be configured for each case.
- 4. Create file ``<Test>/CMakeLists.txt`` in the directory containing::
- cmake_minimum_required(...)
- project(${RunCMake_TEST} NONE) # or languages needed
- include(${RunCMake_TEST}.cmake)
- where ``${RunCMake_TEST}`` is literal. A value for ``RunCMake_TEST``
- will be passed to CMake by the ``run_cmake`` macro when running each
- sub-test.
- 5. Create a ``<Test>/<SubTest>.cmake`` file for each sub-test named
- above containing the actual test code. Optionally create files
- containing expected test results:
- ``<SubTest>-result.txt``
- Regex matching expected process result, if not ``0``
- ``<SubTest>-stdout.txt``
- Regex matching expected stdout content
- ``<SubTest>-stderr.txt``
- Regex matching expected stderr content, if not ``^$``
- ``<SubTest>-check.cmake``
- Custom result check.
- Note that trailing newlines will be stripped from actual and expected
- test output before matching against the stdout and stderr expressions.
- The code in ``<SubTest>-check.cmake`` may use variables
- ``RunCMake_TEST_SOURCE_DIR``
- Top of test source tree
- ``RunCMake_TEST_BINARY_DIR``
- Top of test binary tree
- and an failure must store a message in ``RunCMake_TEST_FAILED``.
|