From 4912ac8d45c2008f156653dee673c1839c99bcb7 Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Thu, 13 Aug 2020 12:44:04 +0200 Subject: [PATCH] [T] Added labels to ctests based on subdir in ProcessLib. Usage: ctest --print-labels ctest -L "Steady*|Liquid*" -E LARGE This runs all benchmarks defined in subdirs starting with Steady OR Liquid excluding LARGE benchmarks. Unfortunately AND is not supported in the labels expression yet: https://gitlab.kitware.com/cmake/cmake/-/issues/21087 --- scripts/cmake/Functions.cmake | 6 ++++++ scripts/cmake/test/AddTest.cmake | 9 +++++++-- scripts/cmake/test/OgsTest.cmake | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/scripts/cmake/Functions.cmake b/scripts/cmake/Functions.cmake index 765d12fa538..6393507f158 100644 --- a/scripts/cmake/Functions.cmake +++ b/scripts/cmake/Functions.cmake @@ -103,3 +103,9 @@ function(ogs_add_library targetName) UNITY_BUILD ${OGS_USE_UNITY_BUILDS}) endif() endfunction() + +function(current_dir_as_list baseDir outList) + file(RELATIVE_PATH REL_DIR ${PROJECT_SOURCE_DIR}/${baseDir} ${CMAKE_CURRENT_LIST_DIR}) + string(REPLACE "/" ";" DIR_LIST ${REL_DIR}) + set(${outList} ${DIR_LIST} PARENT_SCOPE) +endfunction() diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake index 1704da6ebac..e47de17eca9 100644 --- a/scripts/cmake/test/AddTest.cmake +++ b/scripts/cmake/test/AddTest.cmake @@ -259,7 +259,6 @@ Use six arguments version of AddTest with absolute and relative tolerances") -DPython3_EXECUTABLE=${Python3_EXECUTABLE} -P ${PROJECT_SOURCE_DIR}/scripts/cmake/test/AddTestWrapper.cmake ) - set_tests_properties(${TEST_NAME} PROPERTIES COST ${AddTest_RUNTIME}) if(DEFINED AddTest_DEPENDS) set_tests_properties(${TEST_NAME} PROPERTIES DEPENDS ${AddTest_DEPENDS}) endif() @@ -273,7 +272,13 @@ Use six arguments version of AddTest with absolute and relative tolerances") if(DEFINED MPI_PROCESSORS) set_tests_properties(${TEST_NAME} PROPERTIES PROCESSORS ${MPI_PROCESSORS}) endif() - set_tests_properties(${TEST_NAME} PROPERTIES DISABLED ${AddTest_DISABLED}) + + current_dir_as_list(ProcessLib DIR_LABELS) + set_tests_properties(${TEST_NAME} PROPERTIES + COST ${AddTest_RUNTIME} + DISABLED ${AddTest_DISABLED} + LABELS "${DIR_LABELS}" + ) if(TARGET ${AddTest_EXECUTABLE}) add_dependencies(ctest ${AddTest_EXECUTABLE}) diff --git a/scripts/cmake/test/OgsTest.cmake b/scripts/cmake/test/OgsTest.cmake index 43f488c1010..5f332a96757 100644 --- a/scripts/cmake/test/OgsTest.cmake +++ b/scripts/cmake/test/OgsTest.cmake @@ -51,10 +51,12 @@ function (OgsTest) # WORKING_DIRECTORY ${OgsTest_BINARY_DIR} # COMMAND ${OgsTest_WRAPPER} $<TARGET_FILE:ogs> -r ${OgsTest_SOURCE_DIR} ${OgsTest_SOURCE_DIR}/${OgsTest_NAME}) + current_dir_as_list(ProcessLib DIR_LABELS) set_tests_properties(${TEST_NAME} PROPERTIES ENVIRONMENT VTKDIFF_EXE=$<TARGET_FILE:vtkdiff> COST ${OgsTest_RUNTIME} DISABLED ${OgsTest_DISABLED} + LABELS "${DIR_LABELS}" ) if(TARGET ${OgsTest_EXECUTABLE}) -- GitLab