mariadb/scripts/tokugrind
Leif Walsh 9715069cdf refs #5368 fix options to grep
git-svn-id: file:///svn/toku/tokudb@48173 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:01:09 -04:00

53 lines
1.3 KiB
Bash
Executable file

#!/usr/bin/env bash
function usage() {
echo "check for valgrind error and set the exit code"
}
function cleanup() {
if [ "$logfile" != "" ] ; then rm $logfile; fi
exit 1
}
args=$*
logfile=
createlogfile=0
errorexitcode=1
while [ $# -gt 0 ] ; do
arg=$1; shift
if [[ $arg =~ "--" ]] ; then
if [[ $arg =~ --log-file=(.*) ]] ; then
logfile=${BASH_REMATCH[1]}
elif [[ $arg =~ --error-exitcode=(.*) ]] ; then
errorexitcode=${BASH_REMATCH[1]}
fi
else
break
fi
done
if [ "$logfile" = "" ] ; then
createlogfile=1
trap cleanup SIGINT
logfile=`mktemp /tmp/$(whoami).tokugrind.XXXXXXXX`
args="--log-file=$logfile $args"
fi
valgrind $args
exitcode=$?
if [ $exitcode = 0 ] ; then
# ignore "empty" valgrind lines, and ignore the warning about not running well on OSX 10.8 that start with WARNING:
lines=`grep -v '==\ WARNING:\ ' $logfile | grep -v '[-]-[0-9]\+:[0-9]\+:syswrap-\ WARNING:\ Ignoring\ sigreturn\(\ \.\.\.,\ UC_RESET_ALT_STACK\ \);' | grep -v '^==[0-9]\+==\ $' | grep -v '^$' | grep -v '^UNKNOWN\ task\ message\ \[id\ 3403,\ to\ mach_task_self(),\ reply' | wc -l`
if [ $lines -ne 0 ] ; then
exitcode=$errorexitcode
fi
fi
if [ $createlogfile != 0 ] ; then
cat $logfile >>/dev/stderr
rm $logfile
fi
exit $exitcode