[compiler-rt] Augment `uncaught-exception.test` fuzzer test to be msvc-compatible (PR #125924)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 5 12:09:05 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: David Justo (davidmrdavid)
<details>
<summary>Changes</summary>
Today, the `uncaught-exception.test` fuzzer test checks for the string "libFuzzer: deadly signal" in the program output as the result of an uncaught exception.
Although this is correct for `clang`, `msvc` reports a different error message: "libFuzzer: uncaught C++ exception". Since `msvc` reuses the `libFuzzer` infrastructure for ASan regression testing, it would help us greatly if the test handled the `msvc` divergence more gracefully.
**This PR:** augments this test so check for a different string (namely "libFuzzer: uncaught C++ exception") if the compiler target matches the `msvc` naming scheme.
I understand if this is outside the scope of support for LLVM as well, and I'm also open for different approaches here. Thanks!
---
Full diff: https://github.com/llvm/llvm-project/pull/125924.diff
1 Files Affected:
- (modified) compiler-rt/test/fuzzer/uncaught-exception.test (+6-3)
``````````diff
diff --git a/compiler-rt/test/fuzzer/uncaught-exception.test b/compiler-rt/test/fuzzer/uncaught-exception.test
index b055c88f6d9039..d1b98cfb7c74ba 100644
--- a/compiler-rt/test/fuzzer/uncaught-exception.test
+++ b/compiler-rt/test/fuzzer/uncaught-exception.test
@@ -4,7 +4,10 @@
REQUIRES: windows
RUN: %cpp_compiler %S/UncaughtException.cpp -o %t-UncaughtException
-RUN: not %run %t-UncaughtException 2>&1 | FileCheck %s
+# Clang will fail the test with 'deadly signal', but other compilers may fail with different error messages.
+# For example, msvc fails with 'uncaught C++ exception'. So the error we check depends on the compiler target.
+RUN: not %run %t-UncaughtException 2>&1 | FileCheck %s --check-prefixes=CHECK-CRASH,%if target={{.*-windows-msvc.*}} %{CHECK-MSVC%} %else %{CHECK-ERROR%}
-CHECK: ERROR: libFuzzer: deadly signal
-CHECK: Test unit written to ./crash
+CHECK-ERROR: ERROR: libFuzzer: deadly signal
+CHECK-MSVC: ERROR: libFuzzer: uncaught C++ exception
+CHECK-CRASH: Test unit written to ./crash
``````````
</details>
https://github.com/llvm/llvm-project/pull/125924
More information about the llvm-commits
mailing list