[LTP] [PATCH] syscalls/clock_settime03: Fix testcases have been waiting, timeout failure

zhanglianjie zhanglianjie@uniontech.com
Fri Mar 4 07:52:10 CET 2022


If the system enables auto-synchronization time configuration,
this test case will wait until the timeout. Therefore,
the automatic synchronization time configuration of the system needs to be turned off in the setup phase.

message:
tst_test.c:1457: TINFO: Timeout per run is 0h 05m 00s
clock_settime03.c:35: TINFO: Testing variant: syscall with old kernel spec
tst_test.c:1506: TINFO: If you are running on slow machine, try exporting LTP_TIMEOUT_MUL > 1
tst_test.c:1507: TBROK: Test killed! (timeout?)

Signed-off-by: zhanglianjie <zhanglianjie@uniontech.com>

diff --git a/testcases/kernel/syscalls/clock_settime/clock_settime03.c b/testcases/kernel/syscalls/clock_settime/clock_settime03.c
index f196a257c..e783f1d3f 100644
--- a/testcases/kernel/syscalls/clock_settime/clock_settime03.c
+++ b/testcases/kernel/syscalls/clock_settime/clock_settime03.c
@@ -14,9 +14,11 @@

 #define TIMER_DELTA	3
 #define ALLOWED_DELTA	(50 * 1000) /* 50 ms */
+#define BUFF_SIZE PATH_MAX

 static struct tst_ts start, end;
 static struct tst_its its;
+static char cmd[BUFF_SIZE];

 static struct time64_variants variants[] = {
 #if (__NR_clock_settime != __LTP__NR_INVALID_SYSCALL)
@@ -31,6 +33,7 @@ static struct time64_variants variants[] = {
 static void setup(void)
 {
 	struct time64_variants *tv = &variants[tst_variant];
+	int ret;

 	tst_res(TINFO, "Testing variant: %s", tv->desc);
 	start.type = end.type = its.type = tv->ts_type;
@@ -40,6 +43,11 @@ static void setup(void)
 	    sizeof(start.ts.kern_old_ts.tv_sec) == 4) {
 		tst_brk(TCONF, "Not Y2038 safe to run test");
 	}
+
+	snprintf(cmd, sizeof(cmd), "timedatectl set-ntp false");
+	ret = tst_system(cmd);
+	if (ret)
+		tst_brk(TBROK | TST_ERR, "failed to timedatectl set-ntp");
 }

 static void run(void)
@@ -109,4 +117,8 @@ static struct tst_test test = {
 	.setup = setup,
 	.needs_root = 1,
 	.restore_wallclock = 1,
+	.needs_cmds = (const char *[]) {
+		"timedatectl",
+		NULL
+	},
 };
--
2.20.1





More information about the ltp mailing list