MCPcopy
hub / github.com/cloudflare/tableflip / BenchmarkUpgrade

Function BenchmarkUpgrade

upgrader_test.go:505–550  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

503}
504
505func 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}

Callers

nothing calls this directly

Calls 5

newFdsFunction · 0.85
newUpgraderFunction · 0.85
ReadyMethod · 0.65
UpgradeMethod · 0.65
AddFileMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…