Home | History | Annotate | Download | only in gdbserver_tests
      1 #include <stdio.h>
      2 #include <signal.h>
      3 #include <unistd.h>
      4 static int sigalrm_received = 0;
      5 
      6 static void sigalrm_handler(int signr)
      7 {
      8    sigalrm_received++;
      9 }
     10 
     11 int main (int argc, char *argv[])
     12 {
     13    struct sigaction sa;
     14    fprintf(stderr, "starting ...\n");
     15    sa.sa_handler = sigalrm_handler;
     16    sigemptyset(&sa.sa_mask);
     17    sa.sa_flags = 0;
     18 
     19    if (sigaction (SIGALRM, &sa, NULL) != 0)
     20       perror("sigaction");
     21    if (kill(getpid(), SIGALRM) != 0)
     22       perror("kill 1");
     23 
     24    if (sigalrm_received == 1)
     25       fprintf (stderr, "ok: 1st SIGALRM received\n");
     26    else
     27       fprintf (stderr, "wrong 1st: unexpected value %d sigalrm_received\n",
     28                sigalrm_received);
     29 
     30    if (kill(getpid(), SIGALRM) != 0)
     31       perror("kill 2");
     32 
     33    if (sigalrm_received == 2)
     34       fprintf (stderr, "ok: 2nd SIGALRM received\n");
     35    else
     36       fprintf (stderr, "wrong 2nd: unexpected value %d sigalrm_received\n",
     37                sigalrm_received);
     38 
     39    return 0;
     40 }
     41