xref: /llvm-project/compiler-rt/unittests/lit.common.unit.cfg.py (revision f98ee40f4b5d7474fc67e82824bf6abbaedb7b1c)
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