1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#! /bin/sh 2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browndir=`dirname $0` 4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownsed -e "s:_pthread_start (in /usr/lib/libSystem.B.dylib):(within libpthread-?.?.so):" | 6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown$dir/../../tests/filter_stderr_basic | 8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# Remove "drd, ..." line and the following copyright line. 10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# Remove line numbers referring to drd's source code. 11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# Remove libpthread's version number. 12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# Remove line numbers from stack traces. 13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownsed \ 14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "/^drd, a thread error detector$/d" \ 15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/^Allocation context: stack of thread \([0-9]*\), offset -[0-9]*$/Allocation context: stack of thread \1, offset .../" \ 16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "/^warning: evaluate_Dwarf3_Expr: unhandled DW_OP_.*/d" \ 17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e '/^warning: addVar:.*/d' \ 18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e 's/^Allocation context: Data section of .\//Allocation context: BSS section of /' \ 19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e '/^run: \/usr\/bin\/dsymutil.*/d' \ 20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/, in frame #[0-9]* of thread /, in frame #? of thread /" \ 21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/(tc20_verifywrap.c:261)/(tc20_verifywrap.c:262)/" \ 22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "/^Copyright (C) 2006-201., and GNU GPL'd, by Bart Van Assche.$/d" \ 23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/\([A-Za-z_]*\) (clone.S:[0-9]*)/\1 (in \/...libc...)/" \ 24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/[A-Za-z_]* (pthread_create.c:[0-9]*)/(within libpthread-?.?.so)/" \ 25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/[A-Za-z_]* (in [^ ]*libpthread-[0-9.]*\.so)/(within libpthread-?.?.so)/" \ 26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s:(within /lib[0-9]*/ld-[0-9.]*\.so):(within ld-?.?.so):" \ 27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/was held during [0-9][0-9]*/was held during .../" \ 28b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov-e "s: BSS section of [^<]*/: BSS section of :g" \ 29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s: vc \[[ ,:0-9]*\]: vc ...:g" \ 30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/[@\$*]* (drd_pthread_intercepts.c:/ (drd_pthread_intercepts.c:/" \ 31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/ (\([a-zA-Z_]*\.c\):[0-9]*)/ (\1:?)/" \ 32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/ (\([a-zA-Z_]*\.h\):[0-9]*)/ (\1:?)/" \ 33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "s/ (\([a-zA-Z_]*\.cpp\):[0-9]*)/ (\1:?)/" \ 34b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov-e "s/\( name [^ ]*\)-[0-9]*\( oflag \)/\1\2/" \ 35663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng-e '/^ by 0x[0-9a-fA-F]*: process_dl_debug (in \/lib[0-9]*\/ld-[0-9.]*\.so)$/d' \ 36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-e "/^For counts of detected and suppressed errors, rerun with: -v$/d" | 37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# Remove the message that more than hundred errors have been detected 39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# (consists of two lines) and also the empty line above it. 40ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownawk '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; }' | 41ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 42ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# Remove the message about experimental support for Darwin. 43ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownawk 'BEGIN{begin=1} { if ($0 == "WARNING: DRD support for Darwin is still considered as experimental.") { getline; getline; } else { if (begin) begin = 0; else print last_line; }; last_line = $0; } END { if (! begin) print last_line; }' | 44ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 45ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# Anonymise addresses 46ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown$dir/../../tests/filter_addresses 47ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 48