mirror of
				https://github.com/traefik/traefik.git
				synced 2025-11-04 02:11:15 +01:00 
			
		
		
		
	… instead of /bin/bash, to work better on more platforms. Signed-off-by: Vincent Demeester <vincent@sbr.pm>
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
set -e
 | 
						|
 | 
						|
if ! test -e autogen/gen.go; then
 | 
						|
	echo >&2 'error: generate must be run before test-unit'
 | 
						|
	false
 | 
						|
fi
 | 
						|
 | 
						|
RED=$'\033[31m'
 | 
						|
GREEN=$'\033[32m'
 | 
						|
TEXTRESET=$'\033[0m' # reset the foreground colour
 | 
						|
 | 
						|
# This helper function walks the current directory looking for directories
 | 
						|
# holding certain files ($1 parameter), and prints their paths on standard
 | 
						|
# output, one per line.
 | 
						|
find_dirs() {
 | 
						|
    find . -not \( \
 | 
						|
         \( \
 | 
						|
         -path './integration/*' \
 | 
						|
         -o -path './.glide/*' \
 | 
						|
         -o -path './vendor/*' \
 | 
						|
         -o -path './.git/*' \
 | 
						|
         \) \
 | 
						|
         -prune \
 | 
						|
         \) -name "$1" -print0 | xargs -0n1 dirname | sort -u
 | 
						|
}
 | 
						|
 | 
						|
TESTFLAGS="-cover -coverprofile=cover.out ${TESTFLAGS}"
 | 
						|
 | 
						|
if [ -n "$VERBOSE" ]; then
 | 
						|
    TESTFLAGS="${TESTFLAGS} -v"
 | 
						|
fi
 | 
						|
 | 
						|
if [ -z "$TESTDIRS" ]; then
 | 
						|
    TESTDIRS=$(find_dirs '*_test.go')
 | 
						|
fi
 | 
						|
 | 
						|
TESTS_FAILED=()
 | 
						|
 | 
						|
for dir in $TESTDIRS; do
 | 
						|
    echo '+ go test' $TESTFLAGS "${dir}"
 | 
						|
    go test ${TESTFLAGS} ${dir}
 | 
						|
    if [ $? != 0 ]; then
 | 
						|
        TESTS_FAILED+=("$dir")
 | 
						|
        echo
 | 
						|
        echo "${RED}Tests failed: $dir${TEXTRESET}"
 | 
						|
        sleep 1 # give it a second, so observers watching can take note
 | 
						|
    fi
 | 
						|
done
 | 
						|
echo
 | 
						|
 | 
						|
# if some tests fail, we want the bundlescript to fail, but we want to
 | 
						|
# try running ALL the tests first, hence TESTS_FAILED
 | 
						|
if [ "${#TESTS_FAILED[@]}" -gt 0 ]; then
 | 
						|
    echo "${RED}Test failures in: ${TESTS_FAILED[@]}${TEXTRESET}"
 | 
						|
    echo
 | 
						|
    false
 | 
						|
else
 | 
						|
    echo "${GREEN}Test success${TEXTRESET}"
 | 
						|
    echo
 | 
						|
    true
 | 
						|
fi
 |