(b *testing.B)
| 2224 | } |
| 2225 | |
| 2226 | func Benchmark_Router_Next_Parallel(b *testing.B) { |
| 2227 | app := New() |
| 2228 | registerDummyRoutes(app) |
| 2229 | app.startupProcess() |
| 2230 | b.RunParallel(func(pb *testing.PB) { |
| 2231 | // Each worker gets its own request and context to avoid data races. |
| 2232 | request := &fasthttp.RequestCtx{} |
| 2233 | request.Request.Header.SetMethod("DELETE") |
| 2234 | request.URI().SetPath("/user/keys/1337") |
| 2235 | c := acquireDefaultCtxForRouterBenchmark(b, app, request) |
| 2236 | for pb.Next() { |
| 2237 | c.indexRoute = -1 |
| 2238 | //nolint:errcheck // Benchmark hot path - error checked in verification |
| 2239 | _, _ = app.next(c) |
| 2240 | } |
| 2241 | }) |
| 2242 | |
| 2243 | // Single-threaded verification on a fresh context to preserve correctness checks. |
| 2244 | verifyRequest := &fasthttp.RequestCtx{} |
| 2245 | verifyRequest.Request.Header.SetMethod("DELETE") |
| 2246 | verifyRequest.URI().SetPath("/user/keys/1337") |
| 2247 | verifyCtx := acquireDefaultCtxForRouterBenchmark(b, app, verifyRequest) |
| 2248 | verifyCtx.indexRoute = -1 |
| 2249 | res, err := app.next(verifyCtx) |
| 2250 | require.NoError(b, err) |
| 2251 | require.True(b, res) |
| 2252 | require.Equal(b, 4, verifyCtx.indexRoute) |
| 2253 | } |
| 2254 | |
| 2255 | func Benchmark_Router_Next_Default_Immutable_Parallel(b *testing.B) { |
| 2256 | app := New(Config{Immutable: true}) |
nothing calls this directly
no test coverage detected
searching dependent graphs…