1
+ #! /usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ #
6
+ # Run all tests (not including functional)
7
+ # ./test-.sh
8
+ # ./test-unit.sh -v
9
+ #
10
+ # Run tests for one package
11
+ # PKG=./unit ./test-unit.sh
12
+ # PKG=ssh ./test-unit.sh
13
+ #
14
+
15
+ ARTIFACT_DIR=${ARTIFACT_DIR:=/ tmp/ artifacts}
16
+
17
+ export GOBIN=${PWD} /bin:${GOBIN}
18
+
19
+ # Use deps from vendor dir.
20
+ export GOFLAGS=" -mod=vendor"
21
+
22
+ # Invoke ./cover for HTML output
23
+ COVER=${COVER:- " -cover" }
24
+
25
+ # https://ci-operator-configresolver-ui-ci.apps.ci.l2s4.p1.openshiftapps.com/help#env
26
+ OPENSHIFT_CI=${OPENSHIFT_CI:= false}
27
+
28
+ TESTABLE=" ./pkg/... ./cmd/..."
29
+ FORMATTABLE=(cmd pkg)
30
+
31
+ # user has not provided PKG override
32
+ if [ -z " ${PKG} " ]; then
33
+ TEST=${TESTABLE}
34
+ FMT=(" ${FORMATTABLE[@]} " )
35
+
36
+ # user has provided PKG override
37
+ else
38
+ # strip out slashes and dots from PKG=./foo/
39
+ TEST=${PKG// \/ / }
40
+ TEST=${TEST// ./ }
41
+
42
+ # only run gofmt on packages provided by user
43
+ FMT=(" ${TEST[@]} " )
44
+ fi
45
+
46
+ # split TEST into an array and prepend repo path to each local package
47
+ read -ra split <<< " $TEST"
48
+ TEST=(" ${split[@]/#/ github.com/ openshift/ console-operator/ } " )
49
+
50
+ echo " Running tests..."
51
+ if [ " $OPENSHIFT_CI " = true ]; then
52
+ go test -v " ${COVER} " " $@ " " ${TEST[@]} " 2>&1 | tee " $ARTIFACT_DIR /test.out"
53
+ RESULT=" ${PIPESTATUS[0]} "
54
+ go-junit-report < " $ARTIFACT_DIR /test.out" > " $ARTIFACT_DIR /junit.xml"
55
+ if [ " $RESULT " -ne 0 ]; then
56
+ exit 255
57
+ fi
58
+ else
59
+ echo " go test " ${COVER} " " $@ " " ${TEST[@]} " "
60
+ go test " ${COVER} " " ${TEST[@]} "
61
+ fi
62
+
63
+ echo " Checking gofmt..."
64
+ fmtRes=$( gofmt -l " ${FMT[@]} " )
65
+ if [ -n " ${fmtRes} " ]; then
66
+ echo -e " gofmt checking failed:\n${fmtRes} "
67
+ exit 255
68
+ fi
69
+
70
+ echo " Checking govet..."
71
+ vetRes=$( go vet " ${TEST[@]} " )
72
+ if [ -n " ${vetRes} " ]; then
73
+ echo -e " govet checking failed:\n${vetRes} "
74
+ exit 255
75
+ fi
76
+
77
+ echo " Success"
0 commit comments