diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake index 699b4a52f6475768693618ed37939303ae9a6806..733de255e4734ef975f40c60bb2ed870a9561b84 100644 --- a/scripts/cmake/test/AddTest.cmake +++ b/scripts/cmake/test/AddTest.cmake @@ -12,6 +12,9 @@ # WRAPPER <time|memcheck|callgrind> # optional # WRAPPER_ARGS <arguments> # optional # TESTER <diff|vtkdiff|memcheck> # optional +# REQUIREMENTS # optional simple boolean expression which has to be true to +# enable the test, e.g. +# OGS_USE_PETSC AND (OGS_USE_EIGEN OR OGS_USE_LIS) # ) # # Conditional arguments: @@ -33,7 +36,7 @@ function (AddTest) # parse arguments set(options NONE) set(oneValueArgs EXECUTABLE PATH NAME WRAPPER TESTER ABSTOL RELTOL) - set(multiValueArgs EXECUTABLE_ARGS DATA DIFF_DATA WRAPPER_ARGS) + set(multiValueArgs EXECUTABLE_ARGS DATA DIFF_DATA WRAPPER_ARGS REQUIREMENTS) cmake_parse_arguments(AddTest "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) @@ -53,6 +56,9 @@ function (AddTest) if (NOT AddTest_RELTOL) set (AddTest_RELTOL 1e-16) endif() + if (NOT AddTest_REQUIREMENTS) + set (AddTest_REQUIREMENTS TRUE) + endif() if("${AddTest_EXECUTABLE}" STREQUAL "ogs") set(AddTest_EXECUTABLE_ARGS -o ${AddTest_BINARY_PATH_NATIVE} ${AddTest_EXECUTABLE_ARGS}) @@ -60,6 +66,12 @@ function (AddTest) # --- Implement wrappers --- # check requirements, disable if not met + if(${AddTest_REQUIREMENTS}) + # message(STATUS "Enabling test ${AddTest_NAME}.") + else() + message(STATUS "Requirement ${AddTest_REQUIREMENTS} not met! Disabling test ${AddTest_NAME}.") + return() + endif() if(AddTest_WRAPPER STREQUAL "time" AND NOT TIME_TOOL_PATH) return() endif()