# GO111MODULE=auto should only trigger outside GOPATH/src
env GO111MODULE=auto

cd $GOPATH/src/x/y/z
go env GOMOD
! stdout . # no non-empty lines

cd $GOPATH/src/x/y/z/w
go env GOMOD
! stdout .

cd $GOPATH/src/x/y
go env GOMOD
! stdout .

cd $GOPATH/foo
go env GOMOD
stdout foo[/\\]go.mod

cd $GOPATH/foo/bar/baz
go env GOMOD
stdout foo[/\\]go.mod

# GO111MODULE=on should trigger everywhere
env GO111MODULE=on

cd $GOPATH/src/x/y/z
go env GOMOD
stdout z[/\\]go.mod

cd $GOPATH/src/x/y/z/w
go env GOMOD
stdout z[/\\]go.mod

cd $GOPATH/src/x/y
! go env GOMOD
stderr 'cannot find main module root'

cd $GOPATH/foo
go env GOMOD
stdout foo[/\\]go.mod

cd $GOPATH/foo/bar/baz
go env GOMOD
stdout foo[/\\]go.mod

# GO111MODULE=off should trigger nowhere
env GO111MODULE=off

cd $GOPATH/src/x/y/z
go env GOMOD
! stdout .+

cd $GOPATH/foo
go env GOMOD
! stdout .+

cd $GOPATH/foo/bar/baz
go env GOMOD
! stdout .+

-- $GOPATH/src/x/y/z/go.mod --
module x/y/z
-- $GOPATH/src/x/y/z/w/w.txt --
-- $GOPATH/foo/go.mod --
module example.com/mod
-- $GOPATH/foo/bar/baz/quux.txt --
