forked from mystiq/dex
a418e1c4e7
adds a client manager to handle business logic, leaving the repo for basic crud operations. Also adds client to the test script
60 lines
1.4 KiB
Bash
Executable file
60 lines
1.4 KiB
Bash
Executable file
#!/bin/bash -e
|
|
#
|
|
# Run all tests (not including functional)
|
|
# ./test
|
|
# ./test -v
|
|
#
|
|
# Run tests for one package
|
|
# PKG=./unit ./test
|
|
# PKG=ssh ./test
|
|
#
|
|
|
|
# Invoke ./cover for HTML output
|
|
COVER=${COVER:-"-cover"}
|
|
|
|
source ./env
|
|
|
|
if [ ! -d $GOPATH/pkg ]; then
|
|
echo "WARNING: No cached builds detected. Please run the ./build script to speed up future tests."
|
|
fi
|
|
|
|
TESTABLE="connector db integration pkg/crypto pkg/flag pkg/http pkg/time pkg/html functional/repo server session session/manager user user/api user/manager user/email email admin client client/manager"
|
|
FORMATTABLE="$TESTABLE cmd/dexctl cmd/dex-worker cmd/dex-overlord examples/app functional pkg/log"
|
|
|
|
# user has not provided PKG override
|
|
if [ -z "$PKG" ]; then
|
|
TEST=$TESTABLE
|
|
FMT=$FORMATTABLE
|
|
|
|
# user has provided PKG override
|
|
else
|
|
# strip out slashes and dots from PKG=./foo/
|
|
TEST=${PKG//\//}
|
|
TEST=${TEST//./}
|
|
|
|
# only run gofmt on packages provided by user
|
|
FMT="$TEST"
|
|
fi
|
|
|
|
# split TEST into an array and prepend repo path to each local package
|
|
split=(${TEST// / })
|
|
TEST=${split[@]/#/github.com/coreos/dex/}
|
|
|
|
echo "Running tests..."
|
|
go test ${COVER} $@ ${TEST}
|
|
|
|
echo "Checking gofmt..."
|
|
fmtRes=$(gofmt -l $FMT)
|
|
if [ -n "${fmtRes}" ]; then
|
|
echo -e "gofmt checking failed:\n${fmtRes}"
|
|
exit 255
|
|
fi
|
|
|
|
echo "Checking govet..."
|
|
vetRes=$(go vet $TEST)
|
|
if [ -n "${vetRes}" ]; then
|
|
echo -e "govet checking failed:\n${vetRes}"
|
|
exit 255
|
|
fi
|
|
|
|
echo "Success"
|