summaryrefslogtreecommitdiff
path: root/sigchainlib/sigchain_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sigchainlib/sigchain_test.cc')
-rw-r--r--sigchainlib/sigchain_test.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/sigchainlib/sigchain_test.cc b/sigchainlib/sigchain_test.cc
index dfa3b37fcf..249fff1a5e 100644
--- a/sigchainlib/sigchain_test.cc
+++ b/sigchainlib/sigchain_test.cc
@@ -214,16 +214,20 @@ TEST_F(SigchainTest, EnsureFrontOfChain) {
void* libc = dlopen(kLibcSoName, RTLD_LAZY | RTLD_NOLOAD);
ASSERT_TRUE(libc);
+ auto libc_sigaction = reinterpret_cast<decltype(&sigaction)>(dlsym(libc, "sigaction"));
+ ASSERT_TRUE(libc_sigaction);
+
static sig_atomic_t called = 0;
struct sigaction action = {};
action.sa_flags = SA_SIGINFO;
action.sa_sigaction = [](int, siginfo_t*, void*) { called = 1; };
- ASSERT_EQ(0, sigaction(SIGSEGV, &action, nullptr));
+ ASSERT_EQ(0, libc_sigaction(SIGSEGV, &action, nullptr));
// Try before EnsureFrontOfChain.
RaiseHandled();
- ASSERT_EQ(0, called);
+ ASSERT_EQ(1, called);
+ called = 0;
RaiseUnhandled();
ASSERT_EQ(1, called);