From d9cc8119ef0f7901f861c5ae62a2cd094c2c36a4 Mon Sep 17 00:00:00 2001 From: Mike Danese Date: Wed, 12 Oct 2016 09:59:35 -0700 Subject: [PATCH] allow apigroups to opt out of proto round trip testing --- pkg/api/serialization_proto_test.go | 10 ++++++++-- pkg/api/serialization_test.go | 12 ++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/pkg/api/serialization_proto_test.go b/pkg/api/serialization_proto_test.go index 5a75071e0dd..f8e43eef1df 100644 --- a/pkg/api/serialization_proto_test.go +++ b/pkg/api/serialization_proto_test.go @@ -33,12 +33,18 @@ import ( "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime/serializer/protobuf" "k8s.io/kubernetes/pkg/util/diff" + "k8s.io/kubernetes/pkg/util/sets" ) +var nonProtobaleAPIGroups = sets.NewString() + func init() { - codecsToTest = append(codecsToTest, func(version unversioned.GroupVersion, item runtime.Object) (runtime.Codec, error) { + codecsToTest = append(codecsToTest, func(version unversioned.GroupVersion, item runtime.Object) (runtime.Codec, bool, error) { + if nonProtobaleAPIGroups.Has(version.Group) { + return nil, false, nil + } s := protobuf.NewSerializer(api.Scheme, api.Scheme, "application/arbitrary.content.type") - return api.Codecs.CodecForVersions(s, s, testapi.ExternalGroupVersions(), nil), nil + return api.Codecs.CodecForVersions(s, s, testapi.ExternalGroupVersions(), nil), true, nil }) } diff --git a/pkg/api/serialization_test.go b/pkg/api/serialization_test.go index 7948fdb22d0..657b7de82a0 100644 --- a/pkg/api/serialization_test.go +++ b/pkg/api/serialization_test.go @@ -51,9 +51,10 @@ import ( var fuzzIters = flag.Int("fuzz-iters", 20, "How many fuzzing iterations to do.") -var codecsToTest = []func(version unversioned.GroupVersion, item runtime.Object) (runtime.Codec, error){ - func(version unversioned.GroupVersion, item runtime.Object) (runtime.Codec, error) { - return testapi.GetCodecForObject(item) +var codecsToTest = []func(version unversioned.GroupVersion, item runtime.Object) (runtime.Codec, bool, error){ + func(version unversioned.GroupVersion, item runtime.Object) (runtime.Codec, bool, error) { + c, err := testapi.GetCodecForObject(item) + return c, true, err }, } @@ -135,11 +136,14 @@ func roundTripSame(t *testing.T, group testapi.TestGroup, item runtime.Object, e version := *group.GroupVersion() codecs := []runtime.Codec{} for _, fn := range codecsToTest { - codec, err := fn(version, item) + codec, ok, err := fn(version, item) if err != nil { t.Errorf("unable to get codec: %v", err) return } + if !ok { + continue + } codecs = append(codecs, codec) }