blob: ca94f1137d39510b862b5613b4578c42414b3dc6 [file] [log] [blame]
package benchmark
import (
"testing"
"time"
"v.io/x/ref/lib/testutil/benchmark"
tsecurity "v.io/x/ref/lib/testutil/security"
"v.io/x/ref/profiles/internal/ipc/stream/manager"
_ "v.io/x/ref/profiles/static"
"v.io/v23/naming"
"v.io/v23/options"
)
// benchmarkDialVC measures VC creation time over the underlying VIF.
func benchmarkDialVC(b *testing.B, mode options.VCSecurityLevel) {
stats := benchmark.AddStats(b, 16)
server := manager.InternalNew(naming.FixedRoutingID(0x5))
client := manager.InternalNew(naming.FixedRoutingID(0xc))
_, ep, err := server.Listen("tcp", "127.0.0.1:0", tsecurity.NewPrincipal("test"), mode)
if err != nil {
b.Fatal(err)
}
// Warmup to create the underlying VIF.
_, err = client.Dial(ep, mode)
if err != nil {
b.Fatal(err)
}
b.ResetTimer() // Exclude setup time from measurement.
for i := 0; i < b.N; i++ {
b.StartTimer()
start := time.Now()
_, err := client.Dial(ep, mode)
if err != nil {
b.Fatal(err)
}
duration := time.Since(start)
b.StopTimer()
stats.Add(duration)
client.ShutdownEndpoint(ep)
}
client.Shutdown()
server.Shutdown()
}