 28fab7b23d
			
		
	
	28fab7b23d
	
	
	
		
			
			Tests run with --valgrind call git commands through a wrapper script
that invokes valgrind on them.  This script (valgrind.sh) is in turn
invoked through symlinks created for each command in t/valgrind/bin/.
Since e6e7530d (test helpers: move test-* to t/helper/ subdirectory)
these symlinks have been broken for test helpers -- they point to the
old locations in the root of the build directory.  Fix that by teaching
the code for creating the links about the new location of the binaries,
and do the same in the wrapper script to allow it to find its payload.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			884 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			884 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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" "$@"
 |