mirror of
https://github.com/golang/go
synced 2024-09-30 18:18:32 -06:00
cmd/go/internal/module: fix inverted condition in MatchPathMajor
This was spotted in CL 200767. This change just ensures internal packages match their equivalents in x/mod. Also pulled in test added in CL 201517. Change-Id: I51d23d62697c256548f411930fcb6bccce51bf34 Reviewed-on: https://go-review.googlesource.com/c/go/+/201497 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
parent
02196d3657
commit
3b003c3edb
@ -503,14 +503,17 @@ func splitGopkgIn(path string) (prefix, pathMajor string, ok bool) {
|
|||||||
// MatchPathMajor reports whether the semantic version v
|
// MatchPathMajor reports whether the semantic version v
|
||||||
// matches the path major version pathMajor.
|
// matches the path major version pathMajor.
|
||||||
//
|
//
|
||||||
// MatchPathMajor returns true if and only if CheckPathMajor returns non-nil.
|
// MatchPathMajor returns true if and only if CheckPathMajor returns nil.
|
||||||
func MatchPathMajor(v, pathMajor string) bool {
|
func MatchPathMajor(v, pathMajor string) bool {
|
||||||
return CheckPathMajor(v, pathMajor) != nil
|
return CheckPathMajor(v, pathMajor) == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// CheckPathMajor returns a non-nil error if the semantic version v
|
// CheckPathMajor returns a non-nil error if the semantic version v
|
||||||
// does not match the path major version pathMajor.
|
// does not match the path major version pathMajor.
|
||||||
func CheckPathMajor(v, pathMajor string) error {
|
func CheckPathMajor(v, pathMajor string) error {
|
||||||
|
// TODO(jayconrod): return errors or panic for invalid inputs. This function
|
||||||
|
// (and others) was covered by integration tests for cmd/go, and surrounding
|
||||||
|
// code protected against invalid inputs like non-canonical versions.
|
||||||
if strings.HasPrefix(pathMajor, ".v") && strings.HasSuffix(pathMajor, "-unstable") {
|
if strings.HasPrefix(pathMajor, ".v") && strings.HasSuffix(pathMajor, "-unstable") {
|
||||||
pathMajor = strings.TrimSuffix(pathMajor, "-unstable")
|
pathMajor = strings.TrimSuffix(pathMajor, "-unstable")
|
||||||
}
|
}
|
||||||
|
@ -318,3 +318,26 @@ func TestUnescapePath(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMatchPathMajor(t *testing.T) {
|
||||||
|
for _, test := range []struct {
|
||||||
|
v, pathMajor string
|
||||||
|
want bool
|
||||||
|
}{
|
||||||
|
{"v0.0.0", "", true},
|
||||||
|
{"v0.0.0", "/v2", false},
|
||||||
|
{"v0.0.0", ".v0", true},
|
||||||
|
{"v0.0.0-20190510104115-cbcb75029529", ".v1", true},
|
||||||
|
{"v1.0.0", "/v2", false},
|
||||||
|
{"v1.0.0", ".v1", true},
|
||||||
|
{"v1.0.0", ".v1-unstable", true},
|
||||||
|
{"v2.0.0+incompatible", "", true},
|
||||||
|
{"v2.0.0", "", false},
|
||||||
|
{"v2.0.0", "/v2", true},
|
||||||
|
{"v2.0.0", ".v2", true},
|
||||||
|
} {
|
||||||
|
if got := MatchPathMajor(test.v, test.pathMajor); got != test.want {
|
||||||
|
t.Errorf("MatchPathMajor(%q, %q) = %v, want %v", test.v, test.pathMajor, got, test.want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user