(b *testing.B)
| 370 | } |
| 371 | |
| 372 | func BenchmarkStringIndexPrefixesFilter(b *testing.B) { |
| 373 | prefixes := []string{ |
| 374 | "value00", "value01", "value02", "value03", |
| 375 | "value04", "value05", "value06", "value07", |
| 376 | "value08", "value09", "value10", "value11", |
| 377 | "value12", "value13", "value14", "victor", |
| 378 | } |
| 379 | input := strings.Repeat("zzzzzzzzzzzzzzzz", 4096) + "victor" |
| 380 | |
| 381 | b.Run("compiled_ascii", func(b *testing.B) { |
| 382 | filter := stringIndexPrefixesFilter(prefixes, false, 5) |
| 383 | if filter == nil { |
| 384 | b.Fatal("expected filter") |
| 385 | } |
| 386 | b.ReportAllocs() |
| 387 | b.SetBytes(int64(len(input))) |
| 388 | for i := 0; i < b.N; i++ { |
| 389 | idx, ok := filter(input, 0) |
| 390 | if !ok || idx != len(input)-len("victor") { |
| 391 | b.Fatalf("filter = (%d, %v)", idx, ok) |
| 392 | } |
| 393 | } |
| 394 | }) |
| 395 | |
| 396 | b.Run("old_fallback", func(b *testing.B) { |
| 397 | b.ReportAllocs() |
| 398 | b.SetBytes(int64(len(input))) |
| 399 | for i := 0; i < b.N; i++ { |
| 400 | idx, ok := indexAnyPrefixFallback(input, 0, prefixes, false, 5) |
| 401 | if !ok || idx != len(input)-len("victor") { |
| 402 | b.Fatalf("filter = (%d, %v)", idx, ok) |
| 403 | } |
| 404 | } |
| 405 | }) |
| 406 | } |
nothing calls this directly
no test coverage detected