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))
|
logDebug("Remotes:\n%s", string(stdoutStderr))
|
||||||
|
|
||||||
regString := fmt.Sprintf("(?m)^%s$", remote)
|
regString := fmt.Sprintf("(?m)^\\s*%s\\s*$", remote)
|
||||||
reg := regexp.MustCompile(regString)
|
reg := regexp.MustCompile(regString)
|
||||||
if !reg.MatchString(string(stdoutStderr)) {
|
if !reg.MatchString(string(stdoutStderr)) {
|
||||||
return fmt.Errorf("Cannot find remote named %s", remote)
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func newModuleVersionFromString(vs string) (*moduleVersion, error) {
|
func newModuleVersionFromString(vs string) (moduleVersion, error) {
|
||||||
|
v := moduleVersion{}
|
||||||
if len(vs) < 1 {
|
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' {
|
if vs[0] == 'v' {
|
||||||
vs = vs[1:]
|
vs = vs[1:]
|
||||||
}
|
}
|
||||||
versions := strings.Split(vs, ".")
|
versions := strings.Split(vs, ".")
|
||||||
|
if len(versions) != 3 {
|
||||||
|
return v, fmt.Errorf("Invalid version string %s", vs)
|
||||||
|
}
|
||||||
major, err := strconv.Atoi(versions[0])
|
major, err := strconv.Atoi(versions[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return v, err
|
||||||
}
|
}
|
||||||
minor, err := strconv.Atoi(versions[1])
|
minor, err := strconv.Atoi(versions[1])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return v, err
|
||||||
}
|
}
|
||||||
patch, err := strconv.Atoi(versions[2])
|
patch, err := strconv.Atoi(versions[2])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return v, err
|
||||||
}
|
}
|
||||||
v := moduleVersion{
|
v = moduleVersion{
|
||||||
major: major,
|
major: major,
|
||||||
minor: minor,
|
minor: minor,
|
||||||
patch: patch,
|
patch: patch,
|
||||||
}
|
}
|
||||||
|
|
||||||
return &v, nil
|
return v, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func newModuleVersionFromGitTags(tags, modName string) (moduleVersion, error) {
|
func newModuleVersionFromGitTags(tags, modName string) (moduleVersion, error) {
|
||||||
// Search for module tag
|
// 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)
|
reg := regexp.MustCompile(regString)
|
||||||
modTagsString := reg.FindAllString(tags, -1)
|
modTagsString := reg.FindAllString(tags, -1)
|
||||||
logDebug("Tags for module %s:\n%s", modName, modTagsString)
|
logDebug("Tags for module %s:\n%s", modName, modTagsString)
|
||||||
@@ -77,7 +81,7 @@ func newModuleVersionFromGitTags(tags, modName string) (moduleVersion, error) {
|
|||||||
return moduleVersion{}, err
|
return moduleVersion{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
versions = append(versions, *v)
|
versions = append(versions, v)
|
||||||
}
|
}
|
||||||
// Sort to find latest tag
|
// Sort to find latest tag
|
||||||
sort.Slice(versions, func(i, j int) bool {
|
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