39 lines
737 B
Go

package router_test
import (
"testing"
"git.akyoto.dev/go/router"
)
func BenchmarkLookup(b *testing.B) {
router := router.New[string]()
routes := loadRoutes("testdata/github.txt")
for _, route := range routes {
router.Add(route.method, route.path, "")
}
b.ResetTimer()
for i := 0; i < b.N; i++ {
router.Lookup("GET", "/repos/:owner/:repo/issues")
}
}
func BenchmarkLookupNoAlloc(b *testing.B) {
router := router.New[string]()
routes := loadRoutes("testdata/github.txt")
addParameter := func(string, string) {}
for _, route := range routes {
router.Add(route.method, route.path, "")
}
b.ResetTimer()
for i := 0; i < b.N; i++ {
router.LookupNoAlloc("GET", "/repos/:owner/:repo/issues", addParameter)
}
}