[LTP] [PATCH v2] times03: don't assume process initial [us]time is 0

Jan Stancek jstancek@redhat.com
Fri Mar 9 08:29:26 CET 2018


times() runs immediately after fork(), but syscall alone
seems to be enough for some systems to already account ticks.

For example on arm64 with 4.14:
  tst_test.c:980: INFO: Timeout per run is 0h 05m 00s
  times03.c:102: PASS: buf1.tms_utime = 0
  times03.c:105: FAIL: buf1.tms_stime = 1
  ...

This patch replaces zero check with a comparison against a small
enough number < 5 (which should be between 5ms and 50ms depending
on CONFIG_HZ).

Suggested-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Jan Stancek <jstancek@redhat.com>
---
 testcases/kernel/syscalls/times/times03.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/testcases/kernel/syscalls/times/times03.c b/testcases/kernel/syscalls/times/times03.c
index 78d72d259ec1..c34faf5a2ff9 100644
--- a/testcases/kernel/syscalls/times/times03.c
+++ b/testcases/kernel/syscalls/times/times03.c
@@ -96,15 +96,15 @@ static void verify_times(void)
 	if (times(&buf1) == -1)
 		tst_brk(TBROK | TERRNO, "times()");
 
-	if (buf1.tms_utime != 0)
+	if (buf1.tms_utime > 5)
 		tst_res(TFAIL, "buf1.tms_utime = %li", buf1.tms_utime);
 	else
-		tst_res(TPASS, "buf1.tms_utime = 0");
+		tst_res(TPASS, "buf1.tms_utime > 5");
 
-	if (buf1.tms_stime != 0)
+	if (buf1.tms_stime > 5)
 		tst_res(TFAIL, "buf1.tms_stime = %li", buf1.tms_stime);
 	else
-		tst_res(TPASS, "buf1.tms_stime = 0");
+		tst_res(TPASS, "buf1.tms_stime > 5");
 
 	generate_utime();
 	generate_stime();
-- 
1.8.3.1



More information about the ltp mailing list