tests: robustify strace -k tests

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.
This commit is contained in:
Дмитрий Левин 2018-04-07 23:35:45 +00:00
parent 9574a6e231
commit 958cb40a6e
5 changed files with 14 additions and 10 deletions

View 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 \

View File

@ -0,0 +1 @@
(__kernel_vsyscall )?(__)?getpid ns::f3\(int\) ns::f2\(int\) ns::f1\(int\) ns::f0\(int\) main

View File

@ -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

1
tests/strace-k.expected Normal file
View File

@ -0,0 +1 @@
(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main

View File

@ -35,20 +35,21 @@
[ -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"
}