(t *testing.T, sn string, fallback bool, lis ...net.Listener)
| 303 | const testmdkey = "testmd" |
| 304 | |
| 305 | func startBackends(t *testing.T, sn string, fallback bool, lis ...net.Listener) (servers []*grpc.Server) { |
| 306 | for _, l := range lis { |
| 307 | creds := &serverNameCheckCreds{ |
| 308 | sn: sn, |
| 309 | } |
| 310 | ss := &stubserver.StubServer{ |
| 311 | Listener: l, |
| 312 | EmptyCallF: func(ctx context.Context, _ *testpb.Empty) (*testpb.Empty, error) { |
| 313 | md, ok := metadata.FromIncomingContext(ctx) |
| 314 | if !ok { |
| 315 | return nil, status.Error(codes.Internal, "failed to receive metadata") |
| 316 | } |
| 317 | if !fallback && (md == nil || len(md["lb-token"]) == 0 || md["lb-token"][0] != lbToken) { |
| 318 | return nil, status.Errorf(codes.Internal, "received unexpected metadata: %v", md) |
| 319 | } |
| 320 | grpc.SetTrailer(ctx, metadata.Pairs(testmdkey, l.Addr().String())) |
| 321 | return &testpb.Empty{}, nil |
| 322 | }, |
| 323 | FullDuplexCallF: func(testgrpc.TestService_FullDuplexCallServer) error { |
| 324 | return nil |
| 325 | }, |
| 326 | } |
| 327 | if err := ss.StartServer(grpc.Creds(creds)); err != nil { |
| 328 | t.Fatalf("Failed to start backend: %v", err) |
| 329 | } |
| 330 | servers = append(servers, ss.S.(*grpc.Server)) |
| 331 | t.Logf("Started backend server listening on %s", l.Addr().String()) |
| 332 | } |
| 333 | return |
| 334 | } |
| 335 | |
| 336 | func stopBackends(servers []*grpc.Server) { |
| 337 | for _, s := range servers { |
no test coverage detected