Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 1 | set(UBSAN_LIT_TESTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}) |
| 2 | |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 3 | set(UBSAN_TESTSUITES) |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 4 | set(UBSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) |
| 5 | |
| 6 | macro(add_ubsan_testsuite test_mode sanitizer arch) |
| 7 | set(UBSAN_LIT_TEST_MODE "${test_mode}") |
| 8 | set(CONFIG_NAME ${UBSAN_LIT_TEST_MODE}-${arch}) |
| 9 | configure_lit_site_cfg( |
| 10 | ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in |
| 11 | ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg) |
| 12 | list(APPEND UBSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}) |
| 13 | if(NOT COMPILER_RT_STANDALONE_BUILD) |
| 14 | list(APPEND UBSAN_TEST_DEPS ${sanitizer}) |
| 15 | endif() |
| 16 | endmacro() |
| 17 | |
Pirama Arumuga Nainar | 799172d | 2016-03-03 15:50:30 -0800 | [diff] [blame^] | 18 | set(UBSAN_TEST_ARCH ${UBSAN_SUPPORTED_ARCH}) |
| 19 | if(APPLE) |
| 20 | darwin_filter_host_archs(UBSAN_SUPPORTED_ARCH UBSAN_TEST_ARCH) |
| 21 | endif() |
| 22 | |
| 23 | foreach(arch ${UBSAN_TEST_ARCH}) |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 24 | set(UBSAN_TEST_TARGET_ARCH ${arch}) |
| 25 | if(${arch} MATCHES "arm|aarch64") |
| 26 | # This is only true if we're cross-compiling. |
| 27 | set(UBSAN_TEST_TARGET_CFLAGS ${COMPILER_RT_TEST_COMPILER_CFLAGS}) |
| 28 | else() |
| 29 | get_target_flags_for_arch(${arch} UBSAN_TEST_TARGET_CFLAGS) |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 30 | string(REPLACE ";" " " UBSAN_TEST_TARGET_CFLAGS "${UBSAN_TEST_TARGET_CFLAGS}") |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 31 | endif() |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 32 | add_ubsan_testsuite("Standalone" ubsan ${arch}) |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 33 | |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 34 | if(COMPILER_RT_HAS_ASAN AND ";${ASAN_SUPPORTED_ARCH};" MATCHES ";${arch};") |
| 35 | add_ubsan_testsuite("AddressSanitizer" asan ${arch}) |
| 36 | endif() |
| 37 | if(COMPILER_RT_HAS_MSAN AND ";${MSAN_SUPPORTED_ARCH};" MATCHES ";${arch};") |
| 38 | add_ubsan_testsuite("MemorySanitizer" msan ${arch}) |
| 39 | endif() |
| 40 | if(COMPILER_RT_HAS_TSAN AND ";${TSAN_SUPPORTED_ARCH};" MATCHES ";${arch};") |
| 41 | add_ubsan_testsuite("ThreadSanitizer" tsan ${arch}) |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 42 | endif() |
| 43 | endforeach() |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 44 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 45 | add_lit_testsuite(check-ubsan "Running UndefinedBehaviorSanitizer tests" |
Stephen Hines | 6a211c5 | 2014-07-21 00:49:56 -0700 | [diff] [blame] | 46 | ${UBSAN_TESTSUITES} |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 47 | DEPENDS ${UBSAN_TEST_DEPS}) |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 48 | set_target_properties(check-ubsan PROPERTIES FOLDER "UBSan tests") |