blob: c0341827e0fbced19b8e17871322ca0070ed73e7 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
* Author: Richard Logan
*
* Test Description:
* The process does a fork:
* 1) By the value returned by child's alarm(0), check whether child
* process cleared the previously specified alarm request or not.
* 2) By the value returned by parent's alarm(0), check whether parent
* process cleared the previously specified alarm request or not.
*/
#include <errno.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
#include "tst_test.h"
static void verify_alarm(void)
{
pid_t pid;
TEST(alarm(100));
pid = SAFE_FORK();
if (pid == 0) {
TEST(alarm(0));
if (TST_RET != 0) {
tst_res(TFAIL,
"alarm(100), fork, alarm(0) child's "
"alarm returned %ld", TST_RET);
} else {
tst_res(TPASS,
"alarm(100), fork, alarm(0) child's "
"alarm returned %ld", TST_RET);
}
exit(0);
}
TEST(alarm(0));
if (TST_RET != 100) {
tst_res(TFAIL,
"alarm(100), fork, alarm(0) parent's "
"alarm returned %ld", TST_RET);
} else {
tst_res(TPASS,
"alarm(100), fork, alarm(0) parent's "
"alarm returned %ld", TST_RET);
}
}
static struct tst_test test = {
.test_all = verify_alarm,
.forks_child = 1,
};