aboutsummaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/tests/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sanitizer_common/tests/CMakeLists.txt')
-rw-r--r--lib/sanitizer_common/tests/CMakeLists.txt30
1 files changed, 27 insertions, 3 deletions
diff --git a/lib/sanitizer_common/tests/CMakeLists.txt b/lib/sanitizer_common/tests/CMakeLists.txt
index 25e57507ad14..5b66917b05b0 100644
--- a/lib/sanitizer_common/tests/CMakeLists.txt
+++ b/lib/sanitizer_common/tests/CMakeLists.txt
@@ -5,20 +5,24 @@ set(SANITIZER_UNITTESTS
sanitizer_atomic_test.cc
sanitizer_common_test.cc
sanitizer_flags_test.cc
+ sanitizer_ioctl_test.cc
sanitizer_libc_test.cc
sanitizer_linux_test.cc
sanitizer_list_test.cc
sanitizer_mutex_test.cc
+ sanitizer_nolibc_test.cc
+ sanitizer_posix_test.cc
sanitizer_printf_test.cc
sanitizer_scanf_interceptor_test.cc
sanitizer_stackdepot_test.cc
sanitizer_stacktrace_test.cc
sanitizer_stoptheworld_test.cc
+ sanitizer_suppressions_test.cc
sanitizer_test_main.cc
- sanitizer_thread_registry_test.cc
- )
+ sanitizer_thread_registry_test.cc)
-set(SANITIZER_TEST_HEADERS)
+set(SANITIZER_TEST_HEADERS
+ sanitizer_test_utils.h)
foreach(header ${SANITIZER_HEADERS})
list(APPEND SANITIZER_TEST_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/../${header})
endforeach()
@@ -86,6 +90,24 @@ macro(add_sanitizer_tests_for_arch arch)
DEPS ${SANITIZER_TEST_OBJECTS} ${SANITIZER_COMMON_LIB}
LINK_FLAGS ${SANITIZER_TEST_LINK_FLAGS_COMMON}
-lpthread ${TARGET_FLAGS})
+
+ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND "${arch}" STREQUAL "x86_64")
+ # Test that the libc-independent part of sanitizer_common is indeed
+ # independent of libc, by linking this binary without libc (here) and
+ # executing it (unit test in sanitizer_nolibc_test.cc).
+ clang_compile(sanitizer_nolibc_test_main.${arch}.o
+ sanitizer_nolibc_test_main.cc
+ CFLAGS ${SANITIZER_TEST_CFLAGS_COMMON} ${TARGET_FLAGS}
+ DEPS ${SANITIZER_RUNTIME_LIBRARIES} ${SANITIZER_TEST_HEADERS})
+ add_compiler_rt_test(SanitizerUnitTests "Sanitizer-${arch}-Test-Nolibc"
+ OBJECTS sanitizer_nolibc_test_main.${arch}.o
+ -Wl,-whole-archive
+ libRTSanitizerCommon.test.nolibc.${arch}.a
+ -Wl,-no-whole-archive
+ DEPS sanitizer_nolibc_test_main.${arch}.o
+ RTSanitizerCommon.test.nolibc.${arch}
+ LINK_FLAGS -nostdlib ${TARGET_FLAGS})
+ endif()
endmacro()
if(COMPILER_RT_CAN_EXECUTE_TESTS)
@@ -99,6 +121,8 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS)
add_sanitizer_common_lib("RTSanitizerCommon.test.x86_64"
$<TARGET_OBJECTS:RTSanitizerCommon.x86_64>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.x86_64>)
+ add_sanitizer_common_lib("RTSanitizerCommon.test.nolibc.x86_64"
+ $<TARGET_OBJECTS:RTSanitizerCommon.x86_64>)
endif()
if(CAN_TARGET_i386)
add_sanitizer_common_lib("RTSanitizerCommon.test.i386"