Blame src/util/trim-valgrind-logs

Packit fd8b60
#!/bin/sh
Packit fd8b60
Packit fd8b60
files=vg.*
Packit fd8b60
Packit fd8b60
logname() {
Packit fd8b60
#	sed -n -e 7p $1 | awk '{print $2}'
Packit fd8b60
#	head -7 $1 | tail -1 | awk '{print $2}'
Packit fd8b60
	awk '{ if (NR == 9) { print $2; exit 0; } }' $1
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
show_names() {
Packit fd8b60
	if test "$*" = "$files" ; then
Packit fd8b60
		return
Packit fd8b60
	fi
Packit fd8b60
	for f in $* ; do
Packit fd8b60
		echo $f : `logname $f`
Packit fd8b60
	done
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
discard_list="/bin/ps /bin/sh /bin/stty /usr/bin/cmp awk cat chmod cmp cp env expr find grep kill mv rev rlogin rm sed sh sleep sort tail test touch wc whoami xargs"
Packit fd8b60
discard_list="$discard_list tcsh tokens"
Packit fd8b60
#discard_list="$discard_list ./rtest ./dbtest"
Packit fd8b60
# The t_inetd program's logs seem to always wind up incomplete for some
Packit fd8b60
# reason.  It's also not terribly important.
Packit fd8b60
discard_list="$discard_list /path/to/.../t_inetd"
Packit fd8b60
Packit fd8b60
filter() {
Packit fd8b60
	if test "$*" = "$files" ; then
Packit fd8b60
		return
Packit fd8b60
	fi
Packit fd8b60
	for f in $* ; do
Packit fd8b60
		n=`logname $f`
Packit fd8b60
		for d in $discard_list; do
Packit fd8b60
			if test "$n" = "$d"; then
Packit fd8b60
				echo rm $f : $n
Packit fd8b60
				rm $f
Packit fd8b60
				break
Packit fd8b60
			fi
Packit fd8b60
		done
Packit fd8b60
	done
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
kill_error_free_logs() {
Packit fd8b60
	if test "$*" = "$files" ; then
Packit fd8b60
		return
Packit fd8b60
	fi
Packit fd8b60
	grep -l "ERROR SUMMARY: 0 errors" $* | while read name ; do
Packit fd8b60
		echo rm $name : no errors in `logname $name`
Packit fd8b60
		rm $name
Packit fd8b60
	done
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
kill_no_leak_logs() {
Packit fd8b60
	if test "$*" = "$files" ; then
Packit fd8b60
	    return
Packit fd8b60
	fi
Packit fd8b60
	grep -l "ERROR SUMMARY: 0 errors" $* | \
Packit fd8b60
	    grep -l "definitely lost: 0 bytes" $* | \
Packit fd8b60
	    xargs grep -l "possibly lost: 0 bytes" | \
Packit fd8b60
	    xargs grep -l "still reachable: 0 bytes in 0 blocks" | \
Packit fd8b60
	    while read name ; do
Packit fd8b60
	    echo rm $name : no leaks or errors in `logname $name`
Packit fd8b60
	    rm $name
Packit fd8b60
	done
Packit fd8b60
}
Packit fd8b60
Packit fd8b60
filter $files
Packit fd8b60
kill_error_free_logs $files
Packit fd8b60
#kill_no_leak_logs $files
Packit fd8b60
echo Remaining files:
Packit fd8b60
show_names $files