summary refs log tree commit diff
path: root/tools/run-test-valgrind.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/run-test-valgrind.sh')
-rwxr-xr-xtools/run-test-valgrind.sh26
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/run-test-valgrind.sh b/tools/run-test-valgrind.sh
new file mode 100755
index 00000000..506fff75
--- /dev/null
+++ b/tools/run-test-valgrind.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+LIBTOOL="$1"; shift
+VALGRIND="$1"; shift
+SUPPRESSIONS="$1"; shift
+TEST="$1"; shift
+
+LOGFILE="valgrind-`echo "$TEST" | tr -cd '[:alpha:]-'`.log"
+
+export G_SLICE=always-malloc
+export G_DEBUG=gc-friendly
+$LIBTOOL --mode=execute "$VALGRIND" \
+	--quiet \
+	--error-exitcode=1 \
+	--leak-check=full \
+	--gen-suppressions=all \
+	--suppressions="$SUPPRESSIONS" \
+	--log-file="$LOGFILE" \
+	"$TEST"
+RESULT=$?
+
+if [ $RESULT -ne 0 ]; then
+	echo "Don't forget to check the valgrind log at '`realpath $LOGFILE`'." >&2
+fi
+
+exit $RESULT