13cab2bb3Spatrick# -*- Python -*- 23cab2bb3Spatrick 33cab2bb3Spatrick# Configuration file for 'lit' test runner. 43cab2bb3Spatrick# This file contains common config setup rules for unit tests in various 53cab2bb3Spatrick# compiler-rt testsuites. 63cab2bb3Spatrick 73cab2bb3Spatrickimport os 83cab2bb3Spatrick 93cab2bb3Spatrickimport lit.formats 103cab2bb3Spatrick 11d89ec533Spatrick# Copied from libcxx's config.py 12d89ec533Spatrickdef get_lit_conf(name, default=None): 13d89ec533Spatrick # Allow overriding on the command line using --param=<name>=<val> 14d89ec533Spatrick val = lit_config.params.get(name, None) 15d89ec533Spatrick if val is None: 16d89ec533Spatrick val = getattr(config, name, None) 17d89ec533Spatrick if val is None: 18d89ec533Spatrick val = default 19d89ec533Spatrick return val 20d89ec533Spatrick 21d89ec533Spatrickemulator = get_lit_conf('emulator', None) 22d89ec533Spatrick 233cab2bb3Spatrick# Setup test format 243cab2bb3Spatrickllvm_build_mode = getattr(config, "llvm_build_mode", "Debug") 25d89ec533Spatrickconfig.test_format = lit.formats.GoogleTest(llvm_build_mode, "Test", emulator) 263cab2bb3Spatrick 273cab2bb3Spatrick# Setup test suffixes. 283cab2bb3Spatrickconfig.suffixes = [] 293cab2bb3Spatrick 303cab2bb3Spatrick# Tweak PATH to include llvm tools dir. 313cab2bb3Spatrickllvm_tools_dir = config.llvm_tools_dir 323cab2bb3Spatrickif (not llvm_tools_dir) or (not os.path.exists(llvm_tools_dir)): 333cab2bb3Spatrick lit_config.fatal("Invalid llvm_tools_dir config attribute: %r" % llvm_tools_dir) 343cab2bb3Spatrickpath = os.path.pathsep.join((llvm_tools_dir, config.environment['PATH'])) 353cab2bb3Spatrickconfig.environment['PATH'] = path 363cab2bb3Spatrick 373cab2bb3Spatrick# Propagate the temp directory. Windows requires this because it uses \Windows\ 383cab2bb3Spatrick# if none of these are present. 393cab2bb3Spatrickif 'TMP' in os.environ: 403cab2bb3Spatrick config.environment['TMP'] = os.environ['TMP'] 413cab2bb3Spatrickif 'TEMP' in os.environ: 423cab2bb3Spatrick config.environment['TEMP'] = os.environ['TEMP'] 433cab2bb3Spatrick 443cab2bb3Spatrickif config.host_os == 'Darwin': 453cab2bb3Spatrick # Only run up to 3 processes that require shadow memory simultaneously on 463cab2bb3Spatrick # 64-bit Darwin. Using more scales badly and hogs the system due to 473cab2bb3Spatrick # inefficient handling of large mmap'd regions (terabytes) by the kernel. 483cab2bb3Spatrick lit_config.parallelism_groups["shadow-memory"] = 3 493cab2bb3Spatrick 50*810390e3Srobert # Disable libmalloc nano allocator due to crashes running on macOS 12.0. 51*810390e3Srobert # rdar://80086125 52*810390e3Srobert config.environment['MallocNanoZone'] = '0' 53*810390e3Srobert 54*810390e3Srobert # We crash when we set DYLD_INSERT_LIBRARIES for unit tests, so interceptors 55*810390e3Srobert # don't work. 56*810390e3Srobert config.environment['ASAN_OPTIONS'] = 'verify_interceptors=0' 57*810390e3Srobert config.environment['TSAN_OPTIONS'] = 'verify_interceptors=0' 58