(b *testing.B)
| 503 | } |
| 504 | |
| 505 | func BenchmarkUpgrade(b *testing.B) { |
| 506 | for _, n := range []int{4, 400, 4000} { |
| 507 | b.Run(fmt.Sprintf("n=%d", n), func(b *testing.B) { |
| 508 | fds := newFds(nil, nil) |
| 509 | for i := 0; i < n; i += 2 { |
| 510 | r, w, err := os.Pipe() |
| 511 | if err != nil { |
| 512 | b.Fatal(err) |
| 513 | } |
| 514 | |
| 515 | err = fds.AddFile(strconv.Itoa(n), r) |
| 516 | if err != nil { |
| 517 | b.Fatal(err) |
| 518 | } |
| 519 | r.Close() |
| 520 | |
| 521 | err = fds.AddFile(strconv.Itoa(n), w) |
| 522 | if err != nil { |
| 523 | b.Fatal(err) |
| 524 | } |
| 525 | w.Close() |
| 526 | } |
| 527 | |
| 528 | b.ResetTimer() |
| 529 | for i := 0; i < b.N; i++ { |
| 530 | u, err := newUpgrader(stdEnv, Options{}) |
| 531 | if err != nil { |
| 532 | b.Fatal("Can't create Upgrader:", err) |
| 533 | } |
| 534 | if err := u.Ready(); err != nil { |
| 535 | b.Fatal("Can't call Ready:", err) |
| 536 | } |
| 537 | |
| 538 | u.Fds = fds |
| 539 | if err := u.Upgrade(); err != nil { |
| 540 | b.Fatal(err) |
| 541 | } |
| 542 | } |
| 543 | b.StopTimer() |
| 544 | |
| 545 | for _, f := range fds.used { |
| 546 | f.Close() |
| 547 | } |
| 548 | }) |
| 549 | } |
| 550 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…