|
1 | 1 | set(SAFESTACK_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
2 | 2 | set(SAFESTACK_LIT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
3 | 3 |
|
| 4 | +set(SAFESTACK_TESTSUITES) |
4 | 5 | set(SAFESTACK_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS})
|
5 | 6 | list(APPEND SAFESTACK_TEST_DEPS safestack)
|
6 |
| -if(NOT COMPILER_RT_STANDALONE_BUILD) |
7 |
| - # Some tests require LTO, so add a dependency on the relevant LTO plugin. |
8 |
| - if(LLVM_ENABLE_PIC) |
9 |
| - if(LLVM_BINUTILS_INCDIR) |
10 |
| - list(APPEND SAFESTACK_TEST_DEPS |
11 |
| - LLVMgold |
12 |
| - ) |
13 |
| - endif() |
14 |
| - if(APPLE) |
15 |
| - list(APPEND SAFESTACK_TEST_DEPS |
16 |
| - LTO |
17 |
| - ) |
| 7 | + |
| 8 | +macro(add_safestack_testsuite test_mode sanitizer arch) |
| 9 | + set(SAFESTACK_LIT_TEST_MODE "${test_mode}") |
| 10 | + set(CONFIG_NAME ${SAFESTACK_LIT_TEST_MODE}) |
| 11 | + |
| 12 | + if(NOT COMPILER_RT_STANDALONE_BUILD) |
| 13 | + # Some tests require LTO, so add a dependency on the relevant LTO plugin. |
| 14 | + if(LLVM_ENABLE_PIC) |
| 15 | + if(LLVM_BINUTILS_INCDIR) |
| 16 | + list(APPEND SAFESTACK_TEST_DEPS LLVMgold) |
| 17 | + endif() |
| 18 | + if(APPLE) |
| 19 | + list(APPEND SAFESTACK_TEST_DEPS LTO) |
| 20 | + endif() |
18 | 21 | endif()
|
19 | 22 | endif()
|
20 |
| -endif() |
| 23 | + set(CONFIG_NAME ${CONFIG_NAME}-${arch}) |
| 24 | + configure_lit_site_cfg( |
| 25 | + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in |
| 26 | + ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py) |
| 27 | + list(APPEND SAFESTACK_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}) |
| 28 | +endmacro() |
| 29 | + |
| 30 | +set(SAFESTACK_TEST_ARCH ${SAFESTACK_SUPPORTED_ARCH}) |
21 | 31 |
|
22 |
| -configure_lit_site_cfg( |
23 |
| - ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in |
24 |
| - ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py |
25 |
| - ) |
| 32 | +foreach(arch ${SAFESTACK_TEST_ARCH}) |
| 33 | + set(SAFESTACK_TEST_TARGET_ARCH ${arch}) |
| 34 | + get_test_cc_for_arch(${arch} SAFESTACK_TEST_TARGET_CC SAFESTACK_TEST_TARGET_CFLAGS) |
| 35 | + add_safestack_testsuite("Standalone" safestack ${arch}) |
| 36 | +endforeach() |
26 | 37 |
|
27 | 38 | add_lit_testsuite(check-safestack "Running the SafeStack tests"
|
28 |
| - ${CMAKE_CURRENT_BINARY_DIR} |
| 39 | + ${SAFESTACK_TESTSUITES} |
29 | 40 | DEPENDS ${SAFESTACK_TEST_DEPS})
|
0 commit comments