[libc][NFC] Add a death test API adaptation macro
Fuchsia's zxtest has a slightly different death test definition, and
this macro makes our death test API work on Fuchsia.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D95648
GitOrigin-RevId: c73c23f2a91f5a454d782da9918e2160cfe66087
diff --git a/test/src/assert/assert_test.cpp b/test/src/assert/assert_test.cpp
index b22f498..7760476 100644
--- a/test/src/assert/assert_test.cpp
+++ b/test/src/assert/assert_test.cpp
@@ -21,7 +21,7 @@
close(2);
assert(0);
},
- -1);
+ WITH_SIGNAL(-1));
}
#define NDEBUG
diff --git a/test/src/fenv/enabled_exceptions_test.cpp b/test/src/fenv/enabled_exceptions_test.cpp
index e9c2ae8..8b8649d 100644
--- a/test/src/fenv/enabled_exceptions_test.cpp
+++ b/test/src/fenv/enabled_exceptions_test.cpp
@@ -51,6 +51,6 @@
// exception.
__llvm_libc::feraiseexcept(e);
},
- SIGFPE);
+ WITH_SIGNAL(SIGFPE));
}
}
diff --git a/test/src/signal/raise_test.cpp b/test/src/signal/raise_test.cpp
index 4ec1ee2..282cedc 100644
--- a/test/src/signal/raise_test.cpp
+++ b/test/src/signal/raise_test.cpp
@@ -18,5 +18,5 @@
// SIGKILL is chosen because other fatal signals could be caught by sanitizers
// for example and incorrectly report test failure.
- EXPECT_DEATH([] { __llvm_libc::raise(SIGKILL); }, SIGKILL);
+ EXPECT_DEATH([] { __llvm_libc::raise(SIGKILL); }, WITH_SIGNAL(SIGKILL));
}
diff --git a/test/src/signal/sigaction_test.cpp b/test/src/signal/sigaction_test.cpp
index dab2295..4baf093 100644
--- a/test/src/signal/sigaction_test.cpp
+++ b/test/src/signal/sigaction_test.cpp
@@ -53,7 +53,7 @@
action.sa_handler = SIG_DFL;
EXPECT_THAT(__llvm_libc::sigaction(SIGUSR1, &action, nullptr), Succeeds());
- EXPECT_DEATH([] { __llvm_libc::raise(SIGUSR1); }, SIGUSR1);
+ EXPECT_DEATH([] { __llvm_libc::raise(SIGUSR1); }, WITH_SIGNAL(SIGUSR1));
}
TEST(LlvmLibcSigaction, Ignore) {
diff --git a/test/src/signal/sigdelset_test.cpp b/test/src/signal/sigdelset_test.cpp
index b490a08..c4947a3 100644
--- a/test/src/signal/sigdelset_test.cpp
+++ b/test/src/signal/sigdelset_test.cpp
@@ -32,5 +32,5 @@
EXPECT_THAT(__llvm_libc::sigfillset(&set), Succeeds());
EXPECT_THAT(__llvm_libc::sigdelset(&set, SIGUSR1), Succeeds());
EXPECT_THAT(__llvm_libc::sigprocmask(SIG_SETMASK, &set, nullptr), Succeeds());
- EXPECT_DEATH([] { __llvm_libc::raise(SIGUSR1); }, SIGUSR1);
+ EXPECT_DEATH([] { __llvm_libc::raise(SIGUSR1); }, WITH_SIGNAL(SIGUSR1));
}
diff --git a/test/src/signal/sigprocmask_test.cpp b/test/src/signal/sigprocmask_test.cpp
index 2b3a8f7..e646362 100644
--- a/test/src/signal/sigprocmask_test.cpp
+++ b/test/src/signal/sigprocmask_test.cpp
@@ -53,7 +53,7 @@
sigset_t sigset;
EXPECT_EQ(__llvm_libc::sigemptyset(&sigset), 0);
EXPECT_EQ(__llvm_libc::sigprocmask(SIG_SETMASK, &sigset, nullptr), 0);
- EXPECT_DEATH([] { __llvm_libc::raise(SIGUSR1); }, SIGUSR1);
+ EXPECT_DEATH([] { __llvm_libc::raise(SIGUSR1); }, WITH_SIGNAL(SIGUSR1));
EXPECT_EQ(__llvm_libc::sigaddset(&sigset, SIGUSR1), 0);
EXPECT_EQ(__llvm_libc::sigprocmask(SIG_SETMASK, &sigset, nullptr), 0);
EXPECT_EXITS([] { __llvm_libc::raise(SIGUSR1); }, 0);
diff --git a/test/src/stdlib/abort_test.cpp b/test/src/stdlib/abort_test.cpp
index 8762f2f..759fb02 100644
--- a/test/src/stdlib/abort_test.cpp
+++ b/test/src/stdlib/abort_test.cpp
@@ -14,5 +14,5 @@
TEST(LlvmLibcStdlib, abort) {
// -1 matches against any signal, which is necessary for now until
// __llvm_libc::abort() unblocks SIGABRT.
- EXPECT_DEATH([] { __llvm_libc::abort(); }, -1);
+ EXPECT_DEATH([] { __llvm_libc::abort(); }, WITH_SIGNAL(-1));
}
diff --git a/utils/UnitTest/FuchsiaTest.h b/utils/UnitTest/FuchsiaTest.h
index b7b5b48..4b3d535 100644
--- a/utils/UnitTest/FuchsiaTest.h
+++ b/utils/UnitTest/FuchsiaTest.h
@@ -11,4 +11,6 @@
#include <zxtest/zxtest.h>
+#define WITH_SIGNAL(X) #X
+
#endif // LLVM_LIBC_UTILS_UNITTEST_FUCHSIATEST_H
diff --git a/utils/UnitTest/LibcTest.h b/utils/UnitTest/LibcTest.h
index adf86da..a0ecf5a 100644
--- a/utils/UnitTest/LibcTest.h
+++ b/utils/UnitTest/LibcTest.h
@@ -273,4 +273,6 @@
return; \
} while (0)
+#define WITH_SIGNAL(X) X
+
#endif // LLVM_LIBC_UTILS_UNITTEST_LIBCTEST_H