summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Sanders <daniel.sanders@imgtec.com>2016-02-09 16:20:37 +0000
committerDaniel Sanders <daniel.sanders@imgtec.com>2016-02-09 16:20:37 +0000
commit922f95ce4b46676fdab4678714dfe8a4bd18b0ba (patch)
tree8bfcda1043a50225cf7787b72ae018ce9f1541d9
parent958d69e0fcbbe8f5f4469575d55be84c1eacb554 (diff)
downloadbcm5719-llvm-922f95ce4b46676fdab4678714dfe8a4bd18b0ba.tar.gz
bcm5719-llvm-922f95ce4b46676fdab4678714dfe8a4bd18b0ba.zip
[dfsan] Run the tests for each supported arch and suffix each one to distinguish them.
Summary: Previously, the tests only ran for the 64-bit equivalent of the default target (see -m64). Given the supported architecture list only contains 64-bit targets, this happens to work out the same as the supported targets in most cases but may matter for X86_64/X86_64h on Darwin. For other targets, the practical effect is that the test names contain the architecture. This resolves some confusion when msan tests fail since their name no longer implies that they are trying to test the default target. Reviewers: samsonov Subscribers: tberghammer, danalbert, llvm-commits, srhines Differential Revision: http://reviews.llvm.org/D16856 llvm-svn: 260231
-rw-r--r--compiler-rt/test/dfsan/CMakeLists.txt32
-rw-r--r--compiler-rt/test/dfsan/lit.cfg4
-rw-r--r--compiler-rt/test/dfsan/lit.site.cfg.in7
3 files changed, 37 insertions, 6 deletions
diff --git a/compiler-rt/test/dfsan/CMakeLists.txt b/compiler-rt/test/dfsan/CMakeLists.txt
index 3fa1af24be5..37379535105 100644
--- a/compiler-rt/test/dfsan/CMakeLists.txt
+++ b/compiler-rt/test/dfsan/CMakeLists.txt
@@ -1,8 +1,32 @@
set(DFSAN_LIT_TESTS_DIR ${CMAKE_CURRENT_SOURCE_DIR})
-configure_lit_site_cfg(
- ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
- ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
+set(DFSAN_TESTSUITES)
+
+set(DFSAN_TEST_ARCH ${DFSAN_SUPPORTED_ARCH})
+if(APPLE)
+ darwin_filter_host_archs(DFSAN_SUPPORTED_ARCH DFSAN_TEST_ARCH)
+endif()
+
+foreach(arch ${DFSAN_TEST_ARCH})
+ string(TOLOWER "-${arch}" DFSAN_TEST_CONFIG_SUFFIX)
+ if(ANDROID OR ${arch} MATCHES "arm|aarch64")
+ # This is only true if we are cross-compiling.
+ # Build all tests with host compiler and use host tools.
+ set(DFSAN_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER})
+ set(DFSAN_TEST_TARGET_CFLAGS ${COMPILER_RT_TEST_COMPILER_CFLAGS})
+ else()
+ get_target_flags_for_arch(${arch} DFSAN_TEST_TARGET_CFLAGS)
+ string(REPLACE ";" " " DFSAN_TEST_TARGET_CFLAGS "${DFSAN_TEST_TARGET_CFLAGS}")
+ endif()
+
+ string(TOUPPER ${arch} ARCH_UPPER_CASE)
+ set(CONFIG_NAME ${ARCH_UPPER_CASE}Config)
+
+ configure_lit_site_cfg(
+ ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
+ ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
+ list(APPEND DFSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
+endforeach()
set(DFSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS})
if(NOT COMPILER_RT_STANDALONE_BUILD)
@@ -10,6 +34,6 @@ if(NOT COMPILER_RT_STANDALONE_BUILD)
endif()
add_lit_testsuite(check-dfsan "Running the DataFlowSanitizer tests"
- ${CMAKE_CURRENT_BINARY_DIR}
+ ${DFSAN_TESTSUITES}
DEPENDS ${DFSAN_TEST_DEPS})
set_target_properties(check-dfsan PROPERTIES FOLDER "DFSan tests")
diff --git a/compiler-rt/test/dfsan/lit.cfg b/compiler-rt/test/dfsan/lit.cfg
index e4d4e8f57af..6dc0f9c45d1 100644
--- a/compiler-rt/test/dfsan/lit.cfg
+++ b/compiler-rt/test/dfsan/lit.cfg
@@ -3,13 +3,13 @@
import os
# Setup config name.
-config.name = 'DataFlowSanitizer'
+config.name = 'DataFlowSanitizer' + config.name_suffix
# Setup source root.
config.test_source_root = os.path.dirname(__file__)
# Setup default compiler flags used with -fsanitize=dataflow option.
-clang_dfsan_cflags = ["-fsanitize=dataflow", "-m64"]
+clang_dfsan_cflags = ["-fsanitize=dataflow", config.target_cflags]
clang_dfsan_cxxflags = config.cxx_mode_flags + clang_dfsan_cflags
def build_invocation(compile_flags):
diff --git a/compiler-rt/test/dfsan/lit.site.cfg.in b/compiler-rt/test/dfsan/lit.site.cfg.in
index 859284eca14..a4e32a1def7 100644
--- a/compiler-rt/test/dfsan/lit.site.cfg.in
+++ b/compiler-rt/test/dfsan/lit.site.cfg.in
@@ -1,5 +1,12 @@
+## Autogenerated by LLVM/Clang configuration.
+# Do not edit!
+
# Load common config for all compiler-rt lit tests.
lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
+# Tool-specific config options.
+config.name_suffix = "@DFSAN_TEST_CONFIG_SUFFIX@"
+config.target_cflags = "@DFSAN_TEST_TARGET_CFLAGS@"
+
# Load tool-specific config that would do the real work.
lit_config.load_config(config, "@DFSAN_LIT_TESTS_DIR@/lit.cfg")
OpenPOWER on IntegriCloud