[Lldb-commits] [lldb] [lldb][lit] Guard MallocNanoZone envvar in shell tests (PR #88824)
Chelsea Cassanova via lldb-commits
lldb-commits at lists.llvm.org
Mon Apr 15 17:36:24 PDT 2024
https://github.com/chelcassanova created https://github.com/llvm/llvm-project/pull/88824
Previously the MallocNanoZone envvar would be set to 0 on Darwin for the LLDB shell tests, but this should guarded behind ASan being enabled as opposed to simply running the test suite behind Darwin. This required that the LLVM_USE_SANITIZER option be added as an attribute to the lit config for shell tests.
>From 08a98fef47798998703df2b1deda0be69e2849cd Mon Sep 17 00:00:00 2001
From: Chelsea Cassanova <chelsea_cassanova at apple.com>
Date: Mon, 15 Apr 2024 15:29:06 -0700
Subject: [PATCH] [lldb][lit] Guard MallocNanoZone envvar in shell tests
Previously the MallocNanoZone envvar would be set to 0 on Darwin for the
LLDB shell tests, but this should guarded behind ASan being enabled as
opposed to simply running the test suite behind Darwin. This required
that the LLVM_USE_SANITIZER option be added as an attribute to the lit
config for shell tests.
---
lldb/test/Shell/lit.cfg.py | 13 +++++++++----
lldb/test/Shell/lit.site.cfg.py.in | 1 +
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/lldb/test/Shell/lit.cfg.py b/lldb/test/Shell/lit.cfg.py
index 290569576ac80d..8379c3183cc084 100644
--- a/lldb/test/Shell/lit.cfg.py
+++ b/lldb/test/Shell/lit.cfg.py
@@ -50,10 +50,15 @@
)
# Enable sanitizer runtime flags.
-config.environment["ASAN_OPTIONS"] = "detect_stack_use_after_return=1"
-config.environment["TSAN_OPTIONS"] = "halt_on_error=1"
-if platform.system() == "Darwin":
- config.environment["MallocNanoZone"] = "0"
+if "Address" in config.llvm_use_sanitizer:
+ config.environment["ASAN_OPTIONS"] = "detect_stack_use_after_return=1"
+ if platform.system() == "Darwin":
+ config.environment["MallocNanoZone"] = "0"
+
+if "Thread" in config.llvm_use_sanitizer:
+ config.environment["TSAN_OPTIONS"] = "halt_on_error=1"
+
+
# Support running the test suite under the lldb-repro wrapper. This makes it
# possible to capture a test suite run and then rerun all the test from the
diff --git a/lldb/test/Shell/lit.site.cfg.py.in b/lldb/test/Shell/lit.site.cfg.py.in
index 736dfc335732b5..b69e7bce1bc0be 100644
--- a/lldb/test/Shell/lit.site.cfg.py.in
+++ b/lldb/test/Shell/lit.site.cfg.py.in
@@ -26,6 +26,7 @@ config.lldb_enable_lua = @LLDB_ENABLE_LUA@
config.lldb_build_directory = "@LLDB_TEST_BUILD_DIRECTORY@"
config.have_lldb_server = @LLDB_TOOL_LLDB_SERVER_BUILD@
config.lldb_system_debugserver = @LLDB_USE_SYSTEM_DEBUGSERVER@
+config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
# The shell tests use their own module caches.
config.lldb_module_cache = os.path.join("@LLDB_TEST_MODULE_CACHE_LLDB@", "lldb-shell")
config.clang_module_cache = os.path.join("@LLDB_TEST_MODULE_CACHE_CLANG@", "lldb-shell")
More information about the lldb-commits
mailing list