aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile2
-rw-r--r--tests/abort-nodump.c9
-rw-r--r--tests/abort.c2
-rw-r--r--tests/signal-interrupt.c26
4 files changed, 39 insertions, 0 deletions
diff --git a/tests/Makefile b/tests/Makefile
index 7468bfa..527c690 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -2,6 +2,7 @@
BIN_64 =\
abort.64\
+ abort-nodump.64\
cont.64\
exec.64\
exit.64\
@@ -13,6 +14,7 @@ BIN_64 =\
raise.64\
siginfo.64\
signal.64\
+ signal-interrupt.64\
stop.64\
threads.64\
tstp.64\
diff --git a/tests/abort-nodump.c b/tests/abort-nodump.c
new file mode 100644
index 0000000..9e13595
--- /dev/null
+++ b/tests/abort-nodump.c
@@ -0,0 +1,9 @@
+#include <sys/prctl.h>
+#include <stdlib.h>
+
+int
+main(void)
+{
+ prctl(PR_SET_DUMPABLE, 0);
+ abort();
+}
diff --git a/tests/abort.c b/tests/abort.c
index 3afda7b..aa9dac9 100644
--- a/tests/abort.c
+++ b/tests/abort.c
@@ -1,7 +1,9 @@
+#include <sys/prctl.h>
#include <stdlib.h>
int
main(void)
{
+ prctl(PR_SET_DUMPABLE, 1);
abort();
}
diff --git a/tests/signal-interrupt.c b/tests/signal-interrupt.c
new file mode 100644
index 0000000..7b6988f
--- /dev/null
+++ b/tests/signal-interrupt.c
@@ -0,0 +1,26 @@
+#include <signal.h>
+#include <time.h>
+#include <unistd.h>
+
+static void
+interrupt()
+{
+ write(-2, "xyzzy\n", 6);
+}
+
+int
+main(void)
+{
+ struct timespec ts = {0, 100000000L};
+ pid_t pid = getpid();
+ signal(SIGINT, interrupt);
+ if (fork() == 0) {
+ ts.tv_nsec /= 2;
+ nanosleep(&ts, NULL);
+ kill(pid, SIGINT);
+ } else {
+ nanosleep(&ts, NULL);
+ write(-1, "qwerty\n", 7);
+ }
+ return 0;
+}