forked from OSchip/llvm-project
42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
# -*- Python -*-
|
|
|
|
# Common configuration for running leak detection tests under LSan/ASan.
|
|
|
|
import os
|
|
|
|
def get_required_attr(config, attr_name):
|
|
attr_value = getattr(config, attr_name, None)
|
|
if not attr_value:
|
|
lit.fatal("No attribute %r in test configuration! You may need to run "
|
|
"tests from your build directory or add this attribute "
|
|
"to lit.site.cfg " % attr_name)
|
|
return attr_value
|
|
|
|
# Setup source root.
|
|
lsan_lit_src_root = get_required_attr(config, 'lsan_lit_src_root')
|
|
config.test_source_root = os.path.join(lsan_lit_src_root, 'TestCases')
|
|
|
|
# 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)
|
|
|
|
clang_cxxflags = ("-ccc-cxx "
|
|
+ "-g "
|
|
+ "-O0 "
|
|
+ "-m64 ")
|
|
|
|
config.clang_cxxflags = clang_cxxflags
|
|
|
|
config.substitutions.append( ("%clangxx ", (" " + config.clang + " " +
|
|
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']:
|
|
config.unsupported = True
|
|
|
|
config.suffixes = ['.c', '.cc', '.cpp']
|