1set(CFI_TESTSUITES) 2 3macro (add_cfi_test_suites lld thinlto) 4 set(suffix) 5 if (${lld}) 6 set(suffix ${suffix}-lld) 7 endif() 8 if (${thinlto}) 9 set(suffix ${suffix}-thinlto) 10 endif() 11 set(suffix ${suffix}-${CFI_TEST_TARGET_ARCH}) 12 13 set(CFI_TEST_USE_LLD ${lld}) 14 set(CFI_TEST_USE_THINLTO ${thinlto}) 15 16 set(CFI_LIT_TEST_MODE Standalone) 17 set(CFI_TEST_CONFIG_SUFFIX -standalone${suffix}) 18 configure_lit_site_cfg( 19 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in 20 ${CMAKE_CURRENT_BINARY_DIR}/Standalone${suffix}/lit.site.cfg.py 21 ) 22 list(APPEND CFI_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Standalone${suffix}) 23 24 set(CFI_LIT_TEST_MODE Devirt) 25 set(CFI_TEST_CONFIG_SUFFIX -devirt${suffix}) 26 configure_lit_site_cfg( 27 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in 28 ${CMAKE_CURRENT_BINARY_DIR}/Devirt${suffix}/lit.site.cfg.py 29 ) 30 list(APPEND CFI_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Devirt${suffix}) 31endmacro() 32 33set(CFI_TEST_ARCH ${CFI_SUPPORTED_ARCH}) 34if(APPLE) 35 darwin_filter_host_archs(CFI_SUPPORTED_ARCH CFI_TEST_ARCH) 36endif() 37 38foreach(arch ${CFI_TEST_ARCH}) 39 set(CFI_TEST_TARGET_ARCH ${arch}) 40 get_test_cc_for_arch(${arch} CFI_TEST_TARGET_CC CFI_TEST_TARGET_CFLAGS) 41 if (APPLE) 42 # FIXME: enable ThinLTO tests after fixing http://llvm.org/pr32741 43 add_cfi_test_suites(False False False) 44 elseif(WIN32) 45 add_cfi_test_suites(True False) 46 add_cfi_test_suites(True True) 47 else() 48 add_cfi_test_suites(False False) 49 add_cfi_test_suites(False True) 50 if (COMPILER_RT_HAS_LLD AND NOT arch STREQUAL "i386") 51 add_cfi_test_suites(True False) 52 add_cfi_test_suites(True True) 53 endif() 54 endif() 55endforeach() 56 57set(CFI_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) 58list(APPEND CFI_TEST_DEPS 59 ubsan 60 stats 61) 62list(APPEND CFI_TEST_DEPS cfi) 63 64if(NOT COMPILER_RT_STANDALONE_BUILD) 65 list(APPEND CFI_TEST_DEPS 66 opt 67 sanstats 68 ) 69 if(LLVM_ENABLE_PIC) 70 if(LLVM_BINUTILS_INCDIR) 71 list(APPEND CFI_TEST_DEPS 72 LLVMgold 73 ) 74 endif() 75 if(APPLE) 76 list(APPEND CFI_TEST_DEPS 77 LTO 78 ) 79 endif() 80 endif() 81 if(NOT APPLE AND COMPILER_RT_HAS_LLD AND TARGET lld) 82 list(APPEND CFI_TEST_DEPS 83 lld 84 ) 85 endif() 86endif() 87 88add_lit_testsuite(check-cfi "Running the cfi regression tests" 89 ${CFI_TESTSUITES} 90 DEPENDS ${CFI_TEST_DEPS}) 91 92add_lit_target(check-cfi-and-supported "Running the cfi regression tests" 93 ${CFI_TESTSUITES} 94 PARAMS check_supported=1 95 DEPENDS ${CFI_TEST_DEPS}) 96