MCPcopy
hub / github.com/grpc/grpc-go / startBackendsAndRemoteLoadBalancer

Function startBackendsAndRemoteLoadBalancer

balancer/grpclb/grpclb_test.go:354–411  ·  view source on GitHub ↗
(t *testing.T, numberOfBackends int, customUserAgent string, statsChan chan *lbpb.ClientStats)

Source from the content-addressed store, hash-verified

352}
353
354func startBackendsAndRemoteLoadBalancer(t *testing.T, numberOfBackends int, customUserAgent string, statsChan chan *lbpb.ClientStats) (tss *testServers, cleanup func(), err error) {
355 var (
356 beListeners []net.Listener
357 ls *remoteBalancer
358 lb *grpc.Server
359 beIPs []netip.Addr
360 bePorts []int
361 )
362 for i := 0; i < numberOfBackends; i++ {
363 beLis, e := net.Listen("tcp", "localhost:0")
364 if e != nil {
365 err = fmt.Errorf("failed to listen %v", err)
366 return
367 }
368 beIPs = append(beIPs, beLis.Addr().(*net.TCPAddr).AddrPort().Addr().Unmap())
369 bePorts = append(bePorts, beLis.Addr().(*net.TCPAddr).Port)
370
371 beListeners = append(beListeners, testutils.NewRestartableListener(beLis))
372 }
373 backends := startBackends(t, beServerName, false, beListeners...)
374
375 lbLis, err := net.Listen("tcp", "localhost:0")
376 if err != nil {
377 err = fmt.Errorf("failed to create the listener for the load balancer %v", err)
378 return
379 }
380 lbLis = testutils.NewRestartableListener(lbLis)
381 lbCreds := &serverNameCheckCreds{
382 sn: lbServerName,
383 }
384 lb = grpc.NewServer(grpc.Creds(lbCreds))
385 ls = newRemoteBalancer(customUserAgent, beServerName, statsChan)
386 lbgrpc.RegisterLoadBalancerServer(lb, ls)
387 go func() {
388 lb.Serve(lbLis)
389 }()
390 t.Logf("Started remote load balancer server listening on %s", lbLis.Addr().String())
391
392 tss = &testServers{
393 lbAddr: net.JoinHostPort(fakeName, strconv.Itoa(lbLis.Addr().(*net.TCPAddr).Port)),
394 ls: ls,
395 lb: lb,
396 backends: backends,
397 beIPs: beIPs,
398 bePorts: bePorts,
399
400 lbListener: lbLis,
401 beListeners: beListeners,
402 }
403 cleanup = func() {
404 defer stopBackends(backends)
405 defer func() {
406 ls.stop()
407 lb.Stop()
408 }()
409 }
410 return
411}

Calls 13

NewRestartableListenerFunction · 0.92
NewServerFunction · 0.92
CredsFunction · 0.92
newRemoteBalancerFunction · 0.85
stopBackendsFunction · 0.85
startBackendsFunction · 0.70
ErrorfMethod · 0.65
ServeMethod · 0.65
LogfMethod · 0.65
StringMethod · 0.65
stopMethod · 0.65
StopMethod · 0.65

Tested by

no test coverage detected