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

Zhao Gongyi
2021-03-23T13:56:04Z

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