]> granicus.if.org Git - strace/commitdiff
tests: fix expected output in strace-tt.test
authorDmitry V. Levin <ldv@altlinux.org>
Tue, 6 Dec 2016 08:50:31 +0000 (08:50 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 6 Dec 2016 15:27:08 +0000 (15:27 +0000)
If strace -tt 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-tt.test: Allow any time stamp between start and finish
of strace invocation.

tests/strace-tt.test

index 237646d93ceb0e4042f8fda014d91d9801221228..3f80001eb6f3e7b40ca76465a6ee687fdbeb4ba8 100755 (executable)
@@ -4,17 +4,25 @@
 
 . "${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 -tt -eexecve $args
-t1="$(date +%T)"
+s1="$(date +%s)"
 
-EXPECTED="$LOG.expected"
-cat > "$EXPECTED" << __EOF__
-($t0|$t1)\\.[[:digit:]]{6} execve\\("\\./sleep", \\["\\./sleep", "0"\\], \\[/\\* [[:digit:]]+ vars \\*/\\]\\) = 0
+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
+
+cat > "$EXP" << __EOF__
+($t_reg)\\.[[:digit:]]{6} execve\\("\\./sleep", \\["\\./sleep", "0"\\], \\[/\\* [[:digit:]]+ vars \\*/\\]\\) = 0
 __EOF__
 
-match_grep "$LOG" "$EXPECTED"
-rm -f "$EXPECTED"
+match_grep "$LOG" "$EXP"
+rm -f "$EXP"