diff options
author | Alexey Samsonov <samsonov@google.com> | 2013-06-06 12:35:48 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2013-06-06 12:35:48 +0000 |
commit | dd6605eb299705e09160de7e1f9f505c40e5d1b2 (patch) | |
tree | 346894a4a68277b1a52de23c6596e5f3873f3610 | |
parent | 64e2282e9c984c598c93a8bd01983f842e247ce3 (diff) | |
download | compiler-rt-dd6605eb299705e09160de7e1f9f505c40e5d1b2.tar.gz compiler-rt-dd6605eb299705e09160de7e1f9f505c40e5d1b2.tar.bz2 compiler-rt-dd6605eb299705e09160de7e1f9f505c40e5d1b2.tar.xz |
[ASan] lit tests: create common autogenerated config for running compiler-rt lit tests, and use it in ASan
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@183400 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | lib/CMakeLists.txt | 4 | ||||
-rw-r--r-- | lib/asan/lit_tests/lit.cfg | 9 | ||||
-rw-r--r-- | lib/asan/lit_tests/lit.site.cfg.in | 22 | ||||
-rw-r--r-- | lib/lit.common.cfg | 2 | ||||
-rw-r--r-- | lib/lit.common.configured.in | 23 |
6 files changed, 33 insertions, 28 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a57751ce..964ae866 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,7 @@ set(CMAKE_MODULE_PATH include(AddCompilerRT) set(COMPILER_RT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +set(COMPILER_RT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) # Setup custom SDK sysroots. set(COMPILER_RT_DARWIN_SDK_SYSROOT ${COMPILER_RT_SOURCE_DIR}/SDKs/darwin) set(COMPILER_RT_LINUX_SDK_SYSROOT ${COMPILER_RT_SOURCE_DIR}/SDKs/linux) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index f07ab1e1..e504e00a 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -19,6 +19,10 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND NOT ANDROID) add_subdirectory(lsan) endif() +configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.common.configured.in + ${CMAKE_CURRENT_BINARY_DIR}/lit.common.configured) + # The top-level lib directory contains a large amount of C code which provides # generic implementations of the core runtime library along with optimized # architecture-specific code in various subdirectories. diff --git a/lib/asan/lit_tests/lit.cfg b/lib/asan/lit_tests/lit.cfg index d8dac43a..5100a284 100644 --- a/lib/asan/lit_tests/lit.cfg +++ b/lib/asan/lit_tests/lit.cfg @@ -48,15 +48,6 @@ if llvm_src_root is None: lit.load_config(config, asan_site_cfg) raise SystemExit -# Setup attributes common for all compiler-rt projects. -compiler_rt_src_root = get_required_attr(config, "compiler_rt_src_root") -compiler_rt_lit_cfg = os.path.join(compiler_rt_src_root, "lib", - "lit.common.cfg") -if (not compiler_rt_lit_cfg) or (not os.path.exists(compiler_rt_lit_cfg)): - lit.fatal("Can't find common compiler-rt lit config at: %r" - % compiler_rt_lit_cfg) -lit.load_config(config, compiler_rt_lit_cfg) - # Setup default compiler flags used with -fsanitize=address option. # FIXME: Review the set of required flags and check if it can be reduced. clang_asan_cxxflags = ("-ccc-cxx " diff --git a/lib/asan/lit_tests/lit.site.cfg.in b/lib/asan/lit_tests/lit.site.cfg.in index 52841224..db520029 100644 --- a/lib/asan/lit_tests/lit.site.cfg.in +++ b/lib/asan/lit_tests/lit.site.cfg.in @@ -1,23 +1,11 @@ ## Autogenerated by LLVM/Clang configuration. # Do not edit! -config.target_triple = "@TARGET_TRIPLE@" -config.host_os = "@HOST_OS@" -config.llvm_src_root = "@LLVM_SOURCE_DIR@" -config.llvm_obj_root = "@LLVM_BINARY_DIR@" -config.compiler_rt_src_root = "@COMPILER_RT_SOURCE_DIR@" -config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" -config.clang = "@LLVM_BINARY_DIR@/bin/clang" -config.compiler_rt_arch = "@COMPILER_RT_SUPPORTED_ARCH@" -config.asan_source_dir = "@ASAN_SOURCE_DIR@" +# Load common config for all compiler-rt lit tests. +lit.load_config(config, "@COMPILER_RT_BINARY_DIR@/lib/lit.common.configured") -# LLVM tools dir can be passed in lit parameters, so try to -# apply substitution. -try: - config.llvm_tools_dir = config.llvm_tools_dir % lit.params -except KeyError,e: - key, = e.args - lit.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key, key)) +# Tool-specific config options. +config.asan_source_dir = "@ASAN_SOURCE_DIR@" -# Let the main config do the real work. +# Load tool-specific config that would do the real work. lit.load_config(config, "@ASAN_SOURCE_DIR@/lit_tests/lit.cfg") diff --git a/lib/lit.common.cfg b/lib/lit.common.cfg index b410259a..9c5ffd62 100644 --- a/lib/lit.common.cfg +++ b/lib/lit.common.cfg @@ -15,8 +15,6 @@ config.test_format = lit.formats.ShTest(execute_external) clang_path = getattr(config, 'clang', None) if (not clang_path) or (not os.path.exists(clang_path)): lit.fatal("Can't find Clang on path %r" % clang_path) -if not lit.quiet: - lit.note("using clang: %r" % clang_path) # Clear some environment variables that might affect Clang. possibly_dangerous_env_vars = ['COMPILER_PATH', 'RC_DEBUG_OPTIONS', diff --git a/lib/lit.common.configured.in b/lib/lit.common.configured.in new file mode 100644 index 00000000..5ca9b1bd --- /dev/null +++ b/lib/lit.common.configured.in @@ -0,0 +1,23 @@ +## Autogenerated by LLVM/Clang configuration. +# Do not edit! + +# Generic config options for all compiler-rt lit tests. +config.target_triple = "@TARGET_TRIPLE@" +config.host_os = "@HOST_OS@" +config.llvm_src_root = "@LLVM_SOURCE_DIR@" +config.llvm_obj_root = "@LLVM_BINARY_DIR@" +config.compiler_rt_src_root = "@COMPILER_RT_SOURCE_DIR@" +config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" +config.clang = "@LLVM_BINARY_DIR@/bin/clang" +config.compiler_rt_arch = "@COMPILER_RT_SUPPORTED_ARCH@" + +# LLVM tools dir can be passed in lit parameters, so try to +# apply substitution. +try: + config.llvm_tools_dir = config.llvm_tools_dir % lit.params +except KeyError,e: + key, = e.args + lit.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key, key)) + +# Setup attributes common for all compiler-rt projects. +lit.load_config(config, "@COMPILER_RT_SOURCE_DIR@/lib/lit.common.cfg") |