[libc-commits] [libc] c73c23f - [libc][NFC] Add a death test API adaptation macro

Michael Jones via libc-commits libc-commits at lists.llvm.org
Mon Feb 1 11:19:11 PST 2021


Author: Michael Jones
Date: 2021-02-01T19:19:04Z
New Revision: c73c23f2a91f5a454d782da9918e2160cfe66087

URL: https://github.com/llvm/llvm-project/commit/c73c23f2a91f5a454d782da9918e2160cfe66087
DIFF: https://github.com/llvm/llvm-project/commit/c73c23f2a91f5a454d782da9918e2160cfe66087.diff

LOG: [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

Added: 
    

Modified: 
    libc/test/src/assert/assert_test.cpp
    libc/test/src/fenv/enabled_exceptions_test.cpp
    libc/test/src/signal/raise_test.cpp
    libc/test/src/signal/sigaction_test.cpp
    libc/test/src/signal/sigdelset_test.cpp
    libc/test/src/signal/sigprocmask_test.cpp
    libc/test/src/stdlib/abort_test.cpp
    libc/utils/UnitTest/FuchsiaTest.h
    libc/utils/UnitTest/LibcTest.h

Removed: 
    


################################################################################
diff  --git a/libc/test/src/assert/assert_test.cpp b/libc/test/src/assert/assert_test.cpp
index b22f4984de99..77604768d476 100644
--- a/libc/test/src/assert/assert_test.cpp
+++ b/libc/test/src/assert/assert_test.cpp
@@ -21,7 +21,7 @@ TEST(LlvmLibcAssert, Enabled) {
         close(2);
         assert(0);
       },
-      -1);
+      WITH_SIGNAL(-1));
 }
 
 #define NDEBUG

diff  --git a/libc/test/src/fenv/enabled_exceptions_test.cpp b/libc/test/src/fenv/enabled_exceptions_test.cpp
index e9c2ae86b8c0..8b8649df3ae9 100644
--- a/libc/test/src/fenv/enabled_exceptions_test.cpp
+++ b/libc/test/src/fenv/enabled_exceptions_test.cpp
@@ -51,6 +51,6 @@ TEST(LlvmLibcExceptionStatusTest, RaiseAndCrash) {
           // exception.
           __llvm_libc::feraiseexcept(e);
         },
-        SIGFPE);
+        WITH_SIGNAL(SIGFPE));
   }
 }

diff  --git a/libc/test/src/signal/raise_test.cpp b/libc/test/src/signal/raise_test.cpp
index 4ec1ee20b4d6..282cedc8b89c 100644
--- a/libc/test/src/signal/raise_test.cpp
+++ b/libc/test/src/signal/raise_test.cpp
@@ -18,5 +18,5 @@ TEST(LlvmLibcSignalTest, Raise) {
 
   // 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/libc/test/src/signal/sigaction_test.cpp b/libc/test/src/signal/sigaction_test.cpp
index dab22956ed9e..4baf093deadc 100644
--- a/libc/test/src/signal/sigaction_test.cpp
+++ b/libc/test/src/signal/sigaction_test.cpp
@@ -53,7 +53,7 @@ TEST(LlvmLibcSigaction, CustomAction) {
   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/libc/test/src/signal/sigdelset_test.cpp b/libc/test/src/signal/sigdelset_test.cpp
index b490a0881831..c4947a38b384 100644
--- a/libc/test/src/signal/sigdelset_test.cpp
+++ b/libc/test/src/signal/sigdelset_test.cpp
@@ -32,5 +32,5 @@ TEST(LlvmLibcSigdelset, UnblockOne) {
   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/libc/test/src/signal/sigprocmask_test.cpp b/libc/test/src/signal/sigprocmask_test.cpp
index 2b3a8f7cc303..e6463627ea9e 100644
--- a/libc/test/src/signal/sigprocmask_test.cpp
+++ b/libc/test/src/signal/sigprocmask_test.cpp
@@ -53,7 +53,7 @@ TEST_F(LlvmLibcSignalTest, BlockUnblock) {
   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/libc/test/src/stdlib/abort_test.cpp b/libc/test/src/stdlib/abort_test.cpp
index 8762f2ff611e..759fb0223b80 100644
--- a/libc/test/src/stdlib/abort_test.cpp
+++ b/libc/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/libc/utils/UnitTest/FuchsiaTest.h b/libc/utils/UnitTest/FuchsiaTest.h
index b7b5b48538b8..4b3d535eaeb3 100644
--- a/libc/utils/UnitTest/FuchsiaTest.h
+++ b/libc/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/libc/utils/UnitTest/LibcTest.h b/libc/utils/UnitTest/LibcTest.h
index adf86da7f4b5..a0ecf5a0b586 100644
--- a/libc/utils/UnitTest/LibcTest.h
+++ b/libc/utils/UnitTest/LibcTest.h
@@ -273,4 +273,6 @@ constexpr bool same_prefix(char const *lhs, char const *rhs, int const len) {
       return;                                                                  \
   } while (0)
 
+#define WITH_SIGNAL(X) X
+
 #endif // LLVM_LIBC_UTILS_UNITTEST_LIBCTEST_H


        


More information about the libc-commits mailing list