1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * Copyright (c) International Business Machines Corp., 2001 4 * Copyright (C) 2017 Cyril Hrubis <[email protected]> 5 * Copyright (c) Linux Test Project, 2002-2022 6 * Ported to LTP: Wayne Boyer 7 */ 8 9 /*\ 10 * [Description] 11 * 12 * Verify that any pending alarm() is canceled when seconds is zero. 13 */ 14 15 #include "tst_test.h" 16 17 static volatile int alarms_received; 18 sigproc(int sig)19static void sigproc(int sig) 20 { 21 if (sig == SIGALRM) 22 alarms_received++; 23 } 24 setup(void)25static void setup(void) 26 { 27 SAFE_SIGNAL(SIGALRM, sigproc); 28 } 29 verify_alarm(void)30static void verify_alarm(void) 31 { 32 TST_EXP_PASS_SILENT(alarm(2)); 33 sleep(1); 34 35 TST_EXP_VAL(alarm(0), 1); 36 37 /* Wait for signal SIGALRM */ 38 sleep(2); 39 40 TST_EXP_EQ_LU(alarms_received, 0); 41 } 42 43 static struct tst_test test = { 44 .setup = setup, 45 .test_all = verify_alarm, 46 }; 47