blob: 807c5bb2e045912923c75995b1a4c4742d3246da [file] [log] [blame]
/* -*- Mode: C; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
#include "util.h"
static void breakpoint(void) {}
static volatile int caught_sig = 0;
void catcher(__attribute__((unused)) int signum,
__attribute__((unused)) siginfo_t* siginfo_ptr,
__attribute__((unused)) void* ucontext_ptr) {
caught_sig = signum;
}
int main(void) {
struct sigaction sact;
int counter;
sigemptyset(&sact.sa_mask);
sact.sa_flags = SA_SIGINFO;
sact.sa_sigaction = catcher;
sigaction(SIGALRM, &sact, NULL);
alarm(1); /* timer will pop in 1 second */
for (counter = 0; counter >= 0 && !caught_sig; counter++) {
if (counter % 100000 == 0) {
write(STDOUT_FILENO, ".", 1);
}
}
atomic_printf("\nSignal %d caught, Counter is %d\n", caught_sig, counter);
test_assert(SIGALRM == caught_sig);
breakpoint();
atomic_puts("EXIT-SUCCESS");
return 0;
}