blob: 6d2667937af3f77852c1479f3ae19d88680b26aa [file] [log] [blame]
# Go should refuse to build code that is too new according to go.mod.
# go.mod too new
env GOTOOLCHAIN=local
! go build .
stderr '^go: go.mod requires go >= 1.99999 \(running go 1\..+\)$'
# go.mod referenced from go.work too new
cp go.work.old go.work
! go build .
stderr '^go: module . listed in go.work file requires go >= 1.99999, but go.work lists go 1.10; to update it:\n\tgo work use$'
! go work sync
stderr '^go: cannot load module . listed in go.work file: go.mod requires go >= 1.99999 \(running go 1\..+\)$'
# go.work too new
cp go.work.new go.work
cp go.mod.old go.mod
! go build .
stderr '^go: go.work requires go >= 1.99999 \(running go 1\..+\)$'
# vendor too new
rm go.work
mv notvendor vendor
! go build -mod=vendor .
stderr '^go: golang.org/x/text in vendor'${/}'modules.txt requires go >= 1.99999 \(running go 1\..+\)$'
-- go.mod --
module example
go 1.99999
-- p.go --
package p
-- go.mod.old --
module example
go 1.10
-- go.work.new --
go 1.99999
use .
-- go.work.old --
go 1.10
use .
-- notvendor/modules.txt --
# golang.org/x/text v0.9.0
## explicit; go 1.99999
golang.org/x/text/internal/language