summaryrefslogtreecommitdiff
path: root/test/test-skeleton.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/test-skeleton.c')
-rw-r--r--test/test-skeleton.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/test-skeleton.c b/test/test-skeleton.c
index adfc8b75b..c61d09e82 100644
--- a/test/test-skeleton.c
+++ b/test/test-skeleton.c
@@ -190,6 +190,16 @@ timeout_handler (int sig __attribute__ ((unused)))
exit (1);
}
+static void
+__attribute__ ((noreturn))
+handler_killpid(int sig)
+{
+ kill(pid, SIGKILL); /* kill test */
+ signal(sig, SIG_DFL);
+ raise(sig); /* kill ourself */
+ _exit(128 + sig); /* paranoia */
+}
+
/* We provide the entry point here. */
int
main (int argc, char *argv[])
@@ -332,6 +342,10 @@ main (int argc, char *argv[])
exit (1);
}
+ signal (SIGTERM, handler_killpid);
+ signal (SIGINT, handler_killpid);
+ signal (SIGQUIT, handler_killpid);
+
/* Set timeout. */
#ifndef TIMEOUT
/* Default timeout is two seconds. */