[LTP] [PATCH] lib/tst_test.c: Bugfix for heartbeat

Zhao Gongyi zhaogongyi@huawei.com
Tue Mar 23 14:56:04 CET 2021


When main process has been killed, its son process will be reaped by
init, and son process will send SIGUSR1 to the init process.

In busybox, send SIGUSR1 to the init process will trigger shutdown.

Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
---
 lib/tst_test.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/tst_test.c b/lib/tst_test.c
index 45753d1ca..91dfc6bf9 100644
--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -1156,7 +1156,15 @@ static void heartbeat(void)
 	if (tst_clock_gettime(CLOCK_MONOTONIC, &tst_start_time))
 		tst_res(TWARN | TERRNO, "tst_clock_gettime() failed");

-	kill(getppid(), SIGUSR1);
+	if (getppid() == 1) {
+		tst_res(TFAIL, "Main test process might have exit!");
+		/*
+		 * We need kill the task group immediately since the
+		 * main process has exit.
+		 */
+		kill(0, SIGKILL);
+	} else
+		kill(getppid(), SIGUSR1);
 }

 static void testrun(void)
--
2.17.1



More information about the ltp mailing list