summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/004-SignalTest/expected.txt4
-rw-r--r--test/004-SignalTest/signaltest.cc37
2 files changed, 2 insertions, 39 deletions
diff --git a/test/004-SignalTest/expected.txt b/test/004-SignalTest/expected.txt
index 847b56f823..b3a0e1cbe0 100644
--- a/test/004-SignalTest/expected.txt
+++ b/test/004-SignalTest/expected.txt
@@ -3,8 +3,4 @@ init signal test
Caught NullPointerException
Caught StackOverflowError
signal caught
-unblocked signal received
-unblocking blocked signal
-blocked signal received
-signal handler done
Signal test OK
diff --git a/test/004-SignalTest/signaltest.cc b/test/004-SignalTest/signaltest.cc
index a115c0e0e9..6dd63551fd 100644
--- a/test/004-SignalTest/signaltest.cc
+++ b/test/004-SignalTest/signaltest.cc
@@ -18,14 +18,13 @@
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
#include <sys/ucontext.h>
#include <unistd.h>
#include "base/macros.h"
static int signal_count;
-static const int kMaxSignal = 1;
+static const int kMaxSignal = 2;
#if defined(__i386__) || defined(__x86_64__)
#if defined(__APPLE__)
@@ -48,17 +47,6 @@ static const int kMaxSignal = 1;
#endif
#endif
-#define BLOCKED_SIGNAL SIGUSR1
-#define UNBLOCKED_SIGNAL SIGUSR2
-
-static void blocked_signal(int sig ATTRIBUTE_UNUSED) {
- printf("blocked signal received\n");
-}
-
-static void unblocked_signal(int sig ATTRIBUTE_UNUSED) {
- printf("unblocked signal received\n");
-}
-
static void signalhandler(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UNUSED,
void* context) {
printf("signal caught\n");
@@ -66,16 +54,6 @@ static void signalhandler(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UN
if (signal_count > kMaxSignal) {
abort();
}
-
- raise(UNBLOCKED_SIGNAL);
- raise(BLOCKED_SIGNAL);
- printf("unblocking blocked signal\n");
-
- sigset_t mask;
- sigemptyset(&mask);
- sigaddset(&mask, BLOCKED_SIGNAL);
- sigprocmask(SIG_UNBLOCK, &mask, nullptr);
-
#if defined(__arm__)
struct ucontext *uc = reinterpret_cast<struct ucontext*>(context);
struct sigcontext *sc = reinterpret_cast<struct sigcontext*>(&uc->uc_mcontext);
@@ -93,8 +71,6 @@ static void signalhandler(int sig ATTRIBUTE_UNUSED, siginfo_t* info ATTRIBUTE_UN
#else
UNUSED(context);
#endif
-
- printf("signal handler done\n");
}
static struct sigaction oldaction;
@@ -102,16 +78,13 @@ static struct sigaction oldaction;
extern "C" JNIEXPORT void JNICALL Java_Main_initSignalTest(JNIEnv*, jclass) {
struct sigaction action;
action.sa_sigaction = signalhandler;
- sigfillset(&action.sa_mask);
- sigdelset(&action.sa_mask, UNBLOCKED_SIGNAL);
+ sigemptyset(&action.sa_mask);
action.sa_flags = SA_SIGINFO | SA_ONSTACK;
#if !defined(__APPLE__) && !defined(__mips__)
action.sa_restorer = nullptr;
#endif
sigaction(SIGSEGV, &action, &oldaction);
- signal(BLOCKED_SIGNAL, blocked_signal);
- signal(UNBLOCKED_SIGNAL, unblocked_signal);
}
extern "C" JNIEXPORT void JNICALL Java_Main_terminateSignalTest(JNIEnv*, jclass) {
@@ -123,12 +96,6 @@ extern "C" JNIEXPORT void JNICALL Java_Main_terminateSignalTest(JNIEnv*, jclass)
char *go_away_compiler = nullptr;
extern "C" JNIEXPORT jint JNICALL Java_Main_testSignal(JNIEnv*, jclass) {
- // Unblock UNBLOCKED_SIGNAL.
- sigset_t mask;
- memset(&mask, 0, sizeof(mask));
- sigaddset(&mask, UNBLOCKED_SIGNAL);
- sigprocmask(SIG_UNBLOCK, &mask, nullptr);
-
#if defined(__arm__) || defined(__i386__) || defined(__aarch64__)
// On supported architectures we cause a real SEGV.
*go_away_compiler = 'a';