mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-12 09:24:23 +00:00
Add tests for modulemeta and moduleversion
This commit is contained in:
@@ -104,7 +104,7 @@ func (gr *gitRunner) CheckRemoteExistence(remote string) error {
|
||||
}
|
||||
logDebug("Remotes:\n%s", string(stdoutStderr))
|
||||
|
||||
regString := fmt.Sprintf("(?m)^%s$", remote)
|
||||
regString := fmt.Sprintf("(?m)^\\s*%s\\s*$", remote)
|
||||
reg := regexp.MustCompile(regString)
|
||||
if !reg.MatchString(string(stdoutStderr)) {
|
||||
return fmt.Errorf("Cannot find remote named %s", remote)
|
||||
|
||||
68
releasing/releasing/modulemeta_test.go
Normal file
68
releasing/releasing/modulemeta_test.go
Normal file
@@ -0,0 +1,68 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestModuleTags(t *testing.T) {
|
||||
tags := `api/v0.1.1
|
||||
api/v0.2.0
|
||||
api/v0.3.0
|
||||
api/v0.3.1
|
||||
api/v0.3.2
|
||||
api/v0.3.3
|
||||
cmd/config/v0.0.1
|
||||
cmd/config/v0.0.10
|
||||
cmd/config/v0.0.11
|
||||
cmd/config/v0.0.12
|
||||
cmd/config/v0.0.13
|
||||
cmd/config/v0.0.2
|
||||
cmd/config/v0.0.3
|
||||
cmd/config/v0.0.4
|
||||
cmd/config/v0.0.5
|
||||
cmd/config/v0.0.6
|
||||
cmd/config/v0.0.7
|
||||
cmd/config/v0.0.8
|
||||
cmd/config/v0.0.9
|
||||
cmd/config/v0.1.0
|
||||
cmd/config/v0.1.1
|
||||
cmd/config/v0.1.10
|
||||
cmd/config/v0.1.11
|
||||
cmd/config/v0.1.2
|
||||
cmd/config/v0.1.3
|
||||
cmd/config/v0.1.4
|
||||
cmd/config/v0.1.5
|
||||
cmd/config/v0.1.6
|
||||
cmd/config/v0.1.7
|
||||
cmd/config/v0.1.8
|
||||
cmd/kubectl/v0.0.1
|
||||
cmd/kubectl/v0.0.2
|
||||
cmd/kubectl/v0.0.3
|
||||
cmd/resource/v0.0.1
|
||||
cmd/resource/v0.0.2
|
||||
kstatus/v0.0.1
|
||||
kustomize/v3.2.1
|
||||
kustomize/v3.2.2
|
||||
kustomize/v3.2.3
|
||||
kustomize/v3.3.0
|
||||
kustomize/v3.4.0
|
||||
kustomize/v3.5.1
|
||||
kustomize/v3.5.2
|
||||
kustomize/v3.5.3
|
||||
kustomize/v3.5.4
|
||||
kustomize/v3.5.5`
|
||||
expect := "cmd/config/v0.1.11"
|
||||
|
||||
m := module{
|
||||
name: "cmd/config",
|
||||
}
|
||||
|
||||
err := m.UpdateVersion(tags)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if m.Tag() != expect {
|
||||
t.Errorf("Tag %s doesn't match expected %s", m.Tag(), expect)
|
||||
}
|
||||
}
|
||||
@@ -34,38 +34,42 @@ func (v *moduleVersion) Bump(t string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func newModuleVersionFromString(vs string) (*moduleVersion, error) {
|
||||
func newModuleVersionFromString(vs string) (moduleVersion, error) {
|
||||
v := moduleVersion{}
|
||||
if len(vs) < 1 {
|
||||
return nil, fmt.Errorf("Invalid version string %s", vs)
|
||||
return v, fmt.Errorf("Invalid version string %s", vs)
|
||||
}
|
||||
if vs[0] == 'v' {
|
||||
vs = vs[1:]
|
||||
}
|
||||
versions := strings.Split(vs, ".")
|
||||
if len(versions) != 3 {
|
||||
return v, fmt.Errorf("Invalid version string %s", vs)
|
||||
}
|
||||
major, err := strconv.Atoi(versions[0])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return v, err
|
||||
}
|
||||
minor, err := strconv.Atoi(versions[1])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return v, err
|
||||
}
|
||||
patch, err := strconv.Atoi(versions[2])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return v, err
|
||||
}
|
||||
v := moduleVersion{
|
||||
v = moduleVersion{
|
||||
major: major,
|
||||
minor: minor,
|
||||
patch: patch,
|
||||
}
|
||||
|
||||
return &v, nil
|
||||
return v, nil
|
||||
}
|
||||
|
||||
func newModuleVersionFromGitTags(tags, modName string) (moduleVersion, error) {
|
||||
// Search for module tag
|
||||
regString := fmt.Sprintf("(?m)^%s/v(\\d+\\.){2}\\d+$", modName)
|
||||
regString := fmt.Sprintf("(?m)^\\s*%s/v(\\d+\\.){2}\\d+\\s*$", modName)
|
||||
reg := regexp.MustCompile(regString)
|
||||
modTagsString := reg.FindAllString(tags, -1)
|
||||
logDebug("Tags for module %s:\n%s", modName, modTagsString)
|
||||
@@ -77,7 +81,7 @@ func newModuleVersionFromGitTags(tags, modName string) (moduleVersion, error) {
|
||||
return moduleVersion{}, err
|
||||
}
|
||||
|
||||
versions = append(versions, *v)
|
||||
versions = append(versions, v)
|
||||
}
|
||||
// Sort to find latest tag
|
||||
sort.Slice(versions, func(i, j int) bool {
|
||||
|
||||
144
releasing/releasing/moduleversion_test.go
Normal file
144
releasing/releasing/moduleversion_test.go
Normal file
@@ -0,0 +1,144 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestVersionFromAndToString(t *testing.T) {
|
||||
vs := "1.1.1"
|
||||
expect := "v1.1.1"
|
||||
v, err := newModuleVersionFromString(vs)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if v.String() != expect {
|
||||
t.Errorf("%s doesn't match expected %s", v.String(), expect)
|
||||
}
|
||||
|
||||
vs = "v0.0.0"
|
||||
expect = "v0.0.0"
|
||||
v, err = newModuleVersionFromString(vs)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if v.String() != expect {
|
||||
t.Errorf("%s doesn't match expected %s", v.String(), expect)
|
||||
}
|
||||
|
||||
vs = "v0.0"
|
||||
v, err = newModuleVersionFromString(vs)
|
||||
if err == nil {
|
||||
t.Errorf("%s should be invalid", vs)
|
||||
}
|
||||
|
||||
vs = ""
|
||||
v, err = newModuleVersionFromString(vs)
|
||||
if err == nil {
|
||||
t.Errorf("%s should be invalid", vs)
|
||||
}
|
||||
}
|
||||
|
||||
func TestVersionFromGitTags(t *testing.T) {
|
||||
tags := `api/v0.1.1
|
||||
api/v0.2.0
|
||||
api/v0.3.0
|
||||
api/v0.3.1
|
||||
api/v0.3.2
|
||||
api/v0.3.3
|
||||
cmd/config/v0.0.1
|
||||
cmd/config/v0.0.10
|
||||
cmd/config/v0.0.11
|
||||
cmd/config/v0.0.12
|
||||
cmd/config/v0.0.13
|
||||
cmd/config/v0.0.2
|
||||
cmd/config/v0.0.3
|
||||
cmd/config/v0.0.4
|
||||
cmd/config/v0.0.5
|
||||
cmd/config/v0.0.6
|
||||
cmd/config/v0.0.7
|
||||
cmd/config/v0.0.8
|
||||
cmd/config/v0.0.9
|
||||
cmd/config/v0.1.0
|
||||
cmd/config/v0.1.1
|
||||
cmd/config/v0.1.10
|
||||
cmd/config/v0.1.11
|
||||
cmd/config/v0.1.2
|
||||
cmd/config/v0.1.3
|
||||
cmd/config/v0.1.4
|
||||
cmd/config/v0.1.5
|
||||
cmd/config/v0.1.6
|
||||
cmd/config/v0.1.7
|
||||
cmd/config/v0.1.8
|
||||
cmd/kubectl/v0.0.1
|
||||
cmd/kubectl/v0.0.2
|
||||
cmd/kubectl/v0.0.3
|
||||
cmd/resource/v0.0.1
|
||||
cmd/resource/v0.0.2
|
||||
kstatus/v0.0.1
|
||||
kustomize/v3.2.1
|
||||
kustomize/v3.2.2
|
||||
kustomize/v3.2.3
|
||||
kustomize/v3.3.0
|
||||
kustomize/v3.4.0
|
||||
kustomize/v3.5.1
|
||||
kustomize/v3.5.2
|
||||
kustomize/v3.5.3
|
||||
kustomize/v3.5.4
|
||||
kustomize/v3.5.5`
|
||||
expect := "v0.1.11"
|
||||
|
||||
v, err := newModuleVersionFromGitTags(tags, "cmd/config")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if v.String() != expect {
|
||||
t.Errorf("%s doesn't match expected %s", v.String(), expect)
|
||||
}
|
||||
}
|
||||
|
||||
func TestVersionBumpPatch(t *testing.T) {
|
||||
v := moduleVersion{0, 1, 1}
|
||||
expect := "v0.1.2"
|
||||
err := v.Bump("patch")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if v.String() != expect {
|
||||
t.Errorf("%s doesn't match expected %s", v.String(), expect)
|
||||
}
|
||||
}
|
||||
|
||||
func TestVersionBumpMinor(t *testing.T) {
|
||||
v := moduleVersion{0, 1, 1}
|
||||
expect := "v0.2.0"
|
||||
err := v.Bump("minor")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if v.String() != expect {
|
||||
t.Errorf("%s doesn't match expected %s", v.String(), expect)
|
||||
}
|
||||
}
|
||||
|
||||
func TestVersionBumpMajor(t *testing.T) {
|
||||
v := moduleVersion{0, 1, 1}
|
||||
expect := "v1.0.0"
|
||||
err := v.Bump("major")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if v.String() != expect {
|
||||
t.Errorf("%s doesn't match expected %s", v.String(), expect)
|
||||
}
|
||||
}
|
||||
|
||||
func TestVersionBumpError(t *testing.T) {
|
||||
v := moduleVersion{}
|
||||
err := v.Bump("unknown")
|
||||
if err == nil {
|
||||
t.Errorf("Invalid bumping type should have error")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user