blob: 9f121654318f9d0acf7b942c828789110637d843 [file] [log] [blame]
Stephen Hines2d1fdb22014-05-28 23:58:16 -07001set(SANITIZER_COMMON_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
2
3set(SANITIZER_COMMON_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS})
4set(SANITIZER_COMMON_TESTSUITES)
5
6set(SUPPORTED_TOOLS)
7if(CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux|FreeBSD" AND NOT ANDROID)
8 list(APPEND SUPPORTED_TOOLS asan)
9endif()
10if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT ANDROID)
11 list(APPEND SUPPORTED_TOOLS tsan)
12 list(APPEND SUPPORTED_TOOLS msan)
Stephen Hines6a211c52014-07-21 00:49:56 -070013 list(APPEND SUPPORTED_TOOLS lsan)
Stephen Hines2d1fdb22014-05-28 23:58:16 -070014endif()
15
16# Create a separate config for each tool we support.
17foreach(tool ${SUPPORTED_TOOLS})
18 string(TOUPPER ${tool} tool_toupper)
Pirama Arumuga Nainar7c915052015-04-08 08:58:29 -070019 if(${tool_toupper}_SUPPORTED_ARCH AND NOT COMPILER_RT_STANDALONE_BUILD)
20 list(APPEND SANITIZER_COMMON_TEST_DEPS ${tool})
21 endif()
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080022 set(TEST_ARCH ${${tool_toupper}_SUPPORTED_ARCH})
23 if(APPLE)
24 darwin_filter_host_archs(${tool_toupper}_SUPPORTED_ARCH TEST_ARCH)
25 endif()
26
27 foreach(arch ${TEST_ARCH})
Stephen Hines2d1fdb22014-05-28 23:58:16 -070028 set(SANITIZER_COMMON_LIT_TEST_MODE ${tool})
Pirama Arumuga Nainar7c915052015-04-08 08:58:29 -070029 set(SANITIZER_COMMON_TEST_TARGET_ARCH ${arch})
30 if(${arch} MATCHES "arm|aarch64")
31 # This is only true if we're cross-compiling.
32 set(SANITIZER_COMMON_TEST_TARGET_CFLAGS
33 ${COMPILER_RT_TEST_COMPILER_CFLAGS})
34 else()
35 get_target_flags_for_arch(${arch} SANITIZER_COMMON_TEST_TARGET_CFLAGS)
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070036 string(REPLACE ";" " " SANITIZER_COMMON_TEST_TARGET_CFLAGS "${SANITIZER_COMMON_TEST_TARGET_CFLAGS}")
Pirama Arumuga Nainar7c915052015-04-08 08:58:29 -070037 endif()
38 set(CONFIG_NAME ${tool}-${arch}-${OS_NAME})
Stephen Hines2d1fdb22014-05-28 23:58:16 -070039 configure_lit_site_cfg(
40 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
Pirama Arumuga Nainar7c915052015-04-08 08:58:29 -070041 ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
42 list(APPEND SANITIZER_COMMON_TESTSUITES
43 ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
44 endforeach()
Stephen Hines2d1fdb22014-05-28 23:58:16 -070045endforeach()
46
47# Unit tests.
48if(COMPILER_RT_INCLUDE_TESTS)
49 configure_lit_site_cfg(
50 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
51 ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
52 list(APPEND SANITIZER_COMMON_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit)
53 list(APPEND SANITIZER_COMMON_TEST_DEPS SanitizerUnitTests)
54endif()
55
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080056# FIXME: Re-enable on 64-bit Windows.
57if(SANITIZER_COMMON_TESTSUITES AND
58 (NOT OS_NAME MATCHES "Windows" OR CMAKE_SIZEOF_VOID_P EQUAL 4))
Stephen Hines2d1fdb22014-05-28 23:58:16 -070059 add_lit_testsuite(check-sanitizer "Running sanitizer_common tests"
60 ${SANITIZER_COMMON_TESTSUITES}
61 DEPENDS ${SANITIZER_COMMON_TEST_DEPS})
62 set_target_properties(check-sanitizer PROPERTIES FOLDER
Pirama Arumuga Nainarc58a4362016-09-19 23:00:23 -070063 "Compiler-RT Misc")
Stephen Hines2d1fdb22014-05-28 23:58:16 -070064endif()