diff options
Diffstat (limited to '')
-rw-r--r-- | tests/Makefile | 2 | ||||
-rw-r--r-- | tests/abort-nodump.c | 9 | ||||
-rw-r--r-- | tests/abort.c | 2 | ||||
-rw-r--r-- | tests/signal-interrupt.c | 26 |
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; +} |