git/t/valgrind/valgrind.sh
Thomas Rast 95d9d5ec75 tests --valgrind: provide a mode without --track-origins
With --valgrind=memcheck-fast, the tests run under memcheck but
without the autodetected --track-origins.  If you just run valgrind to
see *if* there is any memory issue with your program, the extra
information is not needed, and it comes at a roughly 30% hit in
runtime.

While it is possible to achieve the same through GIT_VALGRIND_OPTIONS,
this should be more discoverable and hopefully encourage more users to
run their tests with valgrind.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-01 07:45:41 -07:00

29 lines
723 B
Bash
Executable file

#!/bin/sh
base=$(basename "$0")
TOOL_OPTIONS='--leak-check=no'
case "$GIT_VALGRIND_MODE" in
memcheck-fast)
;;
memcheck)
VALGRIND_VERSION=$(valgrind --version)
VALGRIND_MAJOR=$(expr "$VALGRIND_VERSION" : '[^0-9]*\([0-9]*\)')
VALGRIND_MINOR=$(expr "$VALGRIND_VERSION" : '[^0-9]*[0-9]*\.\([0-9]*\)')
test 3 -gt "$VALGRIND_MAJOR" ||
test 3 -eq "$VALGRIND_MAJOR" -a 4 -gt "$VALGRIND_MINOR" ||
TOOL_OPTIONS="$TOOL_OPTIONS --track-origins=yes"
;;
*)
TOOL_OPTIONS="--tool=$GIT_VALGRIND_MODE"
esac
exec valgrind -q --error-exitcode=126 \
--gen-suppressions=all \
--suppressions="$GIT_VALGRIND/default.supp" \
$TOOL_OPTIONS \
--log-fd=4 \
--input-fd=4 \
$GIT_VALGRIND_OPTIONS \
"$GIT_VALGRIND"/../../"$base" "$@"