18007ff1aSReid Kleckner# -*- Python -*- 28007ff1aSReid Kleckner 38007ff1aSReid Kleckner# Configuration file for 'lit' test runner. 48007ff1aSReid Kleckner# This file contains common config setup rules for unit tests in various 58007ff1aSReid Kleckner# compiler-rt testsuites. 68007ff1aSReid Kleckner 78007ff1aSReid Klecknerimport os 88007ff1aSReid Kleckner 98007ff1aSReid Klecknerimport lit.formats 108007ff1aSReid Kleckner 1151b4a7efSVitaly Buka# Copied from libcxx's config.py 1251b4a7efSVitaly Bukadef get_lit_conf(name, default=None): 1351b4a7efSVitaly Buka # Allow overriding on the command line using --param=<name>=<val> 1451b4a7efSVitaly Buka val = lit_config.params.get(name, None) 1551b4a7efSVitaly Buka if val is None: 1651b4a7efSVitaly Buka val = getattr(config, name, None) 1751b4a7efSVitaly Buka if val is None: 1851b4a7efSVitaly Buka val = default 1951b4a7efSVitaly Buka return val 2051b4a7efSVitaly Buka 21*f98ee40fSTobias Hieta 22*f98ee40fSTobias Hietaemulator = get_lit_conf("emulator", None) 2351b4a7efSVitaly Buka 248007ff1aSReid Kleckner# Setup test format 258007ff1aSReid Klecknerllvm_build_mode = getattr(config, "llvm_build_mode", "Debug") 2651b4a7efSVitaly Bukaconfig.test_format = lit.formats.GoogleTest(llvm_build_mode, "Test", emulator) 278007ff1aSReid Kleckner 288007ff1aSReid Kleckner# Setup test suffixes. 298007ff1aSReid Klecknerconfig.suffixes = [] 308007ff1aSReid Kleckner 318007ff1aSReid Kleckner# Tweak PATH to include llvm tools dir. 328007ff1aSReid Klecknerllvm_tools_dir = config.llvm_tools_dir 338007ff1aSReid Klecknerif (not llvm_tools_dir) or (not os.path.exists(llvm_tools_dir)): 348007ff1aSReid Kleckner lit_config.fatal("Invalid llvm_tools_dir config attribute: %r" % llvm_tools_dir) 35*f98ee40fSTobias Hietapath = os.path.pathsep.join((llvm_tools_dir, config.environment["PATH"])) 36*f98ee40fSTobias Hietaconfig.environment["PATH"] = path 378007ff1aSReid Kleckner 388007ff1aSReid Kleckner# Propagate the temp directory. Windows requires this because it uses \Windows\ 398007ff1aSReid Kleckner# if none of these are present. 40*f98ee40fSTobias Hietaif "TMP" in os.environ: 41*f98ee40fSTobias Hieta config.environment["TMP"] = os.environ["TMP"] 42*f98ee40fSTobias Hietaif "TEMP" in os.environ: 43*f98ee40fSTobias Hieta config.environment["TEMP"] = os.environ["TEMP"] 448007ff1aSReid Kleckner 45*f98ee40fSTobias Hietaif config.host_os == "Darwin": 468007ff1aSReid Kleckner # Only run up to 3 processes that require shadow memory simultaneously on 478007ff1aSReid Kleckner # 64-bit Darwin. Using more scales badly and hogs the system due to 488007ff1aSReid Kleckner # inefficient handling of large mmap'd regions (terabytes) by the kernel. 498007ff1aSReid Kleckner lit_config.parallelism_groups["shadow-memory"] = 3 50ca50840bSJulian Lettner 51b4121b33SDan Liew # Disable libmalloc nano allocator due to crashes running on macOS 12.0. 52b4121b33SDan Liew # rdar://80086125 53*f98ee40fSTobias Hieta config.environment["MallocNanoZone"] = "0" 54ca50840bSJulian Lettner 55ca50840bSJulian Lettner # We crash when we set DYLD_INSERT_LIBRARIES for unit tests, so interceptors 56ca50840bSJulian Lettner # don't work. 57*f98ee40fSTobias Hieta config.environment["ASAN_OPTIONS"] = "verify_interceptors=0" 58*f98ee40fSTobias Hieta config.environment["TSAN_OPTIONS"] = "verify_interceptors=0" 59