 13420028e5
			
		
	
	13420028e5
	
	
	
		
			
			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" "$@"
 |