TESTS: add blocksig.c to run tests with all signals blocked

A problem was reported recently by some users of programs compiled
with Go 1.5 which by default blocks all signals before executing
processes, resulting in haproxy not receiving SIGUSR1 or even SIGTERM.

This program mimmicks this behaviour to make it easier to run tests.
It also displays the current signal mask. A simple test consists in
running it through itself.
This commit is contained in:
Willy Tarreau 2016-04-20 10:20:22 +02:00
parent 4920d70fa0
commit 07ecdea165
1 changed files with 16 additions and 0 deletions

16
tests/blocksig.c Normal file
View File

@ -0,0 +1,16 @@
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
int main(int argc, char **argv)
{
sigset_t new_sig, old_sig;
sigfillset(&new_sig);
sigprocmask(SIG_SETMASK, &new_sig, &old_sig);
printf("old_sig: %16Lx\n", *(unsigned long long*)&old_sig);
printf("new_sig: %16Lx\n", *(unsigned long long*)&new_sig);
argc--; argv++;
return argc ? execvp(*argv, argv) : 0;
}