in e2e-examples/echo/echo-client/main.go [47:99]
func main() {
flag.Parse()
conn, err := grpc.Dial(
*addr,
grpc.WithTransportCredentials(credentials.NewClientTLSFromCert(nil, "")),
grpc.WithBlock())
if err != nil {
log.Fatalf("did not connect: %v", err)
}
defer conn.Close()
client := pb.NewGrpcCloudapiClient(conn)
msg := strings.Repeat("x", *reqSize*1024)
req := &pb.EchoWithResponseSizeRequest{EchoMsg: msg, ResponseSize: int32(*rspSize * 1024)}
// begin warmup calls
for i := 0; i < *warmup; i++ {
_, err := client.EchoWithResponseSize(context.Background(), req)
if err != nil {
log.Fatalf("EchoWithResponseSize failed with error during warmup: %v", err)
}
}
rsts := []int{}
if !*async {
// begin tests
for i := 0; i < *numRpcs; i++ {
start := time.Now()
_, err := client.EchoWithResponseSize(context.Background(), req)
if err != nil {
log.Fatalf("EchoWithResponseSize failed with error: %v", err)
}
rsts = append(rsts, int(time.Since(start).Milliseconds()))
}
printRsts(*numRpcs, *rspSize, *reqSize, rsts)
} else {
var wg sync.WaitGroup
wg.Add(*numRpcs)
for i := 0; i < *numRpcs; i++ {
go func(r *pb.EchoWithResponseSizeRequest, n int) {
defer wg.Done()
_, err := client.EchoWithResponseSize(context.Background(), r)
if err != nil {
log.Fatalf("EchoWithResponseSize failed with error: %v", err)
}
log.Printf("Done %vth request", n)
}(req, i)
}
wg.Wait()
}
}