mirror of
https://github.com/golang/go
synced 2024-11-23 00:20:12 -07:00
cmd/go: add another test case for package/module ambiguity in 'go get'
For #37438 Change-Id: Iae00ef7f97144e85f4f710cdb3087c2548b4b8f0 Reviewed-on: https://go-review.googlesource.com/c/go/+/256799 Trust: Bryan C. Mills <bcmills@google.com> Trust: Jay Conrod <jayconrod@google.com> Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Michael Matloob <matloob@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
This commit is contained in:
parent
27280d8c14
commit
ae329abec0
16
src/cmd/go/testdata/mod/example.net_pkgremoved_v0.1.0.txt
vendored
Normal file
16
src/cmd/go/testdata/mod/example.net_pkgremoved_v0.1.0.txt
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
Written by hand.
|
||||
Test module with a root package added in v0.1.0 and removed in v0.2.0.
|
||||
|
||||
-- .mod --
|
||||
module example.net/pkgremoved
|
||||
|
||||
go 1.16
|
||||
-- .info --
|
||||
{"Version": "v0.1.0"}
|
||||
-- go.mod --
|
||||
module example.net/pkgremoved
|
||||
|
||||
go 1.16
|
||||
-- pkgremoved.go --
|
||||
// Package pkgremoved exists in v0.1.0.
|
||||
package pkgremoved
|
15
src/cmd/go/testdata/mod/example.net_pkgremoved_v0.2.0.txt
vendored
Normal file
15
src/cmd/go/testdata/mod/example.net_pkgremoved_v0.2.0.txt
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
Written by hand.
|
||||
Test module with a root package added in v0.1.0 and removed in v0.2.0.
|
||||
|
||||
-- .mod --
|
||||
module example.net/pkgremoved
|
||||
|
||||
go 1.16
|
||||
-- .info --
|
||||
{"Version": "v0.2.0"}
|
||||
-- go.mod --
|
||||
module example.net/pkgremoved
|
||||
|
||||
go 1.16
|
||||
-- README.txt --
|
||||
Package pkgremove was removed in v0.2.0.
|
15
src/cmd/go/testdata/mod/example.net_pkgremoved_v0.2.1.txt
vendored
Normal file
15
src/cmd/go/testdata/mod/example.net_pkgremoved_v0.2.1.txt
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
Written by hand.
|
||||
Test module with a root package added in v0.1.0 and removed in v0.2.0.
|
||||
|
||||
-- .mod --
|
||||
module example.net/pkgremoved
|
||||
|
||||
go 1.16
|
||||
-- .info --
|
||||
{"Version": "v0.2.1"}
|
||||
-- go.mod --
|
||||
module example.net/pkgremoved
|
||||
|
||||
go 1.16
|
||||
-- README.txt --
|
||||
Package pkgremove was removed in v0.2.0.
|
38
src/cmd/go/testdata/script/mod_get_patchmod.txt
vendored
Normal file
38
src/cmd/go/testdata/script/mod_get_patchmod.txt
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
# example.net/pkgremoved@v0.1.0 refers to a package.
|
||||
go get -d example.net/pkgremoved@v0.1.0
|
||||
|
||||
go list example.net/pkgremoved
|
||||
stdout '^example.net/pkgremoved'
|
||||
|
||||
# When we resolve a new dependency on example.net/other,
|
||||
# it will change the meaning of the path "example.net/pkgremoved"
|
||||
# from a package (at v0.1.0) to only a module (at v0.2.0).
|
||||
#
|
||||
# If we simultaneously 'get' that module at the query "patch", the module should
|
||||
# be upgraded to its patch release (v0.2.1) even though it no longer matches a
|
||||
# package.
|
||||
#
|
||||
# BUG(#37438): Today, the pattern is only interpreted as its initial kind
|
||||
# (a package), so the 'go get' invocation fails.
|
||||
|
||||
! go get -d example.net/pkgremoved@patch example.net/other@v0.1.0
|
||||
|
||||
stderr '^go get example.net/pkgremoved@patch: module example.net/pkgremoved@latest found \(v0.2.1\), but does not contain package example.net/pkgremoved$'
|
||||
|
||||
|
||||
-- go.mod --
|
||||
module example
|
||||
|
||||
go 1.16
|
||||
|
||||
replace (
|
||||
example.net/other v0.1.0 => ./other
|
||||
)
|
||||
-- other/go.mod --
|
||||
module example.net/other
|
||||
|
||||
go 1.16
|
||||
|
||||
require example.net/pkgremoved v0.2.0
|
||||
-- other/other.go --
|
||||
package other
|
Loading…
Reference in New Issue
Block a user