diff mbox series

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

Message ID 20220310123355.26596-1-zhanglianjie@uniontech.com
State Changes Requested
Headers show
Series [v2] syscalls/clock_settime03: Fix testcases have been waiting, timeout failure | expand

Commit Message

zhanglianjie March 10, 2022, 12:33 p.m. UTC
From: zhanglianjie <zhanglianjie@uniontech.com>

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>

--
2.20.1

Comments

Richard Palethorpe Oct. 10, 2022, 9:32 a.m. UTC | #1
Hello,

Lianjie Zhang <zhanglianjie@uniontech.com> writes:

> From: zhanglianjie <zhanglianjie@uniontech.com>
>
> 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..ce0e7b4c4 100644
> --- a/testcases/kernel/syscalls/clock_settime/clock_settime03.c
> +++ b/testcases/kernel/syscalls/clock_settime/clock_settime03.c
> @@ -31,6 +31,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 +41,10 @@ static void setup(void)
>  	    sizeof(start.ts.kern_old_ts.tv_sec) == 4) {
>  		tst_brk(TCONF, "Not Y2038 safe to run test");
>  	}
> +
> +	ret = tst_system("timedatectl set-ntp false");

This still requires that systemd is being used to set the time.

Possibly we could setup a second timer which uses CLOCK_MONOTONIC. If
that expires before the other then we can check if the time was reset to
the present and signal TCONF.

> +	if (ret)
> +		tst_res(TINFO, "failed to timedatectl set-ntp");
>  }
>
>  static void run(void)
> --
> 2.20.1
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/clock_settime/clock_settime03.c b/testcases/kernel/syscalls/clock_settime/clock_settime03.c
index f196a257c..ce0e7b4c4 100644
--- a/testcases/kernel/syscalls/clock_settime/clock_settime03.c
+++ b/testcases/kernel/syscalls/clock_settime/clock_settime03.c
@@ -31,6 +31,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 +41,10 @@  static void setup(void)
 	    sizeof(start.ts.kern_old_ts.tv_sec) == 4) {
 		tst_brk(TCONF, "Not Y2038 safe to run test");
 	}
+
+	ret = tst_system("timedatectl set-ntp false");
+	if (ret)
+		tst_res(TINFO, "failed to timedatectl set-ntp");
 }

 static void run(void)