1#! /bin/sh
2
3dir=`dirname $0`
4
5./filter_stderr |
6
7perl -p -e 's/^Open AF_UNIX socket [0-9]*: <unknown>/Open AF_UNIX socket ...: <unknown>/' |
8perl -p -e 's/^Open (AF_UNIX socket|file descriptor) [0-9]*: \/dev\/null/Open $1 ...: \/dev\/null/' |
9# Nb: on Darwin, /tmp is a symlink to /private/tmp, so sometimes it's
10# necessary to filter out the "/private" part.
11perl -p -e 's/^Open (AF_UNIX socket|file descriptor) [0-9]*: (\/private)?\/tmp\/(sock|data1|data2|file)\.[0-9]*/Open $1 ...: \/tmp\/$3/' |
12perl -p -e 's/^Open file descriptor [0-9]*: .*/Open file descriptor ...: .../' |
13perl -p -e 's/^Open file descriptor [0-9]*:$/Open file descriptor ...:/' |
14perl -p -e 's/127.0.0.1:[0-9]*/127.0.0.1:.../g' |
15
16# Stack traces showing where fds were created have lots of variations:
17# different numbers of entries, line numbers or not depending on whether
18# libc debug info is present, 'main' vs. '(below main)', etc.  
19#
20# So we just cut out the entire stack trace.  It's coarse but effective;
21# before we did this we had a plethora of expected outputs, with only
22# painfully minor variations between them.
23perl -p -0 -e 's/(Open[^\n]*\n)(   (at|by)[^\n]*\n)+/$1   ...\n/gs'
24
25
26