cmake_minimum_required(VERSION 3.8) include("${CMAKE_CURRENT_LIST_DIR}/gitlab_ci.cmake") # Read the files from the build directory. ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}") # Pick up from where the configure left off. ctest_start(APPEND) include(ProcessorCount) ProcessorCount(nproc) if (NOT "$ENV{CTEST_MAX_PARALLELISM}" STREQUAL "") if (nproc GREATER "$ENV{CTEST_MAX_PARALLELISM}") set(nproc "$ENV{CTEST_MAX_PARALLELISM}") endif () endif () set(CTEST_MEMORYCHECK_TYPE "$ENV{CTEST_MEMORYCHECK_TYPE}") set(CTEST_MEMORYCHECK_SANITIZER_OPTIONS "$ENV{CTEST_MEMORYCHECK_SANITIZER_OPTIONS}") set(lsan_suppressions "${CMAKE_CURRENT_LIST_DIR}/ctest_memcheck_$ENV{CMAKE_CONFIGURATION}.lsan.supp") if (EXISTS "${lsan_suppressions}") set(ENV{LSAN_OPTIONS} "suppressions='${lsan_suppressions}'") endif () include("${CMAKE_CURRENT_LIST_DIR}/ctest_exclusions.cmake") ctest_memcheck( PARALLEL_LEVEL "${nproc}" TEST_LOAD "${nproc}" RETURN_VALUE test_result EXCLUDE "${test_exclusions}" DEFECT_COUNT defects) ctest_submit(PARTS Test) ctest_submit(PARTS Memcheck) if (test_result) message(FATAL_ERROR "Failed to test") endif () if (defects) message(FATAL_ERROR "Found ${defects} memcheck defects") endif ()