blob: 9d070c2c9f25269cf60b4215f5cf73f068b07738 [file] [log] [blame]
#! /bin/sh
dir=`dirname $0`
$dir/../../tests/filter_stderr_basic |
# Anonymise addresses
$dir/../../tests/filter_addresses |
# Remove "Memcheck, ..." line and the following copyright line.
sed "/^Memcheck, a memory error detector/ , /./ d" |
# Anonymise line numbers in mc_replace_strmem.c
sed "s/mc_replace_strmem.c:[0-9]*/mc_replace_strmem.c:.../" |
# Replace exit_group() with exit(), because you can get either on Linux
# depending on the system.
perl -p -e "s/param exit_group\(status\)/param exit(status)/" |
# Stack traces ending in syscalls often cause problems, with lots of libc
# variations: different numbers of entries, line numbers or not depending on
# whether libc debug info is present, 'writev' vs 'do_writev', 'main' vs.
# '(below main)', etc.
#
# So we just cut out the entire stack trace. It's coarse but effective, and
# there aren't that many cases like this, and the error line gives the
# syscall name.
#
# The '<' is to avoid matching the XML case; we don't use '>' because that
# appears in some of the syscall parameter names (eg "act->sa_handler").
perl -p -0 -e 's/(Syscall param[^\n<]*\n)( (at|by)[^\n]*\n)+/$1 ...\n/gs' |
# Leak check filtering.
sed "s/checked [0-9,]* bytes./checked ... bytes./" |
# More leak check filtering. For systems that do extra libc allocations
# (eg. Darwin) there may be extra (reachable, and thus not shown) loss
# records. So we filter out the loss record numbers.
perl -p -e "s/in loss record \d+ of \d+/in loss record ... of .../"