env GO111MODULE=on

# 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

-- 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) {}
