blob: cfdd89496a25b0645e35f1e8de41d36ad66ea3b0 [file] [log] [blame]
#! /bin/sh
dir=`dirname $0`
$dir/../../tests/filter_stderr_basic |
# Anonymise addresses
$dir/../../tests/filter_addresses |
# Perform Solaris-specific filtering.
if $dir/../../tests/os_test solaris; then
perl -p $dir/filter_stderr_solaris
else
cat
fi |
# get rid of the numbers in bits of text "Thread #n", "thread #n",
# "Thread n" and "thread n", "tid n"
# as these make some tests more scheduling sensitive -- those where
# there are multiple threads which play interchangeable roles.
sed \
-e "s/tid [0-9][0-9]*/tid #x/g" \
-e "s/hread #[0-9][0-9]*/hread #x/g" \
-e "s/hread [0-9][0-9]*/hread x/g" |
# Likewise for frame numbers, which depend on compilation.
sed -e "s/frame #[0-9][0-9]*/frame #x/g" | \
# Remove the message that more than hundred errors have been detected
# (consists of two lines) and also the empty line above it.
awk 'BEGIN{begin=1} {if ($0 == "More than 100 errors detected. Subsequent errors") { getline; getline; } else { if (begin) begin = 0; else print last_line; }; last_line = $0; } END { if (! begin) print last_line; }' |
# Merge sem_wait and sem_wait@*, as either could be used. Likewise for
# sem_post.
sed \
-e "s/sem_wait@\*/sem_wait/" \
-e "s/sem_post@\*/sem_post/" |
# Remove "Helgrind, ..." line and the following copyright line;
# also the standard postamble (does such a word exist?)
# And also remove pthread_create_WRK lines, as ppc64 stacktraces
# do not contain them (at least on gcc110/fedora18).
sed \
-e "/^Helgrind, a thread error detector/ , /./ d" \
-e "/^For counts of detected and suppressed errors, rerun with: -v$/d" \
-e "/^Use --history-level=approx or =none to gain increased speed, at$/d" \
-e "/^the cost of reduced accuracy of conflicting-access information$/d" \
-e "/pthread_create_WRK (hg_intercepts.c:/d" |
# Some arches return ENOSYS instead of EINVAL for undefined futex operations.
sed -e "s/with error code 38 (ENOSYS: Function not implemented)/with error code 22 (EINVAL: Invalid argument)/" |
$dir/../../helgrind/tests/filter_helgrind "$@"
exit 0