|  | #!/bin/sh | 
|  |  | 
|  | base=$(basename "$0") | 
|  | case "$base" in | 
|  | test-*) | 
|  | program="$GIT_VALGRIND/../../t/helper/$base" | 
|  | ;; | 
|  | *) | 
|  | program="$GIT_VALGRIND/../../$base" | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | TOOL_OPTIONS='--leak-check=no' | 
|  |  | 
|  | test -z "$GIT_VALGRIND_ENABLED" && | 
|  | exec "$program" "$@" | 
|  |  | 
|  | 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 \ | 
|  | "$program" "$@" |