mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 23:04:20 +01:00
57 lines
926 B
Text
57 lines
926 B
Text
|
#!/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/tokugrind.XXXXXXXX`
|
||
|
args="--log-file=$logfile $args"
|
||
|
fi
|
||
|
|
||
|
valgrind $args
|
||
|
exitcode=$?
|
||
|
if [ $exitcode = 0 ] ; then
|
||
|
lines=`cat $logfile | wc -l`
|
||
|
if [ $lines -ne 0 ] ; then
|
||
|
exitcode=$errorexitcode
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [ $createlogfile != 0 ] ; then
|
||
|
cat $logfile >>/dev/stderr
|
||
|
rm $logfile
|
||
|
fi
|
||
|
|
||
|
exit $exitcode
|
||
|
|
||
|
|
||
|
|
||
|
|