From 1c9b9bcb5c800cbe0f672e9caf21334a8bd4d855 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Mon, 17 Feb 2014 13:08:10 +0000 Subject: [PATCH] Simplify defining Clang compile flags in lit configs llvm-svn: 201513 --- compiler-rt/test/asan/lit.cfg | 30 ++++++++++------------ compiler-rt/test/dfsan/lit.cfg | 14 +++++----- compiler-rt/test/lsan/AsanConfig/lit.cfg | 13 +++++----- compiler-rt/test/lsan/LsanConfig/lit.cfg | 13 +++++----- compiler-rt/test/lsan/lit.common.cfg | 23 ++++++----------- compiler-rt/test/msan/lit.cfg | 14 +++++----- compiler-rt/test/tsan/lit.cfg | 24 +++++++++-------- compiler-rt/test/ubsan/AsanConfig/lit.cfg | 13 ++++++---- compiler-rt/test/ubsan/UbsanConfig/lit.cfg | 11 +++++--- compiler-rt/test/ubsan/lit.common.cfg | 5 ---- 10 files changed, 77 insertions(+), 83 deletions(-) diff --git a/compiler-rt/test/asan/lit.cfg b/compiler-rt/test/asan/lit.cfg index 4fa796bfb3b3..af06685af0fa 100644 --- a/compiler-rt/test/asan/lit.cfg +++ b/compiler-rt/test/asan/lit.cfg @@ -19,14 +19,14 @@ config.test_source_root = os.path.dirname(__file__) # Setup default compiler flags used with -fsanitize=address option. # FIXME: Review the set of required flags and check if it can be reduced. -target_cflags = " " + config.target_cflags -clang_asan_cflags = (" -fsanitize=address" - + " -mno-omit-leaf-frame-pointer" - + " -fno-omit-frame-pointer" - + " -fno-optimize-sibling-calls" - + " -g" - + target_cflags) -clang_asan_cxxflags = " --driver-mode=g++" + clang_asan_cflags +target_cflags = [get_required_attr(config, "target_cflags")] +target_cxxflags = ["--driver-mode=g++"] + target_cflags +clang_asan_cflags = ["-fsanitize=address", + "-mno-omit-leaf-frame-pointer", + "-fno-omit-frame-pointer", + "-fno-optimize-sibling-calls", + "-g"] + target_cflags +clang_asan_cxxflags = ["--driver-mode=g++"] + clang_asan_cflags asan_lit_source_dir = get_required_attr(config, "asan_lit_source_dir") if config.android == "TRUE": @@ -36,15 +36,13 @@ if config.android == "TRUE": else: clang_wrapper = "" -config.substitutions.append( ("%clang ", " " + clang_wrapper + config.clang + target_cflags + " ")) -config.substitutions.append( ("%clangxx ", (" " + clang_wrapper + config.clang + - " --driver-mode=g++" + - target_cflags + " ")) ) -config.substitutions.append( ("%clang_asan ", (" " + clang_wrapper + config.clang + " " + - clang_asan_cflags + " ")) ) -config.substitutions.append( ("%clangxx_asan ", (" " + clang_wrapper + config.clang + " " + - clang_asan_cxxflags + " ")) ) +def build_invocation(compile_flags): + return " " + " ".join([clang_wrapper, config.clang] + compile_flags) + " " +config.substitutions.append( ("%clang ", build_invocation(target_cflags)) ) +config.substitutions.append( ("%clangxx ", build_invocation(target_cxxflags)) ) +config.substitutions.append( ("%clang_asan ", build_invocation(clang_asan_cflags)) ) +config.substitutions.append( ("%clangxx_asan ", build_invocation(clang_asan_cxxflags)) ) # FIXME: De-hardcode this path. asan_source_dir = os.path.join( diff --git a/compiler-rt/test/dfsan/lit.cfg b/compiler-rt/test/dfsan/lit.cfg index a70463713d4e..7e14417aabb9 100644 --- a/compiler-rt/test/dfsan/lit.cfg +++ b/compiler-rt/test/dfsan/lit.cfg @@ -10,13 +10,13 @@ config.test_source_root = os.path.dirname(__file__) # Setup default compiler flags used with -fsanitize=dataflow option. clang_dfsan_cflags = ["-fsanitize=dataflow"] -clang_dfsan_cxxflags = ["--driver-mode=g++ "] + clang_dfsan_cflags -config.substitutions.append( ("%clang_dfsan ", - " ".join([config.clang] + clang_dfsan_cflags) + - " ") ) -config.substitutions.append( ("%clangxx_dfsan ", - " ".join([config.clang] + clang_dfsan_cxxflags) + - " ") ) +clang_dfsan_cxxflags = ["--driver-mode=g++"] + clang_dfsan_cflags + +def build_invocation(compile_flags): + return " " + " ".join([config.clang] + compile_flags) + " " + +config.substitutions.append( ("%clang_dfsan ", build_invocation(clang_dfsan_cflags)) ) +config.substitutions.append( ("%clangxx_dfsan ", build_invocation(clang_dfsan_cxxflags)) ) # Default test suffixes. config.suffixes = ['.c', '.cc', '.cpp'] diff --git a/compiler-rt/test/lsan/AsanConfig/lit.cfg b/compiler-rt/test/lsan/AsanConfig/lit.cfg index edb5adfd3b6c..b21537ff5eb3 100644 --- a/compiler-rt/test/lsan/AsanConfig/lit.cfg +++ b/compiler-rt/test/lsan/AsanConfig/lit.cfg @@ -21,14 +21,13 @@ config.available_features.add('asan') config.name = 'LeakSanitizer-AddressSanitizer' -clang_lsan_cxxflags = config.clang_cxxflags + " -fsanitize=address " +def build_invocation(compile_flags): + return " " + " ".join([config.clang] + compile_flags) + " " -config.substitutions.append( ("%clangxx_lsan ", (" " + config.clang + " " + - clang_lsan_cxxflags + " ")) ) +clang_lsan_cflags = config.clang_cflags + ["-fsanitize=address"] +clang_lsan_cxxflags = config.clang_cxxflags + ["-fsanitize=address"] -clang_lsan_cflags = config.clang_cflags + " -fsanitize=address " - -config.substitutions.append( ("%clang_lsan ", (" " + config.clang + " " + - clang_lsan_cflags + " ")) ) +config.substitutions.append( ("%clang_lsan ", build_invocation(clang_lsan_cflags)) ) +config.substitutions.append( ("%clangxx_lsan ", build_invocation(clang_lsan_cxxflags)) ) config.environment['ASAN_OPTIONS'] = 'detect_leaks=1' diff --git a/compiler-rt/test/lsan/LsanConfig/lit.cfg b/compiler-rt/test/lsan/LsanConfig/lit.cfg index 84faf9167a78..a55349614f7b 100644 --- a/compiler-rt/test/lsan/LsanConfig/lit.cfg +++ b/compiler-rt/test/lsan/LsanConfig/lit.cfg @@ -19,12 +19,11 @@ lit_config.load_config(config, lsan_lit_cfg) config.name = 'LeakSanitizer-Standalone' -clang_lsan_cxxflags = config.clang_cxxflags + " -fsanitize=leak " +def build_invocation(compile_flags): + return " " + " ".join([config.clang] + compile_flags) + " " -config.substitutions.append( ("%clangxx_lsan ", (" " + config.clang + " " + - clang_lsan_cxxflags + " ")) ) +clang_lsan_cflags = config.clang_cflags + ["-fsanitize=leak"] +clang_lsan_cxxflags = config.clang_cxxflags + ["-fsanitize=leak"] -clang_lsan_cflags = config.clang_cflags + " -fsanitize=leak " - -config.substitutions.append( ("%clang_lsan ", (" " + config.clang + " " + - clang_lsan_cflags + " ")) ) +config.substitutions.append( ("%clang_lsan ", build_invocation(clang_lsan_cflags)) ) +config.substitutions.append( ("%clangxx_lsan ", build_invocation(clang_lsan_cxxflags)) ) diff --git a/compiler-rt/test/lsan/lit.common.cfg b/compiler-rt/test/lsan/lit.common.cfg index 96dc1b1f55fc..7175fe83b8c8 100644 --- a/compiler-rt/test/lsan/lit.common.cfg +++ b/compiler-rt/test/lsan/lit.common.cfg @@ -17,24 +17,17 @@ def get_required_attr(config, attr_name): lsan_lit_src_root = get_required_attr(config, 'lsan_lit_src_root') config.test_source_root = os.path.join(lsan_lit_src_root, 'TestCases') -clang_cxxflags = ("--driver-mode=g++ " - + "-g " - + "-O0 " - + "-m64 ") - -clang_cflags = ("-g " - + "-O0 " - + "-m64 ") - -config.clang_cxxflags = clang_cxxflags - -config.substitutions.append( ("%clangxx ", (" " + config.clang + " " + - clang_cxxflags + " ")) ) +clang_cflags = ["-g", "-O0", "-m64"] +clang_cxxflags = ["--driver-mode=g++"] + clang_cflags config.clang_cflags = clang_cflags +config.clang_cxxflags = clang_cxxflags -config.substitutions.append( ("%clang ", (" " + config.clang + " " + - clang_cflags + " ")) ) +def build_invocation(compile_flags): + return " " + " ".join([config.clang] + compile_flags) + " " + +config.substitutions.append( ("%clang ", build_invocation(clang_cflags)) ) +config.substitutions.append( ("%clangxx ", build_invocation(clang_cxxflags)) ) # LeakSanitizer tests are currently supported on x86-64 Linux only. if config.host_os not in ['Linux'] or config.host_arch not in ['x86_64']: diff --git a/compiler-rt/test/msan/lit.cfg b/compiler-rt/test/msan/lit.cfg index 3031e6aed63a..e14ddb69f373 100644 --- a/compiler-rt/test/msan/lit.cfg +++ b/compiler-rt/test/msan/lit.cfg @@ -15,13 +15,13 @@ clang_msan_cflags = ["-fsanitize=memory", "-fno-optimize-sibling-calls", "-g", "-m64"] -clang_msan_cxxflags = ["--driver-mode=g++ "] + clang_msan_cflags -config.substitutions.append( ("%clang_msan ", - " ".join([config.clang] + clang_msan_cflags) + - " ") ) -config.substitutions.append( ("%clangxx_msan ", - " ".join([config.clang] + clang_msan_cxxflags) + - " ") ) +clang_msan_cxxflags = ["--driver-mode=g++"] + clang_msan_cflags + +def build_invocation(compile_flags): + return " " + " ".join([config.clang] + compile_flags) + " " + +config.substitutions.append( ("%clang_msan ", build_invocation(clang_msan_cflags)) ) +config.substitutions.append( ("%clangxx_msan ", build_invocation(clang_msan_cxxflags)) ) # Default test suffixes. config.suffixes = ['.c', '.cc', '.cpp'] diff --git a/compiler-rt/test/tsan/lit.cfg b/compiler-rt/test/tsan/lit.cfg index b437dafa4609..55851f971d96 100644 --- a/compiler-rt/test/tsan/lit.cfg +++ b/compiler-rt/test/tsan/lit.cfg @@ -24,17 +24,19 @@ config.environment['TSAN_OPTIONS'] = tsan_options # Setup default compiler flags used with -fsanitize=thread option. # FIXME: Review the set of required flags and check if it can be reduced. -clang_tsan_cflags = ("-fsanitize=thread " - + "-g " - + "-Wall " - + "-lpthread " - + "-ldl " - + "-m64 ") -clang_tsan_cxxflags = "--driver-mode=g++ " + clang_tsan_cflags -config.substitutions.append( ("%clangxx_tsan ", (" " + config.clang + " " + - clang_tsan_cxxflags + " ")) ) -config.substitutions.append( ("%clang_tsan ", (" " + config.clang + " " + - clang_tsan_cflags + " ")) ) +clang_tsan_cflags = ["-fsanitize=thread", + "-g", + "-Wall", + "-lpthread", + "-ldl", + "-m64"] +clang_tsan_cxxflags = ["--driver-mode=g++"] + clang_tsan_cflags + +def build_invocation(compile_flags): + return " " + " ".join([config.clang] + compile_flags) + " " + +config.substitutions.append( ("%clang_tsan ", build_invocation(clang_tsan_cflags)) ) +config.substitutions.append( ("%clangxx_tsan ", build_invocation(clang_tsan_cxxflags)) ) # Define CHECK-%os to check for OS-dependent output. config.substitutions.append( ('CHECK-%os', ("CHECK-" + config.host_os))) diff --git a/compiler-rt/test/ubsan/AsanConfig/lit.cfg b/compiler-rt/test/ubsan/AsanConfig/lit.cfg index 407e5ec32e60..ee6407ea5853 100644 --- a/compiler-rt/test/ubsan/AsanConfig/lit.cfg +++ b/compiler-rt/test/ubsan/AsanConfig/lit.cfg @@ -17,9 +17,12 @@ lit_config.load_config(config, ubsan_lit_cfg) config.name = 'UndefinedBehaviorSanitizer-AddressSanitizer' +def build_invocation(compile_flags): + return " " + " ".join([config.clang] + compile_flags) + " " + +clang_ubsan_cflags = ["-fsanitize=address"] +clang_ubsan_cxxflags = ["--driver-mode=g++"] + clang_ubsan_cflags + # Define %clang and %clangxx substitutions to use in test RUN lines. -config.substitutions.append( ("%clang ", (" " + config.clang + - " -fsanitize=address ")) ) -config.substitutions.append( ("%clangxx ", (" " + config.clang + - " -fsanitize=address" + - " --driver-mode=g++ ")) ) +config.substitutions.append( ("%clang ", build_invocation(clang_ubsan_cflags)) ) +config.substitutions.append( ("%clangxx ", build_invocation(clang_ubsan_cxxflags)) ) diff --git a/compiler-rt/test/ubsan/UbsanConfig/lit.cfg b/compiler-rt/test/ubsan/UbsanConfig/lit.cfg index fcc93035c600..26fca0f67905 100644 --- a/compiler-rt/test/ubsan/UbsanConfig/lit.cfg +++ b/compiler-rt/test/ubsan/UbsanConfig/lit.cfg @@ -17,7 +17,12 @@ lit_config.load_config(config, ubsan_lit_cfg) config.name = 'UndefinedBehaviorSanitizer-Standalone' +def build_invocation(compile_flags): + return " " + " ".join([config.clang] + compile_flags) + " " + +clang_ubsan_cflags = [] +clang_ubsan_cxxflags = ["--driver-mode=g++"] + clang_ubsan_cflags + # Define %clang and %clangxx substitutions to use in test RUN lines. -config.substitutions.append( ("%clang ", (" " + config.clang + " ")) ) -config.substitutions.append( ("%clangxx ", (" " + config.clang + - " --driver-mode=g++ ")) ) +config.substitutions.append( ("%clang ", build_invocation(clang_ubsan_cflags)) ) +config.substitutions.append( ("%clangxx ", build_invocation(clang_ubsan_cxxflags)) ) diff --git a/compiler-rt/test/ubsan/lit.common.cfg b/compiler-rt/test/ubsan/lit.common.cfg index 23c85e9fa065..d4aa91af9a54 100644 --- a/compiler-rt/test/ubsan/lit.common.cfg +++ b/compiler-rt/test/ubsan/lit.common.cfg @@ -15,11 +15,6 @@ def get_required_attr(config, attr_name): ubsan_lit_tests_dir = get_required_attr(config, 'ubsan_lit_tests_dir') config.test_source_root = os.path.join(ubsan_lit_tests_dir, 'TestCases') -def DisplayNoConfigMessage(): - lit_config.fatal("No site specific configuration available! " + - "Try running your test from the build tree or running " + - "make check-ubsan") - # Default test suffixes. config.suffixes = ['.c', '.cc', '.cpp']