summaryrefslogtreecommitdiffhomepage
path: root/.travis/tests.sh
blob: c58878ddc1e25570732cf81a20155908db3eb242 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env bash

# because things are never simple.
# See https://github.com/codecov/example-go#caveat-multiple-files

set -e
echo "" > coverage.txt

for d in $(go list ./... | grep -v vendor); do
    go test -race -coverprofile=profile.out -covermode=atomic $d
    if [ -f profile.out ]; then
        cat profile.out >> coverage.txt
        rm profile.out
    fi
    # integration tests
    go test -c -tags=integration -race -coverprofile=profile.out -covermode=atomic $d
    testbin="./$(basename $d).test"
    # only run it if it was built - i.e. if there are integ tests
    test -x "${testbin}" && sudo "./${testbin}"
    if [ -f profile.out ]; then
        cat profile.out >> coverage.txt
        rm profile.out
    fi
done

# check that we are not breaking some projects that depend on us. Remove this after moving to
# Go versioned modules, see https://github.com/insomniacslk/dhcp/issues/123

# Skip go1.9 for this check. rtr7/router7 depends on miekg/dns, which does not
# support go1.9
if [ "$TRAVIS_GO_VERSION" = "1.9" ]
then
    exit 0
fi

go get github.com/rtr7/router7/cmd/...
cd "${GOPATH}/src/github.com/rtr7/router7"
go build github.com/rtr7/router7/cmd/...