jeudi 2 juin 2016

How do I skip a tests file if it is run on systems with go 1.4 and below?

I have a file containing some tests that should be run on Go 1.5+.

I am able to get the Go runtime version using runtime.Version() and doing various comparisons.

However, the test file imports golang.org/x/net/http2. The http2 package requires request.Cancel() from net/http, but that is only available on Go 1.5+.

That causes these errors in my CI environment causing the build to fail:

../../../golang.org/x/net/http2/transport.go:214: req.Cancel undefined (type *http.Request has no field or method Cancel)
../../../golang.org/x/net/http2/transport.go:218: req.Cancel undefined (type *http.Request has no field or method Cancel)
../../../golang.org/x/net/http2/transport.go:777: req.Cancel undefined (type *http.Request has no field or method Cancel)

I tried adding // +build go1.5 to the top of the file, but it didn't work.

Is there anyway I can limit a unit test file so that it is built and tested only on Go 1.5+ systems?

Aucun commentaire:

Enregistrer un commentaire