From 7e2724e14b29910bc9473cb033724c5fad18649c Mon Sep 17 00:00:00 2001 From: Wojciech Tyczynski Date: Thu, 23 Apr 2015 08:57:29 +0200 Subject: [PATCH] Avoid benchmarks from being optimized --- pkg/conversion/conversion_test.go | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/pkg/conversion/conversion_test.go b/pkg/conversion/conversion_test.go index 24897ecf89b..015af3dca7f 100644 --- a/pkg/conversion/conversion_test.go +++ b/pkg/conversion/conversion_test.go @@ -38,15 +38,20 @@ func BenchmarkPodConversion(b *testing.B) { } scheme := api.Scheme.Raw() + var result *api.Pod for i := 0; i < b.N; i++ { versionedObj, err := scheme.ConvertToVersion(&pod, testapi.Version()) if err != nil { b.Fatalf("Conversion error: %v", err) } - _, err = scheme.ConvertToVersion(versionedObj, scheme.InternalVersion) + obj, err := scheme.ConvertToVersion(versionedObj, scheme.InternalVersion) if err != nil { b.Fatalf("Conversion error: %v", err) } + result = obj.(*api.Pod) + } + if !api.Semantic.DeepDerivative(pod, *result) { + b.Fatalf("Incorrect conversion: expected %v, got %v", pod, result) } } @@ -61,15 +66,20 @@ func BenchmarkNodeConversion(b *testing.B) { } scheme := api.Scheme.Raw() + var result *api.Node for i := 0; i < b.N; i++ { versionedObj, err := scheme.ConvertToVersion(&node, testapi.Version()) if err != nil { b.Fatalf("Conversion error: %v", err) } - _, err = scheme.ConvertToVersion(versionedObj, scheme.InternalVersion) + obj, err := scheme.ConvertToVersion(versionedObj, scheme.InternalVersion) if err != nil { b.Fatalf("Conversion error: %v", err) } + result = obj.(*api.Node) + } + if !api.Semantic.DeepDerivative(node, *result) { + b.Fatalf("Incorrect conversion: expected %v, got %v", node, result) } } @@ -84,14 +94,19 @@ func BenchmarkReplicationControllerConversion(b *testing.B) { } scheme := api.Scheme.Raw() + var result *api.ReplicationController for i := 0; i < b.N; i++ { versionedObj, err := scheme.ConvertToVersion(&replicationController, testapi.Version()) if err != nil { b.Fatalf("Conversion error: %v", err) } - _, err = scheme.ConvertToVersion(versionedObj, scheme.InternalVersion) + obj, err := scheme.ConvertToVersion(versionedObj, scheme.InternalVersion) if err != nil { b.Fatalf("Conversion error: %v", err) } + result = obj.(*api.ReplicationController) + } + if !api.Semantic.DeepDerivative(replicationController, *result) { + b.Fatalf("Incorrect conversion: expected %v, got %v", replicationController, result) } }