]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Tell CTest about skipped tests
authorJoel Rosdahl <joel@rosdahl.net>
Fri, 12 Jun 2020 18:14:53 +0000 (20:14 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Sun, 14 Jun 2020 08:57:18 +0000 (10:57 +0200)
Return code 125 is chosen for familiarity with what “git bisect” uses.

test/CMakeLists.txt
test/run

index eba49117a82ab12f4182f37b72940797be737dbe..0df3ccb41d3a38405d4712f2077e3f99002a3072 100644 (file)
@@ -2,7 +2,16 @@ function(addtest name)
   add_test(NAME "producttest.${name}"
     COMMAND test/run ${name}
     WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
-  set_tests_properties("producttest.${name}" PROPERTIES ENVIRONMENT CCACHE=${CMAKE_BINARY_DIR}/ccache)
+  set(
+    environment
+    CCACHE=${CMAKE_BINARY_DIR}/ccache
+    EXIT_IF_SKIPPED=true
+  )
+  set_tests_properties(
+    "producttest.${name}"
+    PROPERTIES
+    ENVIRONMENT "${environment}"
+    SKIP_RETURN_CODE 125)
 endfunction()
 
 addtest(base)
index 1ed2343e407e4594f50661e7c9b9a8f17bef666c..23254b6a872432a8eebfe7a4919b1bb9cbb46188 100755 (executable)
--- a/test/run
+++ b/test/run
@@ -286,6 +286,9 @@ run_suite() {
         rm -rf $ABS_TESTDIR/probe
         if [ -n "$skip_reason" ]; then
             echo "Skipped test suite $suite_name [$skip_reason]"
+            if [ -n "$EXIT_IF_SKIPPED" ]; then
+                exit 125
+            fi
             return
         fi
     fi