From 502492f3ed368a6797c045fc41910ea8c7c72a1b Mon Sep 17 00:00:00 2001 From: Paul Morie Date: Tue, 8 Sep 2015 13:18:28 -0400 Subject: [PATCH] Make serialization tests easier to debug --- pkg/api/serialization_test.go | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/pkg/api/serialization_test.go b/pkg/api/serialization_test.go index 6eed0666be9..fd69b276c1e 100644 --- a/pkg/api/serialization_test.go +++ b/pkg/api/serialization_test.go @@ -69,7 +69,7 @@ func roundTrip(t *testing.T, codec runtime.Codec, item runtime.Object) { return } if !api.Semantic.DeepEqual(item, obj2) { - t.Errorf("1: %v: diff: %v\nCodec: %v\nData: %s\nSource: %#v\nFinal: %#v", name, util.ObjectGoPrintDiff(item, obj2), codec, string(data), printer.Sprintf("%#v", item), printer.Sprintf("%#v", obj2)) + t.Errorf("1: %v: diff: %v\nCodec: %v\nSource:\n\n%#v\n\nEncoded:\n\n%s\n\nFinal:\n\n%#v", name, util.ObjectGoPrintDiff(item, obj2), codec, printer.Sprintf("%#v", item), string(data), printer.Sprintf("%#v", obj2)) return } @@ -103,12 +103,7 @@ func TestSpecificKind(t *testing.T) { defer api.Scheme.Log(nil) kind := "PodList" - item, err := api.Scheme.New("", kind) - if err != nil { - t.Errorf("Couldn't make a %v? %v", kind, err) - return - } - roundTripSame(t, item) + doRoundTripTest(kind, t) } func TestList(t *testing.T) { @@ -138,21 +133,25 @@ func TestRoundTripTypes(t *testing.T) { } // Try a few times, since runTest uses random values. for i := 0; i < *fuzzIters; i++ { - item, err := api.Scheme.New("", kind) - if err != nil { - t.Fatalf("Couldn't make a %v? %v", kind, err) - } - 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) - } - roundTripSame(t, item, nonRoundTrippableTypesByVersion[kind]...) - if !nonInternalRoundTrippableTypes.Has(kind) { - roundTrip(t, api.Codec, fuzzInternalObject(t, "", item, rand.Int63())) - } + doRoundTripTest(kind, t) } } } +func doRoundTripTest(kind string, t *testing.T) { + item, err := api.Scheme.New("", kind) + if err != nil { + t.Fatalf("Couldn't make a %v? %v", kind, err) + } + 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) + } + roundTripSame(t, item, nonRoundTrippableTypesByVersion[kind]...) + if !nonInternalRoundTrippableTypes.Has(kind) { + roundTrip(t, api.Codec, fuzzInternalObject(t, "", item, rand.Int63())) + } +} + func TestEncode_Ptr(t *testing.T) { grace := int64(30) pod := &api.Pod{