xref: /relibc/tests/signal.c (revision 8f502a3436ca0e8be244d625c29fbc7999bdae44)
1ecd8aca6SjD91mZM2 #include <signal.h>
2ecd8aca6SjD91mZM2 #include <stdio.h>
3c19cc8b7STibor Nagy #include <stdlib.h>
4ecd8aca6SjD91mZM2 #include <unistd.h>
5ecd8aca6SjD91mZM2 #include <errno.h>
6ecd8aca6SjD91mZM2 
79a0ea6ffSTibor Nagy #include "test_helpers.h"
89a0ea6ffSTibor Nagy 
handler(int sig)9ecd8aca6SjD91mZM2 void handler(int sig) {
10ecd8aca6SjD91mZM2     puts("Signal handler called!");
11ecd8aca6SjD91mZM2 }
12ecd8aca6SjD91mZM2 
main(void)13ff874c87STibor Nagy int main(void) {
1422558323SXavier L'Heureux     void (*signal_status)(int) = signal(SIGUSR1, handler);
15513f4ba5STibor Nagy     ERROR_IF(signal, signal_status, == SIG_ERR);
1622558323SXavier L'Heureux     signal_status = signal(SIGUSR1, handler);
17*0a558de7SXavier L'Heureux     ERROR_IF(signal, signal_status, != handler);
18ecd8aca6SjD91mZM2 
19ecd8aca6SjD91mZM2     puts("Raising...");
20513f4ba5STibor Nagy 
21513f4ba5STibor Nagy     int raise_status = raise(SIGUSR1);
22513f4ba5STibor Nagy     ERROR_IF(raise, raise_status, < 0);
23513f4ba5STibor Nagy 
24ecd8aca6SjD91mZM2     puts("Raised.");
25ecd8aca6SjD91mZM2 }
26