#!/bin/bash -e
#
# Run all coreos-cloudinit tests
#   ./test
#   ./test -v
#
# Run tests for one package
#   PKG=initialize ./test
#

# Invoke ./cover for HTML output
COVER=${COVER:-"-cover"}

source ./build

declare -a TESTPKGS=(initialize
                     system
                     datasource
                     datasource/configdrive
                     datasource/file
                     datasource/metadata
                     datasource/metadata/cloudsigma
                     datasource/metadata/digitalocean
                     datasource/metadata/ec2
                     datasource/proc_cmdline
                     datasource/url
                     pkg
                     network)

if [ -z "$PKG" ]; then
	GOFMTPATH="${TESTPKGS[*]} coreos-cloudinit.go"
	# prepend repo path to each package
	TESTPKGS="${TESTPKGS[*]/#/${REPO_PATH}/} ./"
else
	GOFMTPATH="$TESTPKGS"
	# strip out slashes and dots from PKG=./foo/
	TESTPKGS=${PKG//\//}
	TESTPKGS=${TESTPKGS//./}
	TESTPKGS=${TESTPKGS/#/${REPO_PATH}/}
fi

echo "Running tests..."
go test -i ${TESTPKGS}
go test ${COVER} $@ ${TESTPKGS}

echo "Checking gofmt..."
fmtRes=$(gofmt -l $GOFMTPATH)
if [ -n "$fmtRes" ]; then
	echo "$fmtRes"
	exit 1
fi

echo "Success"