mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Replace bash release helper scripts with Go progam
This commit is contained in:
105
cmd/gorepomod/internal/semver/semver_test.go
Normal file
105
cmd/gorepomod/internal/semver/semver_test.go
Normal file
@@ -0,0 +1,105 @@
|
||||
package semver
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestParse(t *testing.T) {
|
||||
var testCases = map[string]struct {
|
||||
raw string
|
||||
v SemVer
|
||||
errMsg string
|
||||
}{
|
||||
"one": {
|
||||
raw: "v1.2.3",
|
||||
v: SemVer{major: 1, minor: 2, patch: 3},
|
||||
errMsg: "",
|
||||
},
|
||||
"two": {
|
||||
raw: "v2.0.9999",
|
||||
v: SemVer{major: 2, minor: 0, patch: 9999},
|
||||
errMsg: "",
|
||||
},
|
||||
"three": {
|
||||
raw: "pizza",
|
||||
v: zero,
|
||||
errMsg: "\"pizza\" too short to be a version",
|
||||
},
|
||||
"non-digit": {
|
||||
raw: "v1.x.222",
|
||||
v: zero,
|
||||
errMsg: "strconv.Atoi: parsing \"x\": invalid syntax",
|
||||
},
|
||||
"bad fields": {
|
||||
raw: "v1.222",
|
||||
v: zero,
|
||||
errMsg: "\"v1.222\" doesn't have the form v1.2.3",
|
||||
},
|
||||
}
|
||||
for n, tc := range testCases {
|
||||
v, err := Parse(tc.raw)
|
||||
if err == nil {
|
||||
if tc.errMsg != "" {
|
||||
t.Errorf(
|
||||
"%s: no error, but expected err %q", n, tc.errMsg)
|
||||
}
|
||||
if !v.Equals(tc.v) {
|
||||
t.Errorf(
|
||||
"%s: expected %v, got %v", n, tc.v, v)
|
||||
}
|
||||
} else {
|
||||
if tc.errMsg == "" {
|
||||
t.Errorf(
|
||||
"%s: unexpected error %v", n, err)
|
||||
} else {
|
||||
if tc.errMsg != err.Error() {
|
||||
t.Errorf(
|
||||
"%s: expected err msg %q, but got %q",
|
||||
n, tc.errMsg, err.Error())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestLessThan(t *testing.T) {
|
||||
var testCases = map[string]struct {
|
||||
v1 SemVer
|
||||
v2 SemVer
|
||||
expected bool
|
||||
}{
|
||||
"one": {
|
||||
v1: SemVer{major: 2, minor: 2, patch: 3},
|
||||
v2: SemVer{major: 1, minor: 2, patch: 3},
|
||||
expected: false,
|
||||
},
|
||||
"two": {
|
||||
v1: SemVer{major: 1, minor: 3, patch: 3},
|
||||
v2: SemVer{major: 1, minor: 2, patch: 3},
|
||||
expected: false,
|
||||
},
|
||||
"three": {
|
||||
v1: SemVer{major: 1, minor: 2, patch: 4},
|
||||
v2: SemVer{major: 1, minor: 2, patch: 3},
|
||||
expected: false,
|
||||
},
|
||||
"eq": {
|
||||
v1: SemVer{major: 2, minor: 2, patch: 3},
|
||||
v2: SemVer{major: 2, minor: 2, patch: 3},
|
||||
expected: false,
|
||||
},
|
||||
"four": {
|
||||
v1: zero,
|
||||
v2: SemVer{major: 0, minor: 0, patch: 1},
|
||||
expected: true,
|
||||
},
|
||||
}
|
||||
for n, tc := range testCases {
|
||||
actual := tc.v1.LessThan(tc.v2)
|
||||
if actual != tc.expected {
|
||||
t.Errorf(
|
||||
"%s: expected %v, got %v for %s LessThan %s",
|
||||
n, tc.expected, actual, tc.v1.String(), tc.v2.String())
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user