summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/asan/Unit/lit.site.cfg.in3
-rw-r--r--test/asan/lit.cfg3
-rw-r--r--test/lit.common.cfg6
-rw-r--r--test/tsan/Unit/lit.site.cfg.in3
-rw-r--r--test/tsan/lit.cfg3
-rw-r--r--unittests/lit.common.unit.cfg10
6 files changed, 28 insertions, 0 deletions
diff --git a/test/asan/Unit/lit.site.cfg.in b/test/asan/Unit/lit.site.cfg.in
index 55631a6d9..1c59a6bad 100644
--- a/test/asan/Unit/lit.site.cfg.in
+++ b/test/asan/Unit/lit.site.cfg.in
@@ -27,3 +27,6 @@ config.test_source_root = config.test_exec_root
# Set LD_LIBRARY_PATH to pick dynamic runtime up properly.
push_ld_library_path(config, config.compiler_rt_libdir)
+
+if config.host_os == 'Darwin':
+ config.parallelism_group = config.darwin_sanitizer_parallelism_group_func
diff --git a/test/asan/lit.cfg b/test/asan/lit.cfg
index 7703f5a31..5ebe414d4 100644
--- a/test/asan/lit.cfg
+++ b/test/asan/lit.cfg
@@ -241,3 +241,6 @@ else:
# Only run the tests on supported OSs.
if config.host_os not in ['Linux', 'Darwin', 'FreeBSD', 'Windows']:
config.unsupported = True
+
+if config.host_os == 'Darwin' and config.target_arch in ["x86_64", "x86_64h"]:
+ config.parallelism_group = "darwin-64bit-sanitizer"
diff --git a/test/lit.common.cfg b/test/lit.common.cfg
index b87599234..f0d7c0bff 100644
--- a/test/lit.common.cfg
+++ b/test/lit.common.cfg
@@ -216,3 +216,9 @@ llvm_config_cmd.wait()
# retries. We don't do this on otther platforms because it's slower.
if platform.system() == 'Windows':
config.test_retry_attempts = 2
+
+# Only run up to 3 64-bit sanitized processes simultaneously on Darwin.
+# Using more scales badly and hogs the system due to inefficient handling
+# of large mmap'd regions (terabytes) by the kernel.
+if platform.system() == 'Darwin':
+ lit_config.parallelism_groups["darwin-64bit-sanitizer"] = 3
diff --git a/test/tsan/Unit/lit.site.cfg.in b/test/tsan/Unit/lit.site.cfg.in
index 23894a839..a091ffe53 100644
--- a/test/tsan/Unit/lit.site.cfg.in
+++ b/test/tsan/Unit/lit.site.cfg.in
@@ -11,3 +11,6 @@ config.name = 'ThreadSanitizer-Unit'
# FIXME: De-hardcode this path.
config.test_exec_root = "@COMPILER_RT_BINARY_DIR@/lib/tsan/tests"
config.test_source_root = config.test_exec_root
+
+if config.host_os == 'Darwin':
+ config.parallelism_group = config.darwin_sanitizer_parallelism_group_func
diff --git a/test/tsan/lit.cfg b/test/tsan/lit.cfg
index 5d82cc9d4..f9ae539ba 100644
--- a/test/tsan/lit.cfg
+++ b/test/tsan/lit.cfg
@@ -83,3 +83,6 @@ if config.host_os not in ['FreeBSD', 'Linux', 'Darwin']:
# because the test hangs.
if config.target_arch != 'aarch64':
config.available_features.add('stable-runtime')
+
+if config.host_os == 'Darwin' and config.target_arch in ["x86_64", "x86_64h"]:
+ config.parallelism_group = "darwin-64bit-sanitizer"
diff --git a/unittests/lit.common.unit.cfg b/unittests/lit.common.unit.cfg
index 2bd8f376f..475b22d41 100644
--- a/unittests/lit.common.unit.cfg
+++ b/unittests/lit.common.unit.cfg
@@ -28,3 +28,13 @@ if 'TMP' in os.environ:
config.environment['TMP'] = os.environ['TMP']
if 'TEMP' in os.environ:
config.environment['TEMP'] = os.environ['TEMP']
+
+if config.host_os == 'Darwin':
+ # Only run up to 3 64-bit sanitized processes simultaneously on Darwin.
+ # Using more scales badly and hogs the system due to inefficient handling
+ # of large mmap'd regions (terabytes) by the kernel.
+ lit_config.parallelism_groups["darwin-64bit-sanitizer"] = 3
+
+ def darwin_sanitizer_parallelism_group_func(test):
+ return "darwin-64bit-sanitizer" if "x86_64" in test.file_path else ""
+ config.darwin_sanitizer_parallelism_group_func = darwin_sanitizer_parallelism_group_func