Skip to content

Commit 1b407fa

Browse files
author
Antoine Pelisse
committed
Benchmark typed.Parser on all available types
1 parent 45a778a commit 1b407fa

File tree

1 file changed

+45
-14
lines changed

1 file changed

+45
-14
lines changed

typed/parser_test.go

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package typed_test
1919
import (
2020
"io/ioutil"
2121
"path/filepath"
22+
"strings"
2223
"testing"
2324

2425
yaml "gopkg.in/yaml.v2"
@@ -29,10 +30,35 @@ func testdata(file string) string {
2930
return filepath.Join("..", "internal", "testdata", file)
3031
}
3132

32-
func BenchmarkFromUnstructured(b *testing.B) {
33-
pod, err := ioutil.ReadFile(testdata("pod.yaml"))
33+
func read(file string) []byte {
34+
obj, err := ioutil.ReadFile(file)
3435
if err != nil {
35-
b.Fatal(err)
36+
panic(err)
37+
}
38+
return obj
39+
}
40+
41+
func lastPart(s string) string {
42+
return s[strings.LastIndex(s, ".")+1:]
43+
}
44+
45+
func BenchmarkFromUnstructured(b *testing.B) {
46+
tests := []struct {
47+
typename string
48+
obj []byte
49+
}{
50+
{
51+
typename: "io.k8s.api.core.v1.Pod",
52+
obj: read(testdata("pod.yaml")),
53+
},
54+
{
55+
typename: "io.k8s.api.core.v1.Node",
56+
obj: read(testdata("node.yaml")),
57+
},
58+
{
59+
typename: "io.k8s.api.core.v1.Endpoints",
60+
obj: read(testdata("endpoints.yaml")),
61+
},
3662
}
3763

3864
s, err := ioutil.ReadFile(testdata("k8s-schema.yaml"))
@@ -43,19 +69,24 @@ func BenchmarkFromUnstructured(b *testing.B) {
4369
if err != nil {
4470
b.Fatal(err)
4571
}
46-
pt := parser.Type("io.k8s.api.core.v1.Pod")
4772

48-
obj := map[string]interface{}{}
49-
if err := yaml.Unmarshal([]byte(pod), &obj); err != nil {
50-
b.Fatal(err)
51-
}
73+
for _, test := range tests {
74+
b.Run(lastPart(test.typename), func(b *testing.B) {
75+
pt := parser.Type(test.typename)
76+
77+
obj := map[string]interface{}{}
78+
if err := yaml.Unmarshal(test.obj, &obj); err != nil {
79+
b.Fatal(err)
80+
}
5281

53-
b.ReportAllocs()
54-
b.ResetTimer()
55-
for n := 0; n < b.N; n++ {
56-
if _, err := pt.FromUnstructured(obj); err != nil {
57-
b.Fatal(err)
58-
}
82+
b.ReportAllocs()
83+
b.ResetTimer()
84+
for n := 0; n < b.N; n++ {
85+
if _, err := pt.FromUnstructured(obj); err != nil {
86+
b.Fatal(err)
87+
}
88+
}
89+
})
5990
}
6091

6192
}

0 commit comments

Comments
 (0)