diff --git a/.travis.yml b/.travis.yml index 465683c..f953225 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,3 +11,6 @@ before_install: - if ! go get github.com/golang/tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi script: - $HOME/gopath/bin/goveralls -service=travis-ci + - bash test/compile_with_go110.sh + - bash test/compile_with_go111.sh + - bash test/compile_with_go111_inside_gopath.sh diff --git a/test/README.md b/test/README.md new file mode 100644 index 0000000..b820cc9 --- /dev/null +++ b/test/README.md @@ -0,0 +1 @@ +This directory contains integration tests that check that go-arg can be installed and compiled under both tgo 1.10 and go 1.11 (corresponding to the transition to the new go module system) diff --git a/test/compile_with_go110.sh b/test/compile_with_go110.sh new file mode 100644 index 0000000..bfa2c71 --- /dev/null +++ b/test/compile_with_go110.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# This test checks that we can correctly "go get" and then use the go-arg package +# under go 1.10, which was the last release before introduction of the new go +# module system. + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +docker run \ + --rm \ + -v $DIR/some-program:/src \ + -w /src \ + golang:1.10 \ + bash -c "go get github.com/alexflint/go-arg && go build -o /dev/null" diff --git a/test/compile_with_go111.sh b/test/compile_with_go111.sh new file mode 100644 index 0000000..fd20339 --- /dev/null +++ b/test/compile_with_go111.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# This test checks that we can compile some code that depends on go-arg when using go 1.11 +# with the new go module system active. + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +docker run \ + --rm \ + -v $DIR/some-program:/src \ + -w /src \ + golang:1.11 \ + go build -o /dev/null diff --git a/test/compile_with_go111_inside_gopath.sh b/test/compile_with_go111_inside_gopath.sh new file mode 100644 index 0000000..8755c0f --- /dev/null +++ b/test/compile_with_go111_inside_gopath.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# This test checks that we can correctly "go get" and then use the go-arg package using +# go 1.11 when the code is within the GOPATH (in which case modules are disabled by default). + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +docker run \ + --rm \ + -v $DIR/some-program:/go/src/some-program \ + -w /go/src/some-program \ + golang:1.11 \ + bash -c "go get github.com/alexflint/go-arg && go build -o /dev/null" diff --git a/test/some-program/go.mod b/test/some-program/go.mod new file mode 100644 index 0000000..c02bb1b --- /dev/null +++ b/test/some-program/go.mod @@ -0,0 +1,3 @@ +module some-program + +require github.com/alexflint/go-arg v1.0.0 diff --git a/test/some-program/go.sum b/test/some-program/go.sum new file mode 100644 index 0000000..602ee78 --- /dev/null +++ b/test/some-program/go.sum @@ -0,0 +1,10 @@ +github.com/alexflint/go-arg v1.0.0 h1:VWNnY3DyBHiq5lcwY2FlCE5t5qyHNV0o5i1bkCIHprU= +github.com/alexflint/go-arg v1.0.0/go.mod h1:Cto8k5VtkP4pp0EXiWD4ZJMFOOinZ38ggVcQ/6CGuRI= +github.com/alexflint/go-scalar v1.0.0 h1:NGupf1XV/Xb04wXskDFzS0KWOLH632W/EO4fAFi+A70= +github.com/alexflint/go-scalar v1.0.0/go.mod h1:GpHzbCOZXEKMEcygYQ5n/aa4Aq84zbxjy3MxYW0gjYw= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= diff --git a/test/some-program/main.go b/test/some-program/main.go new file mode 100644 index 0000000..bc6140f --- /dev/null +++ b/test/some-program/main.go @@ -0,0 +1,10 @@ +package main + +import "github.com/alexflint/go-arg" + +func main() { + var args struct { + Test string + } + arg.MustParse(&args) +}