summaryrefslogtreecommitdiffstats
path: root/compiler-rt/test/CMakeLists.txt
diff options
context:
space:
mode:
authorFrancis Ricci <francisjricci@gmail.com>2017-06-27 15:22:56 +0000
committerFrancis Ricci <francisjricci@gmail.com>2017-06-27 15:22:56 +0000
commit80296ee7f376366c410b2140bce459eb9d5169d7 (patch)
treeba8b5b60509ac938f86a8ca1731df126297070c0 /compiler-rt/test/CMakeLists.txt
parent13759a7ed62a362bc3d7455da8b96279e545cdc6 (diff)
downloadbcm5719-llvm-80296ee7f376366c410b2140bce459eb9d5169d7.tar.gz
bcm5719-llvm-80296ee7f376366c410b2140bce459eb9d5169d7.zip
Only test sanitizers that are built when COMPILER_RT_SANITIZERS_TO_BUILD is used
Summary: This allows check-all to be used when only a subset of the sanitizers are built. Reviewers: beanz, compnerd Subscribers: llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D34644 llvm-svn: 306415
Diffstat (limited to 'compiler-rt/test/CMakeLists.txt')
-rw-r--r--compiler-rt/test/CMakeLists.txt75
1 files changed, 33 insertions, 42 deletions
diff --git a/compiler-rt/test/CMakeLists.txt b/compiler-rt/test/CMakeLists.txt
index 7685fb3f426..8ef66c3c0bb 100644
--- a/compiler-rt/test/CMakeLists.txt
+++ b/compiler-rt/test/CMakeLists.txt
@@ -35,6 +35,21 @@ if(NOT ANDROID)
endif()
endif()
+function(compiler_rt_test_runtime runtime)
+ string(TOUPPER ${runtime} runtime_uppercase)
+ if(COMPILER_RT_HAS_${runtime_uppercase})
+ add_subdirectory(${runtime})
+ endif()
+endfunction()
+
+function(compiler_rt_test_sanitizer sanitizer)
+ string(TOLOWER ${sanitizer} sanitizer_lowercase)
+ list(FIND COMPILER_RT_SANITIZERS_TO_BUILD ${sanitizer_lowercase} result)
+ if(NOT ${result} EQUAL -1)
+ compiler_rt_test_runtime(${sanitizer})
+ endif()
+endfunction()
+
# Run sanitizer tests only if we're sure that clang would produce
# working binaries.
if(COMPILER_RT_CAN_EXECUTE_TESTS)
@@ -42,49 +57,25 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS)
add_subdirectory(builtins)
endif()
if(COMPILER_RT_BUILD_SANITIZERS)
- if(COMPILER_RT_HAS_ASAN)
- add_subdirectory(asan)
- endif()
- if(COMPILER_RT_HAS_DFSAN)
- add_subdirectory(dfsan)
- endif()
- if (COMPILER_RT_HAS_INTERCEPTION)
- add_subdirectory(interception)
- endif()
- if(COMPILER_RT_HAS_LSAN)
- add_subdirectory(lsan)
- endif()
- if(COMPILER_RT_HAS_MSAN)
- add_subdirectory(msan)
- endif()
- if(COMPILER_RT_HAS_PROFILE)
- add_subdirectory(profile)
- endif()
- if(COMPILER_RT_HAS_SANITIZER_COMMON)
- add_subdirectory(sanitizer_common)
- endif()
- if(COMPILER_RT_HAS_TSAN)
- add_subdirectory(tsan)
- endif()
- if(COMPILER_RT_HAS_UBSAN)
- add_subdirectory(ubsan)
- endif()
- # CFI tests require diagnostic mode, which is implemented in UBSan.
- if(COMPILER_RT_HAS_UBSAN)
- add_subdirectory(cfi)
- endif()
- if(COMPILER_RT_HAS_SAFESTACK)
- add_subdirectory(safestack)
- endif()
- if(COMPILER_RT_HAS_ESAN)
- add_subdirectory(esan)
- endif()
- if(COMPILER_RT_HAS_SCUDO)
- add_subdirectory(scudo)
- endif()
+ compiler_rt_test_runtime(interception)
+
+ compiler_rt_test_runtime(lsan)
+ compiler_rt_test_runtime(ubsan)
+ compiler_rt_test_runtime(sanitizer_common)
+
+ compiler_rt_test_sanitizer(asan)
+ compiler_rt_test_sanitizer(dfsan)
+ compiler_rt_test_sanitizer(msan)
+ compiler_rt_test_sanitizer(tsan)
+ compiler_rt_test_sanitizer(safestack)
+ compiler_rt_test_sanitizer(cfi)
+ compiler_rt_test_sanitizer(esan)
+ compiler_rt_test_sanitizer(scudo)
+
+ compiler_rt_test_runtime(profile)
endif()
- if(COMPILER_RT_BUILD_XRAY AND COMPILER_RT_HAS_XRAY)
- add_subdirectory(xray)
+ if(COMPILER_RT_BUILD_XRAY)
+ compiler_rt_test_runtime(xray)
endif()
endif()
OpenPOWER on IntegriCloud