mirror of https://github.com/k3s-io/k3s
add a test
parent
cf5010ca6e
commit
891bd3e522
|
@ -22,7 +22,6 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
|
||||||
|
@ -56,6 +55,10 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
loadKubeAPIVersions()
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadKubeAPIVersions() {
|
||||||
// Env var KUBE_API_VERSIONS is a comma separated list of API versions that
|
// Env var KUBE_API_VERSIONS is a comma separated list of API versions that
|
||||||
// should be registered in the scheme.
|
// should be registered in the scheme.
|
||||||
kubeAPIVersions := os.Getenv("KUBE_API_VERSIONS")
|
kubeAPIVersions := os.Getenv("KUBE_API_VERSIONS")
|
||||||
|
@ -71,6 +74,16 @@ func init() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Resets everything to clean room for the start of a test
|
||||||
|
func clearForTesting() {
|
||||||
|
registeredVersions = map[unversioned.GroupVersion]struct{}{}
|
||||||
|
thirdPartyGroupVersions = []unversioned.GroupVersion{}
|
||||||
|
enabledVersions = map[unversioned.GroupVersion]struct{}{}
|
||||||
|
groupMetaMap = map[string]*apimachinery.GroupMeta{}
|
||||||
|
envRequestedVersions = []unversioned.GroupVersion{}
|
||||||
|
loadKubeAPIVersions()
|
||||||
|
}
|
||||||
|
|
||||||
// RegisterVersions adds the given group versions to the list of registered group versions.
|
// RegisterVersions adds the given group versions to the list of registered group versions.
|
||||||
func RegisterVersions(availableVersions []unversioned.GroupVersion) {
|
func RegisterVersions(availableVersions []unversioned.GroupVersion) {
|
||||||
for _, v := range availableVersions {
|
for _, v := range availableVersions {
|
||||||
|
@ -209,7 +222,6 @@ func AddThirdPartyAPIGroupVersions(gvs ...unversioned.GroupVersion) []unversione
|
||||||
RegisterVersions(filteredGVs)
|
RegisterVersions(filteredGVs)
|
||||||
EnableVersions(filteredGVs...)
|
EnableVersions(filteredGVs...)
|
||||||
thirdPartyGroupVersions = append(thirdPartyGroupVersions, filteredGVs...)
|
thirdPartyGroupVersions = append(thirdPartyGroupVersions, filteredGVs...)
|
||||||
|
|
||||||
return skippedGVs
|
return skippedGVs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,78 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/apimachinery"
|
"k8s.io/kubernetes/pkg/apimachinery"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestAddThirdPartyVersionsBasic(t *testing.T) {
|
||||||
|
clearForTesting()
|
||||||
|
|
||||||
|
registered := []unversioned.GroupVersion{
|
||||||
|
{
|
||||||
|
Group: "",
|
||||||
|
Version: "v1",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
skipped := registered
|
||||||
|
thirdParty := []unversioned.GroupVersion{
|
||||||
|
{
|
||||||
|
Group: "company.com",
|
||||||
|
Version: "v1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Group: "company.com",
|
||||||
|
Version: "v2",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
gvs := append(registered, thirdParty...)
|
||||||
|
|
||||||
|
RegisterVersions(registered)
|
||||||
|
wasSkipped := AddThirdPartyAPIGroupVersions(gvs...)
|
||||||
|
if len(wasSkipped) != len(skipped) {
|
||||||
|
t.Errorf("Expected %v, found %v", skipped, wasSkipped)
|
||||||
|
}
|
||||||
|
for ix := range wasSkipped {
|
||||||
|
found := false
|
||||||
|
for _, gv := range skipped {
|
||||||
|
if gv.String() == wasSkipped[ix].String() {
|
||||||
|
found = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !found {
|
||||||
|
t.Errorf("Couldn't find %v in %v", wasSkipped[ix], skipped)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, gv := range thirdParty {
|
||||||
|
if !IsThirdPartyAPIGroupVersion(gv) {
|
||||||
|
t.Errorf("Expected %v to be third party.", gv)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAddThirdPartyVersionsMultiple(t *testing.T) {
|
||||||
|
clearForTesting()
|
||||||
|
|
||||||
|
thirdParty := []unversioned.GroupVersion{
|
||||||
|
{
|
||||||
|
Group: "company.com",
|
||||||
|
Version: "v1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Group: "company.com",
|
||||||
|
Version: "v2",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, gv := range thirdParty {
|
||||||
|
wasSkipped := AddThirdPartyAPIGroupVersions(gv)
|
||||||
|
if len(wasSkipped) != 0 {
|
||||||
|
t.Errorf("Expected length 0, found %v", wasSkipped)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, gv := range thirdParty {
|
||||||
|
if !IsThirdPartyAPIGroupVersion(gv) {
|
||||||
|
t.Errorf("Expected %v to be third party.", gv)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestAllPreferredGroupVersions(t *testing.T) {
|
func TestAllPreferredGroupVersions(t *testing.T) {
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
groupMetas []apimachinery.GroupMeta
|
groupMetas []apimachinery.GroupMeta
|
||||||
|
|
Loading…
Reference in New Issue