blob: 391ea86bd91fa3334f718030664898052b3f7e35 [file] [log] [blame]
# For 1.23+, vendored packages that are missing in modules.txt should result in an error.
cp incorrect_modules.txt vendor/modules.txt
# incorrect_modules is missing foo.com/internal/bar/b so the build should fail.
! go build ./vendor/foo.com/internal/bar/a
stderr 'cannot find module providing package foo.com/internal/bar/b: import lookup disabled by -mod=vendor'
stderr 'go: ignoring package foo.com/internal/bar/b which exists in the vendor directory but is missing from vendor/modules.txt. To sync the vendor directory run go mod vendor.'
cp correct_modules.txt vendor/modules.txt
go build ./vendor/foo.com/internal/bar/a
# For go versions < 1.23, vendored packages that are missing in modules.txt should not result in an error.
cp 122go.mod go.mod
cp incorrect_modules.txt vendor/modules.txt
# go version < 1.23 and incorrect_modules is missing foo.com/internal/bar/b so the build should not fail
go build ./vendor/foo.com/internal/bar/a
cp correct_modules.txt vendor/modules.txt
go build ./vendor/foo.com/internal/bar/a
-- 122go.mod --
module example.com/x
go 1.22
require "foo.com/internal/bar" v1.0.0
-- go.mod --
module example.com/x
go 1.23
require "foo.com/internal/bar" v1.0.0
-- incorrect_modules.txt --
# foo.com/internal/bar v1.0.0
## explicit
foo.com/internal/bar/a
-- correct_modules.txt --
# foo.com/internal/bar v1.0.0
## explicit
foo.com/internal/bar/a
foo.com/internal/bar/b
-- vendor/foo.com/internal/bar/a/a.go --
package a
import _ "foo.com/internal/bar/b"
-- vendor/foo.com/internal/bar/b/b.go --
package b