ECMAddTestsΒΆ

Convenience functions for adding tests.

ecm_add_tests(<sources>
    LINK_LIBRARIES <library> [<library> [...]]
    [NAME_PREFIX <prefix>]
    [GUI]
    [TARGET_NAMES_VAR <target_names_var>]
    [TEST_NAMES_VAR <test_names_var>]
    [WORKING_DIRECTORY <dir>] #  Since 5.111
)

A convenience function for adding multiple tests, each consisting of a single source file. For each file in <sources>, an executable target will be created (the name of which will be the basename of the source file). This will be linked against the libraries given with LINK_LIBRARIES. Each executable will be added as a test with the same name.

If NAME_PREFIX is given, this prefix will be prepended to the test names, but not the target names. As a result, it will not prevent clashes between tests with the same name in different parts of the project, but it can be used to give an indication of where to look for a failing test.

If the flag GUI is passed the test binaries will be GUI executables, otherwise the resulting binaries will be console applications (regardless of the value of CMAKE_WIN32_EXECUTABLE or CMAKE_MACOSX_BUNDLE). Be aware that this changes the executable entry point on Windows (although some frameworks, such as Qt, abstract this difference away).

The tests will be build with -DQT_FORCE_ASSERTS to enable assertions in the test executable even for release builds.

The TARGET_NAMES_VAR and TEST_NAMES_VAR arguments, if given, should specify a variable name to receive the list of generated target and test names, respectively. This makes it convenient to apply properties to them as a whole, for example, using set_target_properties() or set_tests_properties().

The generated target executables will have the effects of ecm_mark_as_test() (from the ECMMarkAsTest module) applied to it.

WORKING_DIRECTORY sets the test property WORKING_DIRECTORY in which to execute the test. By default the test will be run in ${CMAKE_CURRENT_BINARY_DIR}. The working directory can be specified using generator expressions. Since 5.111.

ecm_add_test(
    <sources>
    LINK_LIBRARIES <library> [<library> [...]]
    [TEST_NAME <name>]
    [NAME_PREFIX <prefix>]
    [GUI]
    [WORKING_DIRECTORY <dir>] #  Since 5.111
)

This is a single-test form of ecm_add_tests that allows multiple source files to be used for a single test. If using multiple source files, TEST_NAME must be given; this will be used for both the target and test names (and, as with ecm_add_tests(), the NAME_PREFIX argument will be prepended to the test name).

WORKING_DIRECTORY sets the test property WORKING_DIRECTORY in which to execute the test. By default the test will be run in ${CMAKE_CURRENT_BINARY_DIR}. The working directory can be specified using generator expressions. Since 5.111.

Since pre-1.0.0.