diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-10-05 18:28:04 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-10-05 18:28:04 +0000 |
commit | f4abfe4e8b3ce1faf6767300577a02cfbab6fe2b (patch) | |
tree | be835dd5df23e8ec6f05a1c33fbbad7408508ea8 | |
parent | 3d259d64333b61fc5ecd68824caed82750855f99 (diff) |
[cfi] Test on all available targets.
Summary:
Run CFI tests on all targets current toolchain can target.
On multiarch Linux, this will run all CFI tests with -m32 and -m64.
Reviewers: pcc
Subscribers: mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D38572
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@315001 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/cfi/CMakeLists.txt | 26 | ||||
-rw-r--r-- | test/cfi/lit.cfg | 7 | ||||
-rw-r--r-- | test/cfi/lit.site.cfg.in | 2 |
3 files changed, 23 insertions, 12 deletions
diff --git a/test/cfi/CMakeLists.txt b/test/cfi/CMakeLists.txt index 3313fb233..2e2f0f88b 100644 --- a/test/cfi/CMakeLists.txt +++ b/test/cfi/CMakeLists.txt @@ -8,6 +8,7 @@ macro (add_cfi_test_suites lld thinlto) if (${thinlto}) set(suffix ${suffix}-thinlto) endif() + set(suffix ${suffix}-${CFI_TEST_TARGET_ARCH}) set(CFI_TEST_USE_LLD ${lld}) set(CFI_TEST_USE_THINLTO ${thinlto}) @@ -29,14 +30,21 @@ macro (add_cfi_test_suites lld thinlto) list(APPEND CFI_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Devirt${suffix}) endmacro() -if (APPLE) - # FIXME: enable ThinLTO tests after fixing http://llvm.org/pr32741 - add_cfi_test_suites(False False) -elseif(WIN32) - add_cfi_test_suites(True False) - add_cfi_test_suites(True True) -else() - if (CFI_SUPPORTED_ARCH) +set(CFI_TEST_ARCH ${CFI_SUPPORTED_ARCH}) +if(APPLE) + darwin_filter_host_archs(CFI_SUPPORTED_ARCH CFI_TEST_ARCH) +endif() + +foreach(arch ${CFI_TEST_ARCH}) + set(CFI_TEST_TARGET_ARCH ${arch}) + get_test_cc_for_arch(${arch} CFI_TEST_TARGET_CC CFI_TEST_TARGET_CFLAGS) + if (APPLE) + # FIXME: enable ThinLTO tests after fixing http://llvm.org/pr32741 + add_cfi_test_suites(False False) + elseif(WIN32) + add_cfi_test_suites(True False) + add_cfi_test_suites(True True) + else() add_cfi_test_suites(False False) add_cfi_test_suites(False True) if (COMPILER_RT_HAS_LLD) @@ -44,7 +52,7 @@ else() add_cfi_test_suites(True True) endif() endif() -endif() +endforeach() set(CFI_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) list(APPEND CFI_TEST_DEPS diff --git a/test/cfi/lit.cfg b/test/cfi/lit.cfg index 314ba5ce9..76cafb855 100644 --- a/test/cfi/lit.cfg +++ b/test/cfi/lit.cfg @@ -5,12 +5,13 @@ config.name = 'cfi' + config.name_suffix config.suffixes = ['.c', '.cpp', '.test'] config.test_source_root = os.path.dirname(__file__) -clangxx = ' '.join([config.clang] + config.cxx_mode_flags) +clang = ' '.join([config.clang, config.target_cflags]) +clangxx = ' '.join([config.clang, config.target_cflags] + config.cxx_mode_flags) -config.substitutions.append((r"%clang ", ' '.join([config.clang]) + ' ')) +config.substitutions.append((r"%clang ", clang + ' ')) config.substitutions.append((r"%clangxx ", clangxx + ' ')) if config.lto_supported: - clang_cfi = ' '.join(config.lto_launch + [config.clang] + config.lto_flags + ['-fsanitize=cfi ']) + clang_cfi = ' '.join(config.lto_launch + [clang] + config.lto_flags + ['-fsanitize=cfi ']) if config.cfi_lit_test_mode == "Devirt": config.available_features.add('devirt') diff --git a/test/cfi/lit.site.cfg.in b/test/cfi/lit.site.cfg.in index 63611f659..066c915ef 100644 --- a/test/cfi/lit.site.cfg.in +++ b/test/cfi/lit.site.cfg.in @@ -2,6 +2,8 @@ config.name_suffix = "@CFI_TEST_CONFIG_SUFFIX@" config.cfi_lit_test_mode = "@CFI_LIT_TEST_MODE@" +config.target_arch = "@CFI_TEST_TARGET_ARCH@" +config.target_cflags = "@CFI_TEST_TARGET_CFLAGS@" config.use_lld = @CFI_TEST_USE_LLD@ config.use_thinlto = @CFI_TEST_USE_THINLTO@ |