[compiler-rt] f2a1726 - [gwp_asan] Employ EXPECT_DEATH for zxtest compatibility
Caslyn Tonelli via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 18 14:57:55 PDT 2023
Author: Caslyn Tonelli
Date: 2023-04-18T21:57:30Z
New Revision: f2a1726d2199150918430a84f29cf8835bfe8e5a
URL: https://github.com/llvm/llvm-project/commit/f2a1726d2199150918430a84f29cf8835bfe8e5a
DIFF: https://github.com/llvm/llvm-project/commit/f2a1726d2199150918430a84f29cf8835bfe8e5a.diff
LOG: [gwp_asan] Employ EXPECT_DEATH for zxtest compatibility
Employ a similar tactic introduced by https://reviews.llvm.org/D94362
for gwp_asan tests. zxtest `ASSERT_DEATH` syntax differs from gtest in
that it expects a lambda.
zxtest does not have `EXPECT_DEATH`, so it introduced for Fuchsia builds
and wraps the expression with a lambda to create a compatible syntax
between zxtest and gtest for death tests.
An example of where this compatiblity is needed is in
`never_allocated.cpp`.
Differential Revision: https://reviews.llvm.org/D147189
Added:
Modified:
compiler-rt/lib/gwp_asan/tests/harness.h
compiler-rt/lib/gwp_asan/tests/never_allocated.cpp
Removed:
################################################################################
diff --git a/compiler-rt/lib/gwp_asan/tests/harness.h b/compiler-rt/lib/gwp_asan/tests/harness.h
index 3e859358c96bd..ae39a443bd0a0 100644
--- a/compiler-rt/lib/gwp_asan/tests/harness.h
+++ b/compiler-rt/lib/gwp_asan/tests/harness.h
@@ -15,6 +15,13 @@
#define ZXTEST_USE_STREAMABLE_MACROS
#include <zxtest/zxtest.h>
namespace testing = zxtest;
+// zxtest defines a
diff erent ASSERT_DEATH, taking a lambda and an error message
+// if death didn't occur, versus gtest taking a statement and a string to search
+// for in the dying process. zxtest doesn't define an EXPECT_DEATH, so we use
+// that in the tests below (which works as intended for gtest), and we define
+// EXPECT_DEATH as a wrapper for zxtest's ASSERT_DEATH. Note that zxtest drops
+// the functionality for checking for a particular message in death.
+#define EXPECT_DEATH(X, Y) ASSERT_DEATH(([&] { X; }), "")
#else
#include "gtest/gtest.h"
#endif
diff --git a/compiler-rt/lib/gwp_asan/tests/never_allocated.cpp b/compiler-rt/lib/gwp_asan/tests/never_allocated.cpp
index bd43b22daa1e8..2f695b4379861 100644
--- a/compiler-rt/lib/gwp_asan/tests/never_allocated.cpp
+++ b/compiler-rt/lib/gwp_asan/tests/never_allocated.cpp
@@ -25,7 +25,7 @@ TEST_P(BacktraceGuardedPoolAllocatorDeathTest, NeverAllocated) {
// in the posix crash handler.
char *volatile NeverAllocatedPtr = static_cast<char *>(Ptr) + 0x3000;
if (!Recoverable) {
- ASSERT_DEATH(*NeverAllocatedPtr = 0, DeathNeedle);
+ EXPECT_DEATH(*NeverAllocatedPtr = 0, DeathNeedle);
return;
}
More information about the llvm-commits
mailing list