aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ECMAddTests/multi_tests/CMakeLists.txt13
-rw-r--r--tests/test_helpers.cmake28
2 files changed, 41 insertions, 0 deletions
diff --git a/tests/ECMAddTests/multi_tests/CMakeLists.txt b/tests/ECMAddTests/multi_tests/CMakeLists.txt
index ca434773..0133c7d6 100644
--- a/tests/ECMAddTests/multi_tests/CMakeLists.txt
+++ b/tests/ECMAddTests/multi_tests/CMakeLists.txt
@@ -10,6 +10,7 @@ target_include_directories(testhelper PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..")
enable_testing()
include(ECMAddTests)
+include(../../test_helpers.cmake)
# clean up to avoid false-positives from check_files.cmake
file(REMOVE
@@ -24,12 +25,18 @@ file(REMOVE
"${CMAKE_CURRENT_BINARY_DIR}/test9.txt"
)
+set(exp_target_names "test1;test2;test3")
+set(exp_test_names "test1;test2;test3")
ecm_add_tests(
test1.cpp
test2.cpp
test3.cpp
LINK_LIBRARIES testhelper
+ TARGET_NAMES_VAR target_names
+ TEST_NAMES_VAR test_names
)
+assert_vars_setequal(target_names exp_target_names)
+assert_vars_setequal(test_names exp_test_names)
# check targets exist
get_property(_dummy TARGET test1 PROPERTY TYPE)
get_property(_dummy TARGET test2 PROPERTY TYPE)
@@ -112,13 +119,19 @@ if (NOT _is_bundle)
endif()
+set(exp_target_names "test8;test9")
+set(exp_test_names "p_test8;p_test9")
ecm_add_tests(
test8.cpp
test9.cpp
LINK_LIBRARIES testhelper
NAME_PREFIX p_
GUI
+ TARGET_NAMES_VAR target_names
+ TEST_NAMES_VAR test_names
)
+assert_vars_setequal(target_names exp_target_names)
+assert_vars_setequal(test_names exp_test_names)
get_property(_dummy TARGET test8 PROPERTY TYPE)
get_property(_dummy TARGET test9 PROPERTY TYPE)
get_property(_dummy TEST p_test8 PROPERTY TIMEOUT)
diff --git a/tests/test_helpers.cmake b/tests/test_helpers.cmake
index 73be343e..d9314d25 100644
--- a/tests/test_helpers.cmake
+++ b/tests/test_helpers.cmake
@@ -62,3 +62,31 @@ macro(assert_var_absolute_path varname)
endif()
endmacro()
+function(assert_vars_setequal varname exp_varname)
+ if(ARGC LESS 3 OR NOT "${ARGV2}" STREQUAL "ALLOW_UNDEFINED")
+ assert_var_defined(${varname})
+ endif()
+ # need real variables
+ set(list1 "${${varname}}")
+ set(list2 "${${exp_varname}}")
+ list(LENGTH list1 list1_len)
+ list(LENGTH list2 list2_len)
+ set(same_els FALSE)
+ if(list1_len EQUAL list2_len)
+ set(same_els TRUE)
+ foreach(item ${list1})
+ list(FIND list2 "${item}" pos)
+ if(pos EQUAL "-1")
+ set(same_els FALSE)
+ break()
+ else()
+ # deal nicely with duplicates
+ list(REMOVE_AT list2 "${pos}")
+ endif()
+ endforeach()
+ endif()
+ if(NOT same_els)
+ message(SEND_ERROR "${varname} is '${${varname}}', expecting '${${exp_varname}}'.")
+ endif()
+endfunction()
+