Skip to content

Commit dea4a60

Browse files
author
Antoine Pelisse
committed
typed: Round-trip to/from unstructured in benchmark
1 parent 0ad1808 commit dea4a60

File tree

1 file changed

+25
-14
lines changed

1 file changed

+25
-14
lines changed

typed/parser_test.go

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func lastPart(s string) string {
4242
return s[strings.LastIndex(s, ".")+1:]
4343
}
4444

45-
func BenchmarkFromUnstructured(b *testing.B) {
45+
func BenchmarkConvertUnstructured(b *testing.B) {
4646
tests := []struct {
4747
typename string
4848
obj []byte
@@ -75,22 +75,33 @@ func BenchmarkFromUnstructured(b *testing.B) {
7575
}
7676

7777
for _, test := range tests {
78-
b.Run(lastPart(test.typename), func(b *testing.B) {
79-
pt := parser.Type(test.typename)
78+
pt := parser.Type(test.typename)
8079

81-
obj := map[string]interface{}{}
82-
if err := yaml.Unmarshal(test.obj, &obj); err != nil {
83-
b.Fatal(err)
84-
}
80+
obj := map[string]interface{}{}
81+
if err := yaml.Unmarshal(test.obj, &obj); err != nil {
82+
b.Fatal(err)
83+
}
8584

86-
b.ReportAllocs()
87-
b.ResetTimer()
88-
for n := 0; n < b.N; n++ {
89-
if _, err := pt.FromUnstructured(obj); err != nil {
90-
b.Fatal(err)
85+
b.Run(lastPart(test.typename), func(b *testing.B) {
86+
var u *typed.TypedValue
87+
b.Run("From", func(b *testing.B) {
88+
b.ReportAllocs()
89+
b.ResetTimer()
90+
for n := 0; n < b.N; n++ {
91+
var err error
92+
if u, err = pt.FromUnstructured(obj); err != nil {
93+
b.Fatal(err)
94+
}
9195
}
92-
}
96+
})
97+
b.Run("To", func(b *testing.B) {
98+
b.ReportAllocs()
99+
b.ResetTimer()
100+
101+
for n := 0; n < b.N; n++ {
102+
_ = u.AsValue().ToUnstructured(false)
103+
}
104+
})
93105
})
94106
}
95-
96107
}

0 commit comments

Comments
 (0)