Our coding guidelines say to not use `test` with `-a` and `-o` because
it can easily lead to bugs. Convert trivial cases where we still use
these to instead instead concatenate multiple invocations of `test` via
`&&` and `||`, respectively.
While not all of the converted instances can cause ambiguity, it is
worth getting rid of all of them regardless:
    - It becomes easier to reason about the code as we do not have to
      argue why one use of `-a`/`-o` is okay while another one isn't.
    - We don't encourage people to use these expressions.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			894 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			894 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" && test 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" "$@"
 |