github.com/naoina/kocha@v0.7.1-0.20171129072645-78c7a531f799/kocha_bench_test.go (about) 1 package kocha_test 2 3 import ( 4 "net/http" 5 "testing" 6 7 "github.com/naoina/kocha" 8 ) 9 10 type nullResponseWriter struct { 11 header http.Header 12 } 13 14 func newNullResponseWriter() *nullResponseWriter { 15 return &nullResponseWriter{ 16 header: make(http.Header), 17 } 18 } 19 20 func (w *nullResponseWriter) Header() http.Header { 21 return w.header 22 } 23 24 func (w *nullResponseWriter) Write(b []byte) (int, error) { 25 return len(b), nil 26 } 27 28 func (w *nullResponseWriter) WriteHeader(n int) { 29 } 30 31 func BenchmarkServeHTTP(b *testing.B) { 32 app := kocha.NewTestApp() 33 b.ResetTimer() 34 for i := 0; i < b.N; i++ { 35 req, err := http.NewRequest("GET", "/", nil) 36 if err != nil { 37 b.Fatal(err) 38 } 39 w := newNullResponseWriter() 40 app.ServeHTTP(w, req) 41 } 42 } 43 44 func BenchmarkServeHTTP_WithParams(b *testing.B) { 45 app := kocha.NewTestApp() 46 b.ResetTimer() 47 for i := 0; i < b.N; i++ { 48 req, err := http.NewRequest("GET", "/user/123", nil) 49 if err != nil { 50 b.Fatal(err) 51 } 52 w := newNullResponseWriter() 53 app.ServeHTTP(w, req) 54 } 55 } 56 57 func BenchmarkNew(b *testing.B) { 58 app := kocha.NewTestApp() 59 config := app.Config 60 b.ResetTimer() 61 for i := 0; i < b.N; i++ { 62 if _, err := kocha.New(config); err != nil { 63 b.Fatal(err) 64 } 65 } 66 }