Skip to content

Commit d4b28fb

Browse files
authored
[compiler-rt] Cleanup use of COMPILER_RT_INCLUDE_TESTS (llvm#98246)
1. Move checks into parent test/CMakeLists.txt 2. COMPILER_RT_INCLUDE_TESTS disable both lit and gtests. Before it was very inconsistent between sanitizers.
1 parent 467f969 commit d4b28fb

File tree

14 files changed

+103
-125
lines changed

14 files changed

+103
-125
lines changed

compiler-rt/cmake/base-config-ix.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ if (LLVM_TREE_AVAILABLE)
4343
get_clang_resource_dir(COMPILER_RT_OUTPUT_DIR PREFIX ${LLVM_LIBRARY_OUTPUT_INTDIR}/..)
4444
set(COMPILER_RT_EXEC_OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
4545
get_clang_resource_dir(COMPILER_RT_INSTALL_PATH)
46-
option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests."
46+
option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt tests."
4747
${LLVM_INCLUDE_TESTS})
4848
option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered"
4949
${LLVM_ENABLE_WERROR})
@@ -70,7 +70,7 @@ else()
7070
"Path where built compiler-rt executables should be stored.")
7171
set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
7272
"Prefix for directories where built compiler-rt artifacts should be installed.")
73-
option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
73+
option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt tests." OFF)
7474
option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
7575
# Use a host compiler to compile/link tests.
7676
set(COMPILER_RT_TEST_COMPILER ${CMAKE_C_COMPILER} CACHE PATH "Compiler to use for testing")

compiler-rt/test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ umbrella_lit_testsuite_begin(check-compiler-rt)
4848

4949
function(compiler_rt_test_runtime runtime)
5050
string(TOUPPER ${runtime} runtime_uppercase)
51-
if(COMPILER_RT_HAS_${runtime_uppercase})
51+
if(COMPILER_RT_HAS_${runtime_uppercase} AND COMPILER_RT_INCLUDE_TESTS)
5252
if (${runtime} STREQUAL cfi AND NOT COMPILER_RT_HAS_UBSAN)
5353
# CFI tests require diagnostic mode, which is implemented in UBSan.
5454
elseif (${runtime} STREQUAL scudo_standalone)

compiler-rt/test/asan/CMakeLists.txt

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -130,39 +130,37 @@ if(APPLE)
130130
endif()
131131

132132
# Add unit tests.
133-
if(COMPILER_RT_INCLUDE_TESTS)
134-
foreach(arch ${ASAN_TEST_ARCH})
135-
string(TOUPPER ${arch} ARCH_UPPER_CASE)
136-
set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
137-
set(CONFIG_NAME_DYNAMIC ${ARCH_UPPER_CASE}${OS_NAME}DynamicConfig)
133+
foreach(arch ${ASAN_TEST_ARCH})
134+
string(TOUPPER ${arch} ARCH_UPPER_CASE)
135+
set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
136+
set(CONFIG_NAME_DYNAMIC ${ARCH_UPPER_CASE}${OS_NAME}DynamicConfig)
138137

139-
if(NOT MINGW)
140-
# MinGW environments don't provide a statically linked CRT, so only the
141-
# dynamic asan test configuration can be expected to work.
142-
set(ASAN_TEST_DYNAMIC False)
143-
configure_lit_site_cfg(
144-
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
145-
${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME}/lit.site.cfg.py)
138+
if(NOT MINGW)
139+
# MinGW environments don't provide a statically linked CRT, so only the
140+
# dynamic asan test configuration can be expected to work.
141+
set(ASAN_TEST_DYNAMIC False)
142+
configure_lit_site_cfg(
143+
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
144+
${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME}/lit.site.cfg.py)
145+
endif()
146+
if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME)
147+
set(ASAN_TEST_DYNAMIC True)
148+
configure_lit_site_cfg(
149+
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
150+
${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME_DYNAMIC}/lit.site.cfg.py)
151+
endif()
152+
# FIXME: support unit test in the android test runner
153+
if (NOT ANDROID)
154+
if (NOT MINGW)
155+
list(APPEND ASAN_TEST_DEPS AsanUnitTests)
156+
list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME})
146157
endif()
147158
if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME)
148-
set(ASAN_TEST_DYNAMIC True)
149-
configure_lit_site_cfg(
150-
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
151-
${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME_DYNAMIC}/lit.site.cfg.py)
159+
list(APPEND ASAN_DYNAMIC_TEST_DEPS AsanDynamicUnitTests)
160+
list(APPEND ASAN_DYNAMIC_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME_DYNAMIC})
152161
endif()
153-
# FIXME: support unit test in the android test runner
154-
if (NOT ANDROID)
155-
if (NOT MINGW)
156-
list(APPEND ASAN_TEST_DEPS AsanUnitTests)
157-
list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME})
158-
endif()
159-
if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME)
160-
list(APPEND ASAN_DYNAMIC_TEST_DEPS AsanDynamicUnitTests)
161-
list(APPEND ASAN_DYNAMIC_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME_DYNAMIC})
162-
endif()
163-
endif()
164-
endforeach()
165-
endif()
162+
endif()
163+
endforeach()
166164

167165
if (SHADOW_MAPPING_UNRELIABLE)
168166
set(exclude_from_check_all.g "EXCLUDE_FROM_CHECK_ALL")

compiler-rt/test/ctx_profile/CMakeLists.txt

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,15 @@ foreach(arch ${CTX_PROFILE_SUPPORTED_ARCH})
2525
endforeach()
2626

2727
# Add unit tests.
28-
if(COMPILER_RT_INCLUDE_TESTS)
29-
foreach(arch ${CTX_PROFILE_SUPPORTED_ARCH})
30-
string(TOUPPER ${arch} ARCH_UPPER_CASE)
31-
set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
32-
configure_lit_site_cfg(
33-
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
34-
${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME}/lit.site.cfg.py)
35-
list(APPEND CTX_PROFILE_TEST_DEPS CtxProfileUnitTests)
36-
list(APPEND CTX_PROFILE_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME})
37-
endforeach()
38-
endif()
28+
foreach(arch ${CTX_PROFILE_SUPPORTED_ARCH})
29+
string(TOUPPER ${arch} ARCH_UPPER_CASE)
30+
set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
31+
configure_lit_site_cfg(
32+
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
33+
${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME}/lit.site.cfg.py)
34+
list(APPEND CTX_PROFILE_TEST_DEPS CtxProfileUnitTests)
35+
list(APPEND CTX_PROFILE_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME})
36+
endforeach()
3937

4038
add_lit_testsuite(check-ctx_profile "Running the Contextual Profiler tests"
4139
${CTX_PROFILE_TESTSUITES}

compiler-rt/test/fuzzer/CMakeLists.txt

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,16 @@ if (APPLE)
2222
darwin_filter_host_archs(FUZZER_SUPPORTED_ARCH FUZZER_TEST_ARCH)
2323
endif()
2424

25-
if(COMPILER_RT_INCLUDE_TESTS)
26-
list(APPEND LIBFUZZER_TEST_DEPS FuzzerUnitTests)
27-
list(APPEND LIBFUZZER_TEST_DEPS FuzzedDataProviderUnitTests)
28-
endif()
25+
list(APPEND LIBFUZZER_TEST_DEPS FuzzerUnitTests)
26+
list(APPEND LIBFUZZER_TEST_DEPS FuzzedDataProviderUnitTests)
2927

3028
set(LIBFUZZER_TESTSUITES)
3129

32-
if(COMPILER_RT_INCLUDE_TESTS)
33-
# libFuzzer unit tests.
34-
configure_lit_site_cfg(
35-
${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.py.in
36-
${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg.py)
37-
list(APPEND LIBFUZZER_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/unit)
38-
endif()
30+
# libFuzzer unit tests.
31+
configure_lit_site_cfg(
32+
${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.py.in
33+
${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg.py)
34+
list(APPEND LIBFUZZER_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/unit)
3935

4036
macro(test_fuzzer stdlib)
4137
cmake_parse_arguments(TEST "" "" "DEPS" ${ARGN})

compiler-rt/test/gwp_asan/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ set(GWP_ASAN_TEST_DEPS
1414
# exported libc++ from the Android NDK is x86-64, even though it's part of the
1515
# ARM[64] toolchain... See similar measures for ASan and sanitizer-common that
1616
# disable unit tests for Android.
17-
if (COMPILER_RT_INCLUDE_TESTS AND NOT ANDROID)
17+
if (NOT ANDROID)
1818
list(APPEND GWP_ASAN_TEST_DEPS GwpAsanUnitTests)
1919
configure_lit_site_cfg(
2020
${CMAKE_CURRENT_SOURCE_DIR}/unit/lit.site.cfg.py.in
2121
${CMAKE_CURRENT_BINARY_DIR}/unit/lit.site.cfg.py)
2222
list(APPEND GWP_ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/unit)
2323
endif()
2424

25-
if (COMPILER_RT_INCLUDE_TESTS AND COMPILER_RT_HAS_SCUDO_STANDALONE)
25+
if (COMPILER_RT_HAS_SCUDO_STANDALONE)
2626
foreach(arch ${GWP_ASAN_SUPPORTED_ARCH})
2727
set(GWP_ASAN_TEST_TARGET_ARCH ${arch})
2828
string(TOLOWER "-${arch}" GWP_ASAN_TEST_CONFIG_SUFFIX)

compiler-rt/test/interception/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set(INTERCEPTION_TESTSUITES)
33

44
# Unit tests. There are currently no unit tests capable to running on Apple or
55
# Android targets.
6-
if(COMPILER_RT_INCLUDE_TESTS AND NOT ANDROID AND NOT APPLE)
6+
if(NOT ANDROID AND NOT APPLE)
77
configure_lit_site_cfg(
88
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
99
${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py)

compiler-rt/test/memprof/CMakeLists.txt

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,15 @@ foreach(arch ${MEMPROF_TEST_ARCH})
4444
endforeach()
4545

4646
# Add unit tests.
47-
if(COMPILER_RT_INCLUDE_TESTS)
48-
foreach(arch ${MEMPROF_TEST_ARCH})
49-
string(TOUPPER ${arch} ARCH_UPPER_CASE)
50-
set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
51-
configure_lit_site_cfg(
52-
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
53-
${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME}/lit.site.cfg.py)
54-
list(APPEND MEMPROF_TEST_DEPS MemProfUnitTests)
55-
list(APPEND MEMPROF_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME})
56-
endforeach()
57-
endif()
47+
foreach(arch ${MEMPROF_TEST_ARCH})
48+
string(TOUPPER ${arch} ARCH_UPPER_CASE)
49+
set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
50+
configure_lit_site_cfg(
51+
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
52+
${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME}/lit.site.cfg.py)
53+
list(APPEND MEMPROF_TEST_DEPS MemProfUnitTests)
54+
list(APPEND MEMPROF_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME})
55+
endforeach()
5856

5957
add_lit_testsuite(check-memprof "Running the MemProfiler tests"
6058
${MEMPROF_TESTSUITES}

compiler-rt/test/msan/CMakeLists.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,7 @@ foreach(arch ${MSAN_TEST_ARCH})
4141
endif()
4242
endforeach()
4343

44-
if(COMPILER_RT_INCLUDE_TESTS AND
45-
COMPILER_RT_LIBCXX_PATH AND
46-
COMPILER_RT_LIBCXXABI_PATH)
44+
if(COMPILER_RT_LIBCXX_PATH AND COMPILER_RT_LIBCXXABI_PATH)
4745
configure_lit_site_cfg(
4846
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
4947
${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py)

compiler-rt/test/nsan/CMakeLists.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ set(NSAN_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
33
set(NSAN_TESTSUITES)
44
set(NSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS} nsan)
55

6-
if(COMPILER_RT_INCLUDE_TESTS AND
7-
COMPILER_RT_LIBCXX_PATH AND
8-
COMPILER_RT_LIBCXXABI_PATH)
6+
if(COMPILER_RT_LIBCXX_PATH AND COMPILER_RT_LIBCXXABI_PATH)
97
configure_lit_site_cfg(
108
${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
119
${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py)

0 commit comments

Comments
 (0)