blob: a1de486ec1e25acd8ce1e1d4367579a88bba5c1d [file] [log] [blame]
/* -*- Mode: C; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
#include "util.h"
static void handler1(__attribute__((unused)) int sig,
__attribute__((unused)) siginfo_t* si,
__attribute__((unused)) void* p) {}
static void handler2(__attribute__((unused)) int sig,
__attribute__((unused)) siginfo_t* si,
__attribute__((unused)) void* p) {}
static void handler3(__attribute__((unused)) int sig,
__attribute__((unused)) siginfo_t* si,
__attribute__((unused)) void* p) {}
int main(void) {
struct sigaction sa;
struct sigaction old_sa;
sa.sa_sigaction = handler1;
sigemptyset(&sa.sa_mask);
sa.sa_flags = SA_SIGINFO;
sigaction(SIGUSR1, &sa, NULL);
sa.sa_sigaction = handler2;
old_sa.sa_sigaction = handler3;
sigaction(SIGUSR1, &sa, &old_sa);
test_assert(old_sa.sa_sigaction == handler1);
sigaction(SIGUSR1, NULL, &old_sa);
test_assert(old_sa.sa_sigaction == handler2);
atomic_puts("EXIT-SUCCESS");
return 0;
}