| #! /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 |