]> granicus.if.org Git - strace/commitdiff
tests: robustify strace -k tests
authorDmitry V. Levin <ldv@altlinux.org>
Sat, 7 Apr 2018 23:35:45 +0000 (23:35 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 7 Apr 2018 23:35:45 +0000 (23:35 +0000)
Allow __getpid as an alternative name for getpid,
allow __kernel_vsyscall after getpid.

* tests/strace-k.expected: New file.
* tests/strace-k-demangle.expected: Likewise.
* tests/Makefile.am (EXTRA_DIST): Add them.
* tests/strace-k-demangle.test (expected): Remove.
* tests/strace-k.test: Likewise.  Use grep to check the output.

tests/Makefile.am
tests/strace-k-demangle.expected [new file with mode: 0644]
tests/strace-k-demangle.test
tests/strace-k.expected [new file with mode: 0644]
tests/strace-k.test

index d88a09bc28a19f9c7b9e01e73301b55ef302b1f3..1b520c250a25abd61725b0a99f4e4ff68c046295 100644 (file)
@@ -392,7 +392,9 @@ EXTRA_DIST = \
        strace-E.expected \
        strace-T.expected \
        strace-ff.expected \
+       strace-k-demangle.expected \
        strace-k-demangle.test \
+       strace-k.expected \
        strace-k.test \
        strace-r.expected \
        strace.supp \
diff --git a/tests/strace-k-demangle.expected b/tests/strace-k-demangle.expected
new file mode 100644 (file)
index 0000000..e42e78f
--- /dev/null
@@ -0,0 +1 @@
+(__kernel_vsyscall )?(__)?getpid ns::f3\(int\) ns::f2\(int\) ns::f1\(int\) ns::f0\(int\) main
index 1616449f1fde52c3e2d31f34f8b25c0bc8c0c190..106a7004707139a6f1c526bae944b933b156a6f8 100755 (executable)
@@ -2,6 +2,5 @@
 # Check strace -k symbol names demangling.
 
 test_prog=../stack-fcall-mangled
-expected='getpid ns::f3(int) ns::f2(int) ns::f1(int) ns::f0(int) main '
 
 . "${srcdir=.}"/strace-k.test
diff --git a/tests/strace-k.expected b/tests/strace-k.expected
new file mode 100644 (file)
index 0000000..840d648
--- /dev/null
@@ -0,0 +1 @@
+(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main
index 2a21a9db467d70072051bafb831e5e7a1007ddd0..c189711d65b8d3a82c5bbdc4d15f04cafc5c7271 100755 (executable)
 [ -f /proc/self/maps ] ||
        framework_skip_ '/proc/self/maps is not available'
 
+check_prog grep
 check_prog sed
 check_prog tr
 
-: ${test_prog=../stack-fcall}
-: ${expected='getpid f3 f2 f1 f0 main '}
-
-run_prog "$test_prog"
+run_prog "${test_prog=../stack-fcall}"
 run_strace -e getpid -k $args
 
-result=$(sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
-       tr '\n' ' ')
+expected="$srcdir/$NAME.expected"
+sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
+       tr '\n' ' ' |sed 's/ $//' > "$OUT"
 
-test "$result" = "$expected" || {
-       echo "expected: \"$expected\""
-       echo "result: \"$result\""
+LC_ALL=C grep -E -x -f "$expected" < "$OUT" > /dev/null || {
+       cat >&2 <<__EOF__
+Failed pattern of expected output: $(cat "$expected")
+Actual output: $(cat "$OUT")
+__EOF__
        dump_log_and_fail_with "$STRACE $args output mismatch"
 }