@@ -26,23 +26,54 @@ func BenchmarkRegisterRoute(b *testing.B) {
2626 os .Remove (saveFile )
2727 }()
2828
29- route := & Route {
30- Method : "GET" ,
31- Path : "/bench" ,
32- RawResponseBody : "Benchmark Response" ,
33- ResponseStatusCode : http .StatusOK ,
29+ routes := make ([]* Route , b .N )
30+ for i := 0 ; i < b .N ; i ++ {
31+ routes [i ] = & Route {
32+ Method : http .MethodGet ,
33+ Path : fmt .Sprintf ("/bench%d" , i ),
34+ RawResponseBody : "Benchmark Response" ,
35+ ResponseStatusCode : http .StatusOK ,
36+ }
3437 }
3538
3639 b .ResetTimer ()
3740 for i := 0 ; i < b .N ; i ++ {
38- err := p .Register (route )
41+ err := p .Register (routes [ i ] )
3942 require .NoError (b , err )
4043 }
4144 b .StopTimer ()
4245}
4346
4447func BenchmarkRegisterWildCardRoute (b * testing.B ) {
45- // TODO: Implement
48+ saveFile := b .Name () + ".json"
49+ p , err := Wake (WithLogLevel (testLogLevel ), WithSaveFile (saveFile ))
50+ require .NoError (b , err )
51+
52+ defer func () { // Cleanup
53+ ctx , cancel := context .WithTimeout (context .Background (), time .Second )
54+ err := p .Shutdown (ctx )
55+ cancel ()
56+ require .NoError (b , err , "error shutting down parrot" )
57+ p .WaitShutdown ()
58+ os .Remove (saveFile )
59+ }()
60+
61+ routes := make ([]* Route , b .N )
62+ for i := 0 ; i < b .N ; i ++ {
63+ routes [i ] = & Route {
64+ Method : http .MethodGet ,
65+ Path : fmt .Sprintf ("/wildcard/*/bench%d/*" , i ),
66+ RawResponseBody : "Benchmark Response" ,
67+ ResponseStatusCode : http .StatusOK ,
68+ }
69+ }
70+
71+ b .ResetTimer ()
72+ for i := 0 ; i < b .N ; i ++ {
73+ err := p .Register (routes [i ])
74+ require .NoError (b , err )
75+ }
76+ b .StopTimer ()
4677}
4778
4879func BenchmarkRouteResponse (b * testing.B ) {
@@ -77,7 +108,36 @@ func BenchmarkRouteResponse(b *testing.B) {
77108}
78109
79110func BenchmarkWildCardRouteResponse (b * testing.B ) {
111+ saveFile := b .Name () + ".json"
112+ p , err := Wake (WithLogLevel (testLogLevel ), WithSaveFile (saveFile ))
113+ require .NoError (b , err )
114+
115+ defer func () { // Cleanup
116+ ctx , cancel := context .WithTimeout (context .Background (), time .Second )
117+ err := p .Shutdown (ctx )
118+ cancel ()
119+ require .NoError (b , err , "error shutting down parrot" )
120+ p .WaitShutdown ()
121+ os .Remove (saveFile )
122+ }()
80123
124+ route := & Route {
125+ Method : "GET" ,
126+ Path : "/wildcard/*/bench/*" ,
127+ RawResponseBody : "Benchmark Response" ,
128+ ResponseStatusCode : http .StatusOK ,
129+ }
130+ err = p .Register (route )
131+ require .NoError (b , err )
132+
133+ callPath := "/wildcard/123/bench/456"
134+
135+ b .ResetTimer ()
136+ for i := 0 ; i < b .N ; i ++ {
137+ _ , err := p .Call (route .Method , callPath )
138+ require .NoError (b , err )
139+ }
140+ b .StopTimer ()
81141}
82142
83143func BenchmarkSave (b * testing.B ) {
0 commit comments