]> granicus.if.org Git - strace/commitdiff
tests: robustify strace-t.test
authorDmitry V. Levin <ldv@altlinux.org>
Fri, 21 Jul 2017 02:49:24 +0000 (02:49 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 21 Jul 2017 02:49:24 +0000 (02:49 +0000)
If strace -t is running too long, it might happen that time stamps
before and after its invocation differ for more than a second.
Adjust expected output to handle this rare but possible case.

* tests/strace-t.test: Allow any time stamp between start and finish
of strace invocation.

tests/strace-t.test

index 38070f30764ea382258fcf7da6aa1ac2c80c3fe4..73303aef184ecd76ad06ca0e43e931a6f7dc0c23 100755 (executable)
@@ -4,15 +4,26 @@
 
 . "${srcdir=.}/init.sh"
 
-run_prog_skip_if_failed date +%T > /dev/null
+run_prog_skip_if_failed date +%s > "$LOG"
+run_prog_skip_if_failed date +%T --date "@$(cat "$LOG")" > /dev/null
 run_prog ../sleep 0
 
-t0="$(date +%T)"
+s0="$(date +%s)"
 run_strace -t -eexecve $args
-t1="$(date +%T)"
+s1="$(date +%s)"
+
+s="$s0"
+t_reg=
+while [ "$s" -le "$s1" ]; do
+       t="$(date +%T --date "@$s")"
+       [ -z "$t_reg" ] && t_reg="$t" || t_reg="$t_reg|$t"
+       s=$(($s + 1))
+done
+t_reg="($t_reg)"
 
 cat > "$EXP" << __EOF__
-($t0|$t1) execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]* vars \\*/\\) = 0
+$t_reg execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]* vars \\*/\\) = 0
+$t_reg \\+\\+\\+ exited with 0 \\+\\+\\+
 __EOF__
 
 match_grep "$LOG" "$EXP"