How to build the test widget using app-templates/cmake-apps-module

Defining CMake targets

Now that the test tree has been created, in each directory you have to create a CMakeLists.txt file to hold the CMake's target definition. For each target you need to specify a LABELS depending on the purpose of the files for each directory. There are more explanations about using the cmake-apps-module (the former app-templates submodule) in the documentation website.

Here is a cheat sheet to map the LABELS target for each classic test tree directory:

  • etc uses the label TEST-CONFIG
  • fixtures uses the label TEST-DATA
  • tests uses the label TEST-DATA

i.e the etc folder:

PROJECT_TARGET_ADD(test-config)

    file(GLOB CONF_FILES "*.json")

    add_input_files("${CONF_FILES}")

    SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
        LABELS "TEST-CONFIG"
        OUTPUT_NAME ${TARGET_NAME}
    )

i.e the fixtures folder:

PROJECT_TARGET_ADD(test-fixtures)

    # Change the glob pattern to match your file's type
    file(GLOB DATA_FILES "*.sh" "*.data")

    add_input_files("${DATA_FILES}")

    SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
        LABELS "TEST-DATA"
        OUTPUT_NAME ${TARGET_NAME}
    )

i.e the tests folder:

PROJECT_TARGET_ADD(tests)

    file(GLOB CONF_FILES "*.lua")

    add_input_files("${CONF_FILES}")

    SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
        LABELS "TEST-DATA"
        OUTPUT_NAME ${TARGET_NAME}
    )

CAUTION: make sure that you have CMakeLists files that include your subdirectories target (cf: previous chapter Write the tests).

Build the test widget

By default, the test widget is not built, you have to specify that you want to build it or use a special target.

Building at the same time than classic widget

Specify the option BUILD_TEST_WGT=TRUE when you configure your build.

ie:

cd build
cmake -DBUILD_TEST_WIDGET=TRUE ..
make
make widget

Building separately only the test widget

Just use the target test_widget after a classic build.

ie:

cd build
cmake ..
make
make test_widget