mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Merge pull request #20598 from mikedanese/serialization-tests
Auto commit by PR queue bot
This commit is contained in:
commit
f3429776c2
@ -32,8 +32,6 @@ import (
|
|||||||
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
_ "k8s.io/kubernetes/pkg/apis/extensions"
|
|
||||||
_ "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
|
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/util"
|
"k8s.io/kubernetes/pkg/util"
|
||||||
"k8s.io/kubernetes/pkg/util/sets"
|
"k8s.io/kubernetes/pkg/util/sets"
|
||||||
@ -61,7 +59,7 @@ func fuzzInternalObject(t *testing.T, forVersion unversioned.GroupVersion, item
|
|||||||
}
|
}
|
||||||
|
|
||||||
func roundTrip(t *testing.T, codec runtime.Codec, item runtime.Object) {
|
func roundTrip(t *testing.T, codec runtime.Codec, item runtime.Object) {
|
||||||
t.Logf("codec: %#v", codec)
|
//t.Logf("codec: %#v", codec)
|
||||||
|
|
||||||
printer := spew.ConfigState{DisableMethods: true}
|
printer := spew.ConfigState{DisableMethods: true}
|
||||||
|
|
||||||
@ -94,12 +92,12 @@ func roundTrip(t *testing.T, codec runtime.Codec, item runtime.Object) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// roundTripSame verifies the same source object is tested in all API versions.
|
// roundTripSame verifies the same source object is tested in all API versions.
|
||||||
func roundTripSame(t *testing.T, item runtime.Object, except ...string) {
|
func roundTripSame(t *testing.T, group testapi.TestGroup, item runtime.Object, except ...string) {
|
||||||
set := sets.NewString(except...)
|
set := sets.NewString(except...)
|
||||||
seed := rand.Int63()
|
seed := rand.Int63()
|
||||||
fuzzInternalObject(t, testapi.Default.InternalGroupVersion(), item, seed)
|
fuzzInternalObject(t, group.InternalGroupVersion(), item, seed)
|
||||||
|
|
||||||
version := *testapi.Default.GroupVersion()
|
version := *group.GroupVersion()
|
||||||
codecs := []runtime.Codec{}
|
codecs := []runtime.Codec{}
|
||||||
for _, fn := range codecsToTest {
|
for _, fn := range codecsToTest {
|
||||||
codec, err := fn(version, item)
|
codec, err := fn(version, item)
|
||||||
@ -123,9 +121,9 @@ func TestSpecificKind(t *testing.T) {
|
|||||||
// api.Scheme.Log(t)
|
// api.Scheme.Log(t)
|
||||||
// defer api.Scheme.Log(nil)
|
// defer api.Scheme.Log(nil)
|
||||||
|
|
||||||
kind := "List"
|
kind := "DaemonSet"
|
||||||
for i := 0; i < *fuzzIters; i++ {
|
for i := 0; i < *fuzzIters; i++ {
|
||||||
doRoundTripTest(kind, t)
|
doRoundTripTest(testapi.Groups["extensions"], kind, t)
|
||||||
if t.Failed() {
|
if t.Failed() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -142,7 +140,7 @@ func TestList(t *testing.T) {
|
|||||||
t.Errorf("Couldn't make a %v? %v", kind, err)
|
t.Errorf("Couldn't make a %v? %v", kind, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
roundTripSame(t, item)
|
roundTripSame(t, testapi.Default, item)
|
||||||
}
|
}
|
||||||
|
|
||||||
var nonRoundTrippableTypes = sets.NewString("ExportOptions")
|
var nonRoundTrippableTypes = sets.NewString("ExportOptions")
|
||||||
@ -154,34 +152,36 @@ func TestRoundTripTypes(t *testing.T) {
|
|||||||
// api.Scheme.Log(t)
|
// api.Scheme.Log(t)
|
||||||
// defer api.Scheme.Log(nil)
|
// defer api.Scheme.Log(nil)
|
||||||
|
|
||||||
for kind := range api.Scheme.KnownTypes(testapi.Default.InternalGroupVersion()) {
|
for groupKey, group := range testapi.Groups {
|
||||||
t.Logf("working on %v in %v", kind, testapi.Default.InternalGroupVersion())
|
for kind := range api.Scheme.KnownTypes(group.InternalGroupVersion()) {
|
||||||
if nonRoundTrippableTypes.Has(kind) {
|
t.Logf("working on %v in %v", kind, groupKey)
|
||||||
continue
|
if nonRoundTrippableTypes.Has(kind) {
|
||||||
}
|
continue
|
||||||
// Try a few times, since runTest uses random values.
|
}
|
||||||
for i := 0; i < *fuzzIters; i++ {
|
// Try a few times, since runTest uses random values.
|
||||||
doRoundTripTest(kind, t)
|
for i := 0; i < *fuzzIters; i++ {
|
||||||
if t.Failed() {
|
doRoundTripTest(group, kind, t)
|
||||||
break
|
if t.Failed() {
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func doRoundTripTest(kind string, t *testing.T) {
|
func doRoundTripTest(group testapi.TestGroup, kind string, t *testing.T) {
|
||||||
item, err := api.Scheme.New(testapi.Default.InternalGroupVersion().WithKind(kind))
|
item, err := api.Scheme.New(group.InternalGroupVersion().WithKind(kind))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Couldn't make a %v? %v", kind, err)
|
t.Fatalf("Couldn't make a %v? %v", kind, err)
|
||||||
}
|
}
|
||||||
if _, err := meta.TypeAccessor(item); err != nil {
|
if _, err := meta.TypeAccessor(item); err != nil {
|
||||||
t.Fatalf("%q is not a TypeMeta and cannot be tested - add it to nonRoundTrippableTypes: %v", kind, err)
|
t.Fatalf("%q is not a TypeMeta and cannot be tested - add it to nonRoundTrippableTypes: %v", kind, err)
|
||||||
}
|
}
|
||||||
if api.Scheme.Recognizes(testapi.Default.GroupVersion().WithKind(kind)) {
|
if api.Scheme.Recognizes(group.GroupVersion().WithKind(kind)) {
|
||||||
roundTripSame(t, item, nonRoundTrippableTypesByVersion[kind]...)
|
roundTripSame(t, group, item, nonRoundTrippableTypesByVersion[kind]...)
|
||||||
}
|
}
|
||||||
if !nonInternalRoundTrippableTypes.Has(kind) {
|
if !nonInternalRoundTrippableTypes.Has(kind) {
|
||||||
roundTrip(t, testapi.Default.Codec(), fuzzInternalObject(t, testapi.Default.InternalGroupVersion(), item, rand.Int63()))
|
roundTrip(t, group.Codec(), fuzzInternalObject(t, group.InternalGroupVersion(), item, rand.Int63()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,15 +23,16 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
_ "k8s.io/kubernetes/pkg/api/install"
|
|
||||||
_ "k8s.io/kubernetes/pkg/apis/extensions/install"
|
|
||||||
_ "k8s.io/kubernetes/pkg/apis/metrics/install"
|
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api/meta"
|
"k8s.io/kubernetes/pkg/api/meta"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
|
|
||||||
|
_ "k8s.io/kubernetes/pkg/api/install"
|
||||||
|
_ "k8s.io/kubernetes/pkg/apis/componentconfig/install"
|
||||||
|
_ "k8s.io/kubernetes/pkg/apis/extensions/install"
|
||||||
|
_ "k8s.io/kubernetes/pkg/apis/metrics/install"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -397,6 +397,13 @@ func FuzzerFor(t *testing.T, version unversioned.GroupVersion, src rand.Source)
|
|||||||
s.MinReplicas = &minReplicas
|
s.MinReplicas = &minReplicas
|
||||||
s.CPUUtilization = &extensions.CPUTargetUtilization{TargetPercentage: int(int32(c.RandUint64()))}
|
s.CPUUtilization = &extensions.CPUTargetUtilization{TargetPercentage: int(int32(c.RandUint64()))}
|
||||||
},
|
},
|
||||||
|
func(s *extensions.DaemonSetUpdateStrategy, c fuzz.Continue) {
|
||||||
|
c.FuzzNoCustom(s)
|
||||||
|
s.Type = extensions.RollingUpdateDaemonSetStrategyType
|
||||||
|
s.RollingUpdate = &extensions.RollingUpdateDaemonSet{
|
||||||
|
MaxUnavailable: intstr.FromInt(10),
|
||||||
|
}
|
||||||
|
},
|
||||||
)
|
)
|
||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user