| env GO111MODULE=on |
| |
| # TODO(bcmills): Convert the 'go test' calls below to 'go list -test' once 'go |
| # list' is more sensitive to package loading errors. |
| |
| # A test in the module's root package should work. |
| cd a/ |
| cp go.mod.empty go.mod |
| go test |
| stdout PASS |
| |
| cp go.mod.empty go.mod |
| go list -deps |
| ! stdout ^testing$ |
| |
| # list all should include test dependencies, like testing |
| cp go.mod.empty go.mod |
| go list all |
| stdout ^testing$ |
| stdout ^rsc.io/quote$ |
| stdout ^rsc.io/testonly$ |
| |
| # list -deps -tests should also include testing |
| # but not deps of tests of deps (rsc.io/testonly). |
| go list -deps -test |
| stdout ^testing$ |
| stdout ^rsc.io/quote$ |
| ! stdout ^rsc.io/testonly$ |
| |
| # list -test all should succeed |
| cp go.mod.empty go.mod |
| go list -test all |
| stdout '^testing' |
| |
| cp go.mod.empty go.mod |
| go test |
| stdout PASS |
| |
| # A test with the "_test" suffix in the module root should also work. |
| cd ../b/ |
| go test |
| stdout PASS |
| |
| # A test with the "_test" suffix of a *package* with a "_test" suffix should |
| # even work (not that you should ever do that). |
| cd ../c_test |
| go test |
| stdout PASS |
| |
| cd ../d_test |
| go test |
| stdout PASS |
| |
| cd ../e |
| go test |
| stdout PASS |
| |
| -- a/go.mod.empty -- |
| module example.com/user/a |
| |
| -- a/a.go -- |
| package a |
| |
| -- a/a_test.go -- |
| package a |
| |
| import "testing" |
| import _ "rsc.io/quote" |
| |
| func Test(t *testing.T) {} |
| |
| -- b/go.mod -- |
| module example.com/user/b |
| |
| -- b/b.go -- |
| package b |
| |
| -- b/b_test.go -- |
| package b_test |
| |
| import "testing" |
| |
| func Test(t *testing.T) {} |
| |
| -- c_test/go.mod -- |
| module example.com/c_test |
| |
| -- c_test/umm.go -- |
| // Package c_test is the non-test package for its import path! |
| package c_test |
| |
| -- c_test/c_test_test.go -- |
| package c_test_test |
| |
| import "testing" |
| |
| func Test(t *testing.T) {} |
| |
| -- d_test/go.mod -- |
| // Package d is an ordinary package in a deceptively-named directory. |
| module example.com/d |
| |
| -- d_test/d.go -- |
| package d |
| |
| -- d_test/d_test.go -- |
| package d_test |
| |
| import "testing" |
| |
| func Test(t *testing.T) {} |
| |
| -- e/go.mod -- |
| module example.com/e_test |
| |
| -- e/wat.go -- |
| // Package e_test is the non-test package for its import path, |
| // in a deceptively-named directory! |
| package e_test |
| |
| -- e/e_test.go -- |
| package e_test_test |
| |
| import "testing" |
| |
| func Test(t *testing.T) {} |