[LTP] [PATCH] syscalls: kill: Remove kill07
Ricardo B. Marlière
rbm@suse.com
Wed Jun 11 17:52:37 CEST 2025
From: Ricardo B. Marlière <rbm@suse.com>
The test case description reads:
"Test case to check that SIGKILL can not be caught."
It makes use of sigaction() to set up a handler for SIGKILL, but
according to its manual page:
"EINVAL An invalid signal was specified. This will also be generated if an
attempt is made to change the action for SIGKILL or SIGSTOP, which cannot
be caught or ignored."
Therefore, since the handler can never be executed, flag will never be set
to 1. This renders the test invalid.
Signed-off-by: Ricardo B. Marlière <rbm@suse.com>
---
runtest/syscalls | 1 -
testcases/kernel/syscalls/kill/.gitignore | 1 -
testcases/kernel/syscalls/kill/Makefile | 3 +-
testcases/kernel/syscalls/kill/kill07.c | 230 ------------------------------
4 files changed, 1 insertion(+), 234 deletions(-)
diff --git a/runtest/syscalls b/runtest/syscalls
index 8c40048cc7534c42a79c738bdb06a8ea7aa335ac..d5582ca8da01f11adba75a56d22cb6e5c4996c68 100644
--- a/runtest/syscalls
+++ b/runtest/syscalls
@@ -698,7 +698,6 @@ kill02 kill02
kill03 kill03
kill05 kill05
kill06 kill06
-kill07 kill07
kill08 kill08
kill10 kill10
kill11 kill11
diff --git a/testcases/kernel/syscalls/kill/.gitignore b/testcases/kernel/syscalls/kill/.gitignore
index 8188aa1083d92e25e654b9af32c15a4acbb6ab3d..f73696b9d076e6e9cae9359dd825b3324115ed67 100644
--- a/testcases/kernel/syscalls/kill/.gitignore
+++ b/testcases/kernel/syscalls/kill/.gitignore
@@ -2,7 +2,6 @@
/kill03
/kill05
/kill06
-/kill07
/kill08
/kill10
/kill11
diff --git a/testcases/kernel/syscalls/kill/Makefile b/testcases/kernel/syscalls/kill/Makefile
index 369eec8f21dd75adfafd810b32f75a376475809f..dfe5c3053801feeaa4c9fafe9097a34077798799 100644
--- a/testcases/kernel/syscalls/kill/Makefile
+++ b/testcases/kernel/syscalls/kill/Makefile
@@ -3,11 +3,10 @@
top_srcdir ?= ../../../..
-LTPLIBS = ipc newipc
+LTPLIBS = newipc
include $(top_srcdir)/include/mk/testcases.mk
-kill07: LTPLDLIBS = -lltpipc
kill05: LTPLDLIBS = -lltpnewipc
include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/kernel/syscalls/kill/kill07.c b/testcases/kernel/syscalls/kill/kill07.c
deleted file mode 100644
index ac4ebd9412413f3583a68a45d1dfe278408465d1..0000000000000000000000000000000000000000
--- a/testcases/kernel/syscalls/kill/kill07.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- *
- * Copyright (c) International Business Machines Corp., 2001
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
- * the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/*
- * NAME
- * kill07.c
- *
- * DESCRIPTION
- * Test case to check that SIGKILL can not be caught.
- *
- * ALGORITHM
- * call setup
- * setup some shared memory
- * loop if the -i option was given
- * set up to catch SIGKILL
- * if SIGKILL is caught set the shared memory flag.
- * fork a child
- * execute the kill system call
- * check the return value
- * if return value is -1
- * issue a FAIL message, break remaining tests and cleanup
- * if we are doing functional testing
- * if the process was terminated with the expected signal and the
- * signal was not caught.
- * issue a PASS message
- * otherwise
- * issue a FAIL message
- * call cleanup
- *
- * USAGE
- * kill07 [-c n] [-f] [-i n] [-I x] [-P x] [-t]
- * where, -c n : Run n copies concurrently.
- * -f : Turn off functionality Testing.
- * -i n : Execute test n times.
- * -I x : Execute test for x seconds.
- * -P x : Pause for x seconds between iterations.
- * -t : Turn on syscall timing.
- *
- * HISTORY
- * 07/2001 Ported by Wayne Boyer
- *
- * RESTRICTIONS
- * This test should be run as a non-root user.
- */
-
-#include "test.h"
-
-#include <signal.h>
-#include <errno.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <sys/wait.h>
-
-void cleanup(void);
-void setup(void);
-void sighandler(int sig);
-void do_child(void);
-
-char *TCID = "kill07";
-int TST_TOTAL = 1;
-int shmid1;
-extern key_t semkey;
-int *flag;
-
-extern int getipckey();
-extern void rm_shm(int);
-
-#define TEST_SIG SIGKILL
-
-int main(int ac, char **av)
-{
- int lc;
- pid_t pid;
- int exno, status, nsig, asig, ret;
- struct sigaction my_act, old_act;
-
- tst_parse_opts(ac, av, NULL, NULL);
-
- setup(); /* global setup */
-
- /* The following loop checks looping state if -i option given */
- for (lc = 0; TEST_LOOPING(lc); lc++) {
-
- /* reset tst_count in case we are looping */
- tst_count = 0;
- status = 1;
- exno = 1;
- my_act.sa_handler = sighandler;
- my_act.sa_flags = SA_RESTART;
- sigemptyset(&my_act.sa_mask);
-
- if ((shmid1 = shmget(semkey, (int)getpagesize(),
- 0666 | IPC_CREAT)) == -1) {
- tst_brkm(TBROK, cleanup,
- "Failed to setup shared memory");
- }
-
- if (*(flag = shmat(shmid1, 0, 0)) == -1) {
- tst_brkm(TBROK, cleanup,
- "Failed to attatch shared memory:%d", *flag);
- }
-
- *flag = 0;
-
- /* setup the signal handler */
- ret = sigaction(TEST_SIG, &my_act, &old_act);
-
- pid = tst_fork();
- if (pid < 0) {
- tst_brkm(TBROK, cleanup, "Fork of child failed");
- } else if (pid == 0) {
- do_child();
- } else {
- /* sighandler should not catch this signal */
- /* if it does flag will be set to 1 */
- sleep(1);
- TEST(kill(pid, TEST_SIG));
- waitpid(pid, &status, 0);
- }
-
- if (TEST_RETURN == -1) {
- tst_brkm(TFAIL, cleanup, "%s failed - errno = %d : %s",
- TCID, TEST_ERRNO, strerror(TEST_ERRNO));
- }
-
- /*
- * Check to see if the process was terminated with the
- * expected signal.
- */
- nsig = WTERMSIG(status);
- asig = WIFSIGNALED(status);
- if ((asig == 0) & (*flag == 1)) {
- tst_resm(TFAIL, "SIGKILL was unexpectedly"
- " caught");
- } else if ((asig == 1) & (nsig == TEST_SIG)) {
- tst_resm(TINFO, "received expected signal %d",
- nsig);
- tst_resm(TPASS,
- "Did not catch signal as expected");
- } else if (nsig) {
- tst_resm(TFAIL,
- "expected signal %d received %d",
- TEST_SIG, nsig);
- } else {
- tst_resm(TFAIL, "No signals received");
- }
-
- if (shmdt(flag)) {
- tst_brkm(TBROK, cleanup, "shmdt failed ");
- }
- }
-
- cleanup();
- tst_exit();
-}
-
-/*
- * sighandler() - try to catch SIGKILL
- */
-
-void sighandler(int sig)
-{
- /* do nothing */
- *flag = 1;
- return;
-}
-
-/*
- * do_child()
- */
-void do_child(void)
-{
- int exno = 1;
-
- sleep(300);
- tst_resm(TINFO, "Child never received a signal");
- exit(exno);
-}
-
-/*
- * setup() - performs all ONE TIME setup for this test
- */
-void setup(void)
-{
-
- TEST_PAUSE;
-
- /*
- * Create a temporary directory and cd into it.
- * This helps to ensure that a unique msgkey is created.
- * See libs/libltpipc/libipc.c for more information.
- */
- tst_tmpdir();
-
- /* get an IPC resource key */
- semkey = getipckey();
-
-}
-
-/*
- * cleanup() - performs all the ONE TIME cleanup for this test at completion
- * or premature exit.
- */
-void cleanup(void)
-{
-
- /*
- * remove the shared memory
- */
- rm_shm(shmid1);
-
- tst_rmdir();
-
-}
---
base-commit: bf9589d5bdeef15b3dbb03f896793306552d0d0f
change-id: 20250611-conversions-kill-a31e42d7bc24
Best regards,
--
Ricardo B. Marlière <rbm@suse.com>
More information about the ltp
mailing list