| #!/bin/bash |
| set -e |
| |
| # Compile phase run by parallel in test-unit. No support for coverpkg |
| |
| dir=$1 |
| in_file="$dir/$(basename "$dir").test" |
| out_file="$DEST/precompiled/$dir.test" |
| # we want to use binary_extension() here, but we can't because it's in main.sh and this file gets re-execed |
| if [ "$(go env GOOS)" = 'windows' ]; then |
| in_file+='.exe' |
| out_file+='.exe' |
| fi |
| testcover=() |
| if [ "$HAVE_GO_TEST_COVER" ]; then |
| # if our current go install has -cover, we want to use it :) |
| mkdir -p "$DEST/coverprofiles" |
| coverprofile="docker${dir#.}" |
| coverprofile="$DEST/coverprofiles/${coverprofile//\//-}" |
| testcover=( -cover -coverprofile "$coverprofile" ) # missing $coverpkg |
| fi |
| if [ "$BUILDFLAGS_FILE" ]; then |
| readarray -t BUILDFLAGS < "$BUILDFLAGS_FILE" |
| fi |
| |
| if ! ( |
| cd "$dir" |
| go test "${testcover[@]}" -ldflags "$LDFLAGS" "${BUILDFLAGS[@]}" $TESTFLAGS -c |
| ); then |
| exit 1 |
| fi |
| |
| mkdir -p "$(dirname "$out_file")" |
| mv "$in_file" "$out_file" |
| echo "Precompiled: ${DOCKER_PKG}${dir#.}" |