| // SPDX-License-Identifier: GPL-2.0-or-later |
| /* |
| * Copyright (c) Wipro Technologies Ltd, 2002. All Rights Reserved. |
| * |
| * This is a Phase I test for the prctl(2) system call. |
| * It is intended to provide a limited exposure of the system call. |
| */ |
| |
| #include <errno.h> |
| #include <signal.h> |
| #include <sys/prctl.h> |
| |
| #include "tst_test.h" |
| |
| static void verify_prctl(void) |
| { |
| int get_sig = 0; |
| |
| TEST(prctl(PR_SET_PDEATHSIG, SIGUSR2)); |
| if (TST_RET == -1) { |
| tst_res(TFAIL | TTERRNO, "prctl(PR_SET_PDEATHSIG) failed"); |
| return; |
| } |
| |
| tst_res(TPASS, "prctl(PR_SET_PDEATHSIG) succeeded"); |
| |
| TEST(prctl(PR_GET_PDEATHSIG, &get_sig)); |
| if (TST_RET == -1) { |
| tst_res(TFAIL | TTERRNO, "prctl(PR_GET_PDEATHSIG) failed"); |
| return; |
| } |
| |
| if (get_sig == SIGUSR2) { |
| tst_res(TPASS, |
| "prctl(PR_GET_PDEATHSIG) got expected death signal"); |
| } else { |
| tst_res(TFAIL, "prctl(PR_GET_PDEATHSIG) got death signal %d, expected %d", |
| get_sig, SIGUSR2); |
| } |
| } |
| |
| static struct tst_test test = { |
| .test_all = verify_prctl, |
| }; |