[compiler-rt] r260231 - [dfsan] Run the tests for each supported arch and suffix each one to distinguish them.

Daniel Sanders via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 9 08:20:37 PST 2016


Author: dsanders
Date: Tue Feb  9 10:20:37 2016
New Revision: 260231

URL: http://llvm.org/viewvc/llvm-project?rev=260231&view=rev
Log:
[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

Modified:
    compiler-rt/trunk/test/dfsan/CMakeLists.txt
    compiler-rt/trunk/test/dfsan/lit.cfg
    compiler-rt/trunk/test/dfsan/lit.site.cfg.in

Modified: compiler-rt/trunk/test/dfsan/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/dfsan/CMakeLists.txt?rev=260231&r1=260230&r2=260231&view=diff
==============================================================================
--- compiler-rt/trunk/test/dfsan/CMakeLists.txt (original)
+++ compiler-rt/trunk/test/dfsan/CMakeLists.txt Tue Feb  9 10:20:37 2016
@@ -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")

Modified: compiler-rt/trunk/test/dfsan/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/dfsan/lit.cfg?rev=260231&r1=260230&r2=260231&view=diff
==============================================================================
--- compiler-rt/trunk/test/dfsan/lit.cfg (original)
+++ compiler-rt/trunk/test/dfsan/lit.cfg Tue Feb  9 10:20:37 2016
@@ -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):

Modified: compiler-rt/trunk/test/dfsan/lit.site.cfg.in
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/dfsan/lit.site.cfg.in?rev=260231&r1=260230&r2=260231&view=diff
==============================================================================
--- compiler-rt/trunk/test/dfsan/lit.site.cfg.in (original)
+++ compiler-rt/trunk/test/dfsan/lit.site.cfg.in Tue Feb  9 10:20:37 2016
@@ -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")




More information about the llvm-commits mailing list