https://github.com/medismailben created 
https://github.com/llvm/llvm-project/pull/218981

PolicyStackDeathTest.GuardDestroyedOnDifferentThread and 
ProcessRunLockDeathTest.MoveLockedAcrossThreads deliberately trip 
thread-affinity checks that call report_fatal_error, so the forked death-test 
child dies via SIGABRT. On platforms with a system crash reporter that leaves a 
crash log behind for each run, which CI scrapes and reports as a test failure 
even though both tests pass.

Call llvm::sys::Process::PreventCoreFiles() as the first statement inside the 
EXPECT_DEATH block. EXPECT_DEATH forks by default, so this only affects the 
child process and leaves the runner's own signal handling alone. The assertions 
still hold: report_fatal_error writes to stderr before aborting, so the regex 
still matches, and the nonzero exit status satisfies ExitedUnsuccessfully.

>From 46105a282f1412510a64f5f377c0c0979df92716 Mon Sep 17 00:00:00 2001
From: Med Ismail Bennani <[email protected]>
Date: Wed, 19 Aug 2026 12:55:39 +0100
Subject: [PATCH] [lldb/test] Suppress crash reports from LLDB's gtest death
 tests

PolicyStackDeathTest.GuardDestroyedOnDifferentThread and
ProcessRunLockDeathTest.MoveLockedAcrossThreads deliberately trip
thread-affinity checks that call report_fatal_error, so the forked
death-test child dies via SIGABRT. On platforms with a system crash
reporter that leaves a crash log behind for each run, which CI scrapes
and reports as a test failure even though both tests pass.

Call llvm::sys::Process::PreventCoreFiles() as the first statement inside
the EXPECT_DEATH block. EXPECT_DEATH forks by default, so this only
affects the child process and leaves the runner's own signal handling alone.
The assertions still hold: report_fatal_error writes to stderr before
aborting, so the regex still matches, and the nonzero exit status
satisfies ExitedUnsuccessfully.

Signed-off-by: Med Ismail Bennani <[email protected]>
---
 lldb/unittests/Host/ProcessRunLockTest.cpp | 7 +++++++
 lldb/unittests/Utility/PolicyTest.cpp      | 6 ++++++
 2 files changed, 13 insertions(+)

diff --git a/lldb/unittests/Host/ProcessRunLockTest.cpp 
b/lldb/unittests/Host/ProcessRunLockTest.cpp
index 5a48ad250170c..e797cc13fcfba 100644
--- a/lldb/unittests/Host/ProcessRunLockTest.cpp
+++ b/lldb/unittests/Host/ProcessRunLockTest.cpp
@@ -8,6 +8,8 @@
 
 #include "lldb/Host/ProcessRunLock.h"
 
+#include "llvm/Support/Process.h"
+
 #include "gtest/gtest.h"
 
 #include <condition_variable>
@@ -177,6 +179,11 @@ TEST(ProcessRunLockDeathTest, MoveLockedAcrossThreads) {
   // "ProcessRunLocker" common prefix only.
   EXPECT_DEATH(
       {
+        // The abort below is expected, so keep it away from the system crash
+        // reporter, which would otherwise record it as a real crash. This must
+        // stay inside the death-test statement so only the forked child is
+        // affected.
+        llvm::sys::Process::PreventCoreFiles();
         std::thread t([locker = std::move(a)]() mutable { (void)locker; });
         t.join();
       },
diff --git a/lldb/unittests/Utility/PolicyTest.cpp 
b/lldb/unittests/Utility/PolicyTest.cpp
index 57919b57bdf0a..66c08f24eb5a5 100644
--- a/lldb/unittests/Utility/PolicyTest.cpp
+++ b/lldb/unittests/Utility/PolicyTest.cpp
@@ -8,6 +8,7 @@
 
 #include "lldb/Utility/Policy.h"
 #include "lldb/Utility/StreamString.h"
+#include "llvm/Support/Process.h"
 #include "gtest/gtest.h"
 
 #include <thread>
@@ -202,6 +203,11 @@ TEST(PolicyStackDeathTest, 
GuardDestroyedOnDifferentThread) {
   // where the violation is detected.
   EXPECT_DEATH(
       {
+        // The abort below is expected, so keep it away from the system crash
+        // reporter, which would otherwise record it as a real crash. This must
+        // stay inside the death-test statement so only the forked child is
+        // affected.
+        llvm::sys::Process::PreventCoreFiles();
         std::thread t([guard = std::move(outer)]() mutable { (void)guard; });
         t.join();
       },

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to