| 396 | } |
| 397 | |
| 398 | func BenchmarkOnItem(b *testing.B) { |
| 399 | fakeServer, err := net.Listen("tcp", "localhost:0") |
| 400 | if err != nil { |
| 401 | b.Fatal("Could not open fake server: ", err) |
| 402 | } |
| 403 | defer fakeServer.Close() |
| 404 | go func() { |
| 405 | for { |
| 406 | if c, err := fakeServer.Accept(); err == nil { |
| 407 | go func() { io.Copy(ioutil.Discard, c) }() |
| 408 | } else { |
| 409 | return |
| 410 | } |
| 411 | } |
| 412 | }() |
| 413 | |
| 414 | addr := fakeServer.Addr() |
| 415 | c := New(addr.String()) |
| 416 | if _, err := c.getConn(addr); err != nil { |
| 417 | b.Fatal("failed to initialize connection to fake server") |
| 418 | } |
| 419 | |
| 420 | item := Item{Key: "foo"} |
| 421 | dummyFn := func(_ *Client, _ *bufio.ReadWriter, _ *Item) error { return nil } |
| 422 | b.ResetTimer() |
| 423 | for i := 0; i < b.N; i++ { |
| 424 | c.onItem(&item, dummyFn) |
| 425 | } |
| 426 | } |
| 427 | |
| 428 | func BenchmarkScanGetResponseLine(b *testing.B) { |
| 429 | line := []byte("VALUE foobar1234 0 4096 1234\r\n") |