forked from OSchip/llvm-project
44 lines
1.3 KiB
Python
44 lines
1.3 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_config.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')
|
|
|
|
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 + " ")) )
|
|
|
|
config.clang_cflags = clang_cflags
|
|
|
|
config.substitutions.append( ("%clang ", (" " + config.clang + " " +
|
|
clang_cflags + " ")) )
|
|
|
|
# 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']
|