blob: 4c4a3c84fc81549a82b11b3355646cda411113cd [file] [log] [blame]
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package semver
import (
"testing"
)
func TestCanonicalize(t *testing.T) {
for _, test := range []struct {
v string
want string
}{
{"v1.2.3", "v1.2.3"},
{"1.2.3", "v1.2.3"},
{"go1.2.3", "v1.2.3"},
} {
got := canonicalizeSemverPrefix(test.v)
if got != test.want {
t.Errorf("want %s; got %s", test.want, got)
}
}
}
func TestGoTagToSemver(t *testing.T) {
for _, test := range []struct {
v string
want string
}{
{"go1.19", "v1.19.0"},
{"go1.20-pre4", "v1.20.0-pre.4"},
} {
got := GoTagToSemver(test.v)
if got != test.want {
t.Errorf("want %s; got %s", test.want, got)
}
}
}
func TestLess(t *testing.T) {
for _, test := range []struct {
v1 string
v2 string
want bool
}{
{"go1.19", "go1.19", false},
{"go1.19.1", "go1.19", false},
{"v0.2.1", "v0.3.0", true},
{"go1.12.2", "go1.18", true},
{"v1.20.0-pre4", "v1.20.0-pre.4", false},
{"v1.20.0-pre4", "v1.20.0-pre4.4", true},
} {
if got := Less(test.v1, test.v2); got != test.want {
t.Errorf("want Less(%s, %s)=%t; got %t", test.v1, test.v2, test.want, got)
}
}
}