xref: /llvm-project/compiler-rt/test/cfi/CMakeLists.txt (revision b96eb76d21dde43c6a92027ac083ad1a95f9dd0b)
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