Skip to content

Commit c9a9095

Browse files
committed
Create benchmarks for ToUnstructured/FromUnstructured.
1 parent d1a79f1 commit c9a9095

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/unstructured_conversion_test.go

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"reflect"
2222
"strings"
2323
"testing"
24+
"time"
2425

2526
"github.com/stretchr/testify/assert"
2627

@@ -466,3 +467,76 @@ func TestUnstructuredToUnstructuredConversion(t *testing.T) {
466467
assert.NoError(t, err)
467468
assert.Equal(t, inUnstructured, outUnstructured)
468469
}
470+
471+
func benchmarkCarp() *testapigroupv1.Carp {
472+
t := metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC)
473+
return &testapigroupv1.Carp{
474+
ObjectMeta: metav1.ObjectMeta{
475+
Name: "name",
476+
Namespace: "namespace",
477+
},
478+
Spec: testapigroupv1.CarpSpec{
479+
RestartPolicy: "restart",
480+
NodeSelector: map[string]string{
481+
"label1": "value1",
482+
"label2": "value2",
483+
},
484+
ServiceAccountName: "service-account",
485+
HostNetwork: false,
486+
HostPID: true,
487+
Subdomain: "hostname.subdomain.namespace.svc.domain",
488+
},
489+
Status: testapigroupv1.CarpStatus{
490+
Phase: "phase",
491+
Conditions: []testapigroupv1.CarpCondition{
492+
{
493+
Type: "condition1",
494+
Status: "true",
495+
LastProbeTime: t,
496+
LastTransitionTime: t,
497+
Reason: "reason",
498+
Message: "message",
499+
},
500+
},
501+
Message: "message",
502+
Reason: "reason",
503+
HostIP: "1.2.3.4",
504+
},
505+
}
506+
}
507+
508+
func BenchmarkToUnstructured(b *testing.B) {
509+
carp := benchmarkCarp()
510+
converter := runtime.DefaultUnstructuredConverter
511+
b.ResetTimer()
512+
513+
for i := 0; i < b.N; i++ {
514+
result, err := converter.ToUnstructured(carp)
515+
if err != nil {
516+
b.Fatalf("Unexpected conversion error: %v", err)
517+
}
518+
if len(result) != 3 {
519+
b.Errorf("Unexpected conversion result: %#v", result)
520+
}
521+
}
522+
}
523+
524+
func BenchmarkFromUnstructured(b *testing.B) {
525+
carp := benchmarkCarp()
526+
converter := runtime.DefaultUnstructuredConverter
527+
unstr, err := converter.ToUnstructured(carp)
528+
if err != nil {
529+
b.Fatalf("Unexpected conversion error: %v", err)
530+
}
531+
b.ResetTimer()
532+
533+
for i := 0; i < b.N; i++ {
534+
result := testapigroupv1.Carp{}
535+
if err := converter.FromUnstructured(unstr, &result); err != nil {
536+
b.Fatalf("Unexpected conversion error: %v", err)
537+
}
538+
if result.Status.Phase != "phase" {
539+
b.Errorf("Unexpected conversion result: %#v", result)
540+
}
541+
}
542+
}

0 commit comments

Comments
 (0)