1set(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) 13 list(APPEND SUPPORTED_TOOLS lsan) 14endif() 15 16# Create a separate config for each tool we support. 17foreach(tool ${SUPPORTED_TOOLS}) 18 string(TOUPPER ${tool} tool_toupper) 19 if(${tool_toupper}_SUPPORTED_ARCH) 20 set(SANITIZER_COMMON_LIT_TEST_MODE ${tool}) 21 configure_lit_site_cfg( 22 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in 23 ${CMAKE_CURRENT_BINARY_DIR}/${tool}/lit.site.cfg) 24 list(APPEND SANITIZER_COMMON_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${tool}) 25 if(NOT COMPILER_RT_STANDALONE_BUILD) 26 list(APPEND SANITIZER_COMMON_TEST_DEPS ${tool}) 27 endif() 28 endif() 29endforeach() 30 31# Unit tests. 32if(COMPILER_RT_INCLUDE_TESTS) 33 configure_lit_site_cfg( 34 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in 35 ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg) 36 list(APPEND SANITIZER_COMMON_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit) 37 list(APPEND SANITIZER_COMMON_TEST_DEPS SanitizerUnitTests) 38endif() 39 40if(SANITIZER_COMMON_TESTSUITES) 41 add_lit_testsuite(check-sanitizer "Running sanitizer_common tests" 42 ${SANITIZER_COMMON_TESTSUITES} 43 DEPENDS ${SANITIZER_COMMON_TEST_DEPS}) 44 set_target_properties(check-sanitizer PROPERTIES FOLDER 45 "sanitizer_common tests") 46endif() 47