summaryrefslogtreecommitdiffstats
path: root/storage/tokudb/PerconaFT/scripts/tokugrind
diff options
context:
space:
mode:
Diffstat (limited to 'storage/tokudb/PerconaFT/scripts/tokugrind')
-rw-r--r--storage/tokudb/PerconaFT/scripts/tokugrind52
1 files changed, 52 insertions, 0 deletions
diff --git a/storage/tokudb/PerconaFT/scripts/tokugrind b/storage/tokudb/PerconaFT/scripts/tokugrind
new file mode 100644
index 00000000..a099a1f2
--- /dev/null
+++ b/storage/tokudb/PerconaFT/scripts/tokugrind
@@ -0,0 +1,52 @@
+#!/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
+ lines=$(wc -l <$logfile)
+ if [ $lines -ne 0 ] ; then
+ exitcode=$errorexitcode
+ fi
+fi
+
+if [ $createlogfile != 0 ] ; then
+ cat $logfile >>/dev/stderr
+ rm $logfile
+fi
+
+exit $exitcode