@@ -21,6 +21,7 @@ import (
21
21
"reflect"
22
22
"strings"
23
23
"testing"
24
+ "time"
24
25
25
26
"github.com/stretchr/testify/assert"
26
27
@@ -466,3 +467,76 @@ func TestUnstructuredToUnstructuredConversion(t *testing.T) {
466
467
assert .NoError (t , err )
467
468
assert .Equal (t , inUnstructured , outUnstructured )
468
469
}
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