grpclb: support explicit fallback signal
Fixes #3348
Support new field from https://github.com/grpc/grpc-proto/pull/69
Support explicit fallback in grpclb
diff --git a/balancer/grpclb/grpclb_remote_balancer.go b/balancer/grpclb/grpclb_remote_balancer.go
index e70ce75007ed..a46732ac8e92 100644
--- a/balancer/grpclb/grpclb_remote_balancer.go
+++ b/balancer/grpclb/grpclb_remote_balancer.go
@@ -278,6 +278,12 @@ func (ccw *remoteBalancerCCWrapper) readServerList(s *balanceLoadClientStream) e
 		if serverList := reply.GetServerList(); serverList != nil {
 			ccw.lb.processServerList(serverList)
 		}
+		if reply.GetFallbackResponse() != nil {
+			// Eagerly enter fallback
+			ccw.lb.mu.Lock()
+			ccw.lb.refreshSubConns(ccw.lb.resolvedBackendAddrs, true, ccw.lb.usePickFirst)
+			ccw.lb.mu.Unlock()
+		}
 	}
 }
 

diff --git a/balancer/grpclb/grpclb_test.go b/balancer/grpclb/grpclb_test.go
index 128daa9fe5b2..4a990508d6f2 100644
--- a/balancer/grpclb/grpclb_test.go
+++ b/balancer/grpclb/grpclb_test.go
@@ -183,6 +183,7 @@ type remoteBalancer struct {
 	done      chan struct{}
 	stats     *rpcStats
 	statsChan chan *lbpb.ClientStats
+	fbChan    chan struct{}
 }
 
 func newRemoteBalancer(intervals []time.Duration, statsChan chan *lbpb.ClientStats) *remoteBalancer {
@@ -191,6 +192,7 @@ func newRemoteBalancer(intervals []time.Duration, statsChan chan *lbpb.ClientSta
 		done:      make(chan struct{}),
 		stats:     newRPCStats(),
 		statsChan: statsChan,
+		fbChan:    make(chan struct{}),
 	}
 }
 
@@ -199,6 +201,10 @@ func (b *remoteBalancer) stop() {
 	close(b.done)
 }
 
+func (b *remoteBalancer) fallbackNow() {
+	b.fbChan <- struct{}{}
+}
+
 func (b *remoteBalancer) BalanceLoad(stream lbgrpc.LoadBalancer_BalanceLoadServer) error {
 	req, err := stream.Recv()
 	if err != nil {
@@ -244,6 +250,12 @@ func (b *remoteBalancer) BalanceLoad(stream lbgrpc.LoadBalancer_BalanceLoadServe
 					ServerList: v,
 				},
 			}
+		case <-b.fbChan:
+			resp = &lbpb.LoadBalanceResponse{
+				LoadBalanceResponseType: &lbpb.LoadBalanceResponse_FallbackResponse{
+					FallbackResponse: &lbpb.FallbackResponse{},
+				},
+			}
 		case <-stream.Context().Done():
 			return stream.Context().Err()
 		}
@@ -805,12 +817,17 @@ func TestFallback(t *testing.T) {
 	// Close backend and remote balancer connections, should use fallback.
 	tss.beListeners[0].(*restartableListener).stopPreviousConns()
 	tss.lbListener.(*restartableListener).stopPreviousConns()
-	time.Sleep(time.Second)
 
 	var fallbackUsed bool
-	for i := 0; i < 1000; i++ {
+	for i := 0; i < 2000; i++ {
 		if _, err := testC.EmptyCall(context.Background(), &testpb.Empty{}, grpc.WaitForReady(true), grpc.Peer(&p)); err != nil {
-			t.Fatalf("%v.EmptyCall(_, _) = _, %v, want _, <nil>", testC, err)
+			// Because we are hard-closing the connection, above, it's possible
+			// for the first RPC attempt to be sent on the old connection,
+			// which will lead to an Unavailable error when it is closed.
+			// Ignore unavailable errors.
+			if status.Code(err) != codes.Unavailable {
+				t.Fatalf("%v.EmptyCall(_, _) = _, %v, want _, <nil>", testC, err)
+			}
 		}
 		if p.Addr.String() == beLis.Addr().String() {
 			fallbackUsed = true
@@ -819,7 +836,7 @@ func TestFallback(t *testing.T) {
 		time.Sleep(time.Millisecond)
 	}
 	if !fallbackUsed {
-		t.Fatalf("No RPC sent to fallback after 1 second")
+		t.Fatalf("No RPC sent to fallback after 2 seconds")
 	}
 
 	// Restart backend and remote balancer, should not use backends.
@@ -827,10 +844,8 @@ func TestFallback(t *testing.T) {
 	tss.lbListener.(*restartableListener).restart()
 	tss.ls.sls <- sl
 
-	time.Sleep(time.Second)
-
 	var backendUsed2 bool
-	for i := 0; i < 1000; i++ {
+	for i := 0; i < 2000; i++ {
 		if _, err := testC.EmptyCall(context.Background(), &testpb.Empty{}, grpc.WaitForReady(true), grpc.Peer(&p)); err != nil {
 			t.Fatalf("%v.EmptyCall(_, _) = _, %v, want _, <nil>", testC, err)
 		}
@@ -841,7 +856,112 @@ func TestFallback(t *testing.T) {
 		time.Sleep(time.Millisecond)
 	}
 	if !backendUsed2 {
-		t.Fatalf("No RPC sent to backend behind remote balancer after 1 second")
+		t.Fatalf("No RPC sent to backend behind remote balancer after 2 seconds")
+	}
+}
+
+func TestExplicitFallback(t *testing.T) {
+	defer leakcheck.Check(t)
+
+	r, cleanup := manual.GenerateAndRegisterManualResolver()
+	defer cleanup()
+
+	tss, cleanup, err := newLoadBalancer(1, nil)
+	if err != nil {
+		t.Fatalf("failed to create new load balancer: %v", err)
+	}
+	defer cleanup()
+
+	// Start a standalone backend.
+	beLis, err := net.Listen("tcp", "localhost:0")
+	if err != nil {
+		t.Fatalf("Failed to listen %v", err)
+	}
+	defer beLis.Close()
+	standaloneBEs := startBackends(beServerName, true, beLis)
+	defer stopBackends(standaloneBEs)
+
+	be := &lbpb.Server{
+		IpAddress:        tss.beIPs[0],
+		Port:             int32(tss.bePorts[0]),
+		LoadBalanceToken: lbToken,
+	}
+	var bes []*lbpb.Server
+	bes = append(bes, be)
+	sl := &lbpb.ServerList{
+		Servers: bes,
+	}
+	tss.ls.sls <- sl
+	creds := serverNameCheckCreds{}
+	ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
+	defer cancel()
+	cc, err := grpc.DialContext(ctx, r.Scheme()+":///"+beServerName,
+		grpc.WithTransportCredentials(&creds), grpc.WithContextDialer(fakeNameDialer))
+	if err != nil {
+		t.Fatalf("Failed to dial to the backend %v", err)
+	}
+	defer cc.Close()
+	testC := testpb.NewTestServiceClient(cc)
+
+	r.UpdateState(resolver.State{Addresses: []resolver.Address{{
+		Addr:       tss.lbAddr,
+		Type:       resolver.GRPCLB,
+		ServerName: lbServerName,
+	}, {
+		Addr: beLis.Addr().String(),
+		Type: resolver.Backend,
+	}}})
+
+	var p peer.Peer
+	var backendUsed bool
+	for i := 0; i < 2000; i++ {
+		if _, err := testC.EmptyCall(context.Background(), &testpb.Empty{}, grpc.WaitForReady(true), grpc.Peer(&p)); err != nil {
+			t.Fatalf("%v.EmptyCall(_, _) = _, %v, want _, <nil>", testC, err)
+		}
+		if p.Addr.(*net.TCPAddr).Port == tss.bePorts[0] {
+			backendUsed = true
+			break
+		}
+		time.Sleep(time.Millisecond)
+	}
+	if !backendUsed {
+		t.Fatalf("No RPC sent to backend behind remote balancer after 2 seconds")
+	}
+
+	// Send fallback signal from remote balancer; should use fallback.
+	tss.ls.fallbackNow()
+
+	var fallbackUsed bool
+	for i := 0; i < 2000; i++ {
+		if _, err := testC.EmptyCall(context.Background(), &testpb.Empty{}, grpc.WaitForReady(true), grpc.Peer(&p)); err != nil {
+			t.Fatalf("%v.EmptyCall(_, _) = _, %v, want _, <nil>", testC, err)
+		}
+		if p.Addr.String() == beLis.Addr().String() {
+			fallbackUsed = true
+			break
+		}
+		time.Sleep(time.Millisecond)
+	}
+	if !fallbackUsed {
+		t.Fatalf("No RPC sent to fallback after 2 seconds")
+	}
+
+	// Send another server list; should use backends again.
+	tss.ls.sls <- sl
+
+	backendUsed = false
+	for i := 0; i < 2000; i++ {
+		if _, err := testC.EmptyCall(context.Background(), &testpb.Empty{}, grpc.WaitForReady(true), grpc.Peer(&p)); err != nil {
+			t.Fatalf("%v.EmptyCall(_, _) = _, %v, want _, <nil>", testC, err)
+		}
+		if p.Addr.(*net.TCPAddr).Port == tss.bePorts[0] {
+			backendUsed = true
+			break
+		}
+		time.Sleep(time.Millisecond)
+	}
+	if !backendUsed {
+		t.Fatalf("No RPC sent to backend behind remote balancer after 2 seconds")
 	}
 }
 

{"TestExplicitFallback": {"run": "NONE", "test": "FAIL", "fix": "PASS"}}
{"TestOneBackend": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestV2ClientBackoffAfterRecvError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPipeClose": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIsRoundRobin": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestNew": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRDSCaching": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSPriority_HigherReadyCloseAllLower": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestNewConfigEnvNotSet": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCDSCaching": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_locality_caching": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEqualStringPointers": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGRPCLBStatsUnaryDrop": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCDSHandleResponse": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRateLimitedResolve": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestHeaderConfigRegexp": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestErrorsWithSameParameters": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAuthInfoFromContext": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_start_close": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCacheExpire": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncateMessageNotTruncated": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestDNSResolverRetry": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestWatchServiceWithClientClose": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestV2ClientAckFirstIsNack": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCircularBufferConcurrent": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientHandshake": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFromErrorImplementsInterface": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFileDescForType": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_start_close_deadlock": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFromNilProto": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_TwoRR_MoreBackends": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestListener": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestResolve": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAllExtensionNumbersForType": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestUpdateClientConnStateWithSameState": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLDSWatchExpiryTimer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_locality_caching_not_readd_within_timeout": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestXDSResolverWatchCallbackAfterClose": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRandomWRRNext": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestWrapSyscallConn": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerStatsFullDuplexRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIncorrectMsgType": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDS_UpdateSubBalancerName": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPipeListener": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientBinaryLogClientStreamRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAllServersDown": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientStatsServerStreamRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestDurationSlice": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCompareRPCVersions": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestSync": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIsRunningOnGCPNoProductNameFile": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestNewLoggerFromConfigString": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCloseWithPendingRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRDSHandleResponseWithoutLDSWatch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientStatsClientStreamRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_lrsStore_buildStats_rpcCounts": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestV2ClientCancelWatch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_LoadReport": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFillMethodLoggerWithConfigStringGlobal": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFromContextError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCacheRetrieveTimeoutRace": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConcurrentUsage": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestUpdateSubConnState": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTLSOverrideServerName": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCheckSecurityLevelNoGetCommonAuthInfoMethod": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLoggerV2Severity": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAuthInfoFromPeer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseMethodName": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCloneClient": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestWatchServiceWithNoResponseFromServer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestInfo": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerBinaryLogUnaryRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "ExampleAttributes_WithValues": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestInfoServerName": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetMethodLogger": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTrace": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTags": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAES128GCMEncryptRoundtrip": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRDSHandleResponse": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientStatsFullDuplexRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCacheRemove": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_lrsStore_buildStats_drops": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPipe": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestJoin": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_OneRR_AddRemoveBackend": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFrameTooLarge": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGRPCLBWeighted": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFillMethodLoggerWithConfigStringPerMethod": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEventMultipleFires": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBasicProtoCodecMarshalAndUnmarshal": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSWatchExpiryTimer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestWriteLargeData": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseMethodConfigAndSuffix": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFromError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSPriority_RemovesAllLocalities": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientStatsUnaryRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCDSWatchExpiryTimer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCheck": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestStatus_WithDetails_Fail": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestStatusErrEqual": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAddressesRemoved": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerBinaryLogFullDuplex": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFileDescContainingExtension": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_TwoRR_DifferentWeight_MoreBackends": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test/ClientWrapperWatchEDS": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestDeadline": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestDropPicker": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGRPCLBStatsStreamingDrop": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestStatus_ErrorDetails": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestStringWithAllowedValues": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerBinaryLogUnaryRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLDSGetRouteConfig": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGRPCLBPickFirst": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFromMetadata": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestReflectionEnd2end": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestDropRequest": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFromToProto": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerStatsClientStreamRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerStatsClientStreamRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerDisconnects": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConn": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGRPCLBStatsUnaryFailedToSend": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLog": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestStaggeredMarshalAndUnmarshalUsingSamePool": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTypeForName": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestSingleWriter": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestUpdateClientConnState": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCustomAuthority": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFromErrorOK": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTLSClone": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestShutdown": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestUnmarshalJSON_MarshalUnmarshal": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetTopChannels": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCloseWhileDialing": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRolloverCounter": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test/MethodFamily": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientBinaryLogUnaryRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLargeMsg": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTypeForNameNotFound": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetSocket": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRunSubTests": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestHeaderMessageConfigRegexp": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSPriority_InitTimeout": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetServerSocketsNonZeroStartID": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetSubChannel": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestStatus_ErrorDetails_Fail": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestUnmarshalJSON_NilReceiver": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestToMetadata": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_locality_caching_close_group": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAppendH2ToNextProtos": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerStatsUnaryRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAppendToOutgoingContext_FromKVSlice": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestXDSResolverGoodServiceUpdate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_TwoRR_ChangeWeight_MoreBackends": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerBinaryLogServerStreamRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEventHasFired": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_childIsPickFirst": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDS_EndpointsHealth": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestDropper": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFillMethodLoggerWithConfigStringInvalid": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetServers": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCircularBufferSerial": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerStatsFullDuplexRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestSayHello": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_TwoRR_OneBackend": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestXDSBalancerConfigParsing": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFromErrorUnknownError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestWatchServiceEmptyRDS": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestHandleClusterUpdate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPingPong": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGRPCLBStatsStreamingSuccess": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIsRunningOnGCP": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestDial": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerBinaryLogFullDuplexError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConvertUnknownError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLBCacheClientConnExpire": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientHealthCheckBackoff": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetSocketOptions": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestErrorProtoOK": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPairsMD": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerHandshakeReturnsAuthInfo": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClose": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestResolverBuilder": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAES128GCMEncrypt": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestNewLoggerFromConfigStringInvalid": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCheckSecurityLevel": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_lrsStore_ReportTo": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSPriority_HigherDownWhileAddingLower": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLDSHandleResponse": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCloneServer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestStringSlice": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestErrorIs": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFallBackWithNoServerAddress": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRegister": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestResolveFunc": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLBCache_RemoveTimer_New_Race": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientBinaryLogCancel": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSPriority_MultipleLocalities": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestWarningln": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseMethodNameInvalid": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerStatsServerStreamRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "Test_Parse": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRouteChat": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestNoSetupOrTeardown": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestListenerAndDialer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDS_LoadReport": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestHostFromTarget": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetSocketOpt": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestSet": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestSmallReadBuffer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestProfilingRace": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConnCloseWithData": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEdfWrrNext": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestResolverError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestInfoln": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestInfof": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientStatsServerStreamRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCloseWhileAccepting": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestXdsConfigMarshalToJSON": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCDSHandleResponseWithoutWatch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientStatsUnaryRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetMethodLoggerOff": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestErrorOK": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestSyncTooSlow": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestWatchService": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestSubTests": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerBinaryLogServerStreamRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGet": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_locality_caching_readd_with_different_builder": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerBinaryLogClientStreamRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseConfig": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestJSONUnmarshal": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestOneServerDown": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBackendsRoundRobin": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestValidateCluster": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestMultipleWriters": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFillMethodLoggerWithConfigStringPerService": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGRPCLBStatsStreamingFailedToSend": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAppendToOutgoingContext_Repeated": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestDisableServiceConfig": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetServerSockets": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestConvertKnownError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerAndClientHandshake": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCopy": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestExample": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPeerNotResponding": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestWarning": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestReportError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSParseRespProto": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncateMessageTruncated": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDS_OneLocality": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestV2ClientAck": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestXDSResolverBadServiceUpdate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestUpdateClientConnStateAfterClose": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAES128GCMRekeyEncryptRoundtrip": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "ExampleAttributes": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAppend": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncateMetadataTruncated": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestOverrideServerName": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLongMethodConfigRegexp": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientBinaryLogUnaryRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientStatsFullDuplexRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientHandshakeReturnsAuthInfo": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestMessageConfigRegexp": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLoadbalancingConfigParsing": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGRPCLBStatsQuashEmpty": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCheckRegisterIgnore": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestUnblocking": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestALTSAuthInfo": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCacheClearWithoutCallback": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTXTError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerStatsUnaryRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCounterSides": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFallback": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAES128GCMRekeyEncrypt": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRDSGetClusterFromRouteConfiguration": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestAppendToOutgoingContext": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestUnmarshalJSON": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBalancerGroup_ThreeRR_RemoveBalancer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDS_TwoLocalities": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIPWatcher": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSPriority_SwitchPriority": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLDSHandleResponseWithoutWatch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestNewAddressWhileBlocking": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestUnmarshalJSON_UnknownInput": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientAuthorizationCheck": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestWarningf": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCheckRPCVersions": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestBufferBloat": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestV2ClientAckNackAfterNewWatch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerBinaryLogClientStreamRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGRPCLB": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientBinaryLogServerStreamRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRDSHandleResponseWithoutRDSWatch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCacheClearWithCallback": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSHandleResponseWithoutWatch": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGetChannel": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCounterInc": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientBinaryLogClientStreamRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestProfiling": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseHeaderMessageLengthConfig": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSPriority_HighPriorityReady": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerStatsServerStreamRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLBCacheClientConnReuse": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestIntSlice": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestTruncateMetadataNotTruncated": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseHeaderMessageLengthConfigInvalid": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestWrapSyscallConnNoWrap": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestParseMethodConfigAndSuffixInvalid": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestFillMethodLoggerWithConfigStringBlacklist": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestLocalityMatchProtoMessage": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientStatsClientStreamRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCompileUpdate": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEDSHandleResponse": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestPriorityType": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestRDSWatchExpiryTimer": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestEventDoneChannel": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestGRPCLBStatsUnarySuccess": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestCircularBufferOverflow": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientBinaryLogFullDuplexRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientBinaryLogFullDuplexRPCError": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestNewConfig": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestClientBinaryLogServerStreamRPC": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestServerHandshake": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "TestV2ClientRetriesAfterBrokenStream": {"run": "PASS", "test": "PASS", "fix": "PASS"}}
{"TestExplicitFallback": {"run": "NONE", "test": "FAIL", "fix": "PASS"}}
{"passed_count": 326, "failed_count": 2, "skipped_count": 0, "passed_tests": ["TestV2ClientBackoffAfterRecvError", "TestPipeClose", "TestNew", "TestRDSCaching", "TestCDSCaching", "TestBalancerGroup_locality_caching", "TestGRPCLBStatsUnaryDrop", "TestCDSHandleResponse", "TestRateLimitedResolve", "TestDNSResolverRetry", "TestWatchServiceWithClientClose", "TestV2ClientAckFirstIsNack", "TestFileDescForType", "TestBalancerGroup_start_close_deadlock", "TestResolve", "TestAllExtensionNumbersForType", "TestUpdateClientConnStateWithSameState", "TestRandomWRRNext", "TestServerStatsFullDuplexRPCError", "TestEDS_UpdateSubBalancerName", "TestPipeListener", "TestClientBinaryLogClientStreamRPCError", "TestClientStatsServerStreamRPC", "TestIsRunningOnGCPNoProductNameFile", "TestCloseWithPendingRPC", "TestClientStatsClientStreamRPC", "TestBalancerGroup_LoadReport", "TestFillMethodLoggerWithConfigStringGlobal", "TestFromContextError", "TestConcurrentUsage", "TestUpdateSubConnState", "TestTLSOverrideServerName", "TestCheckSecurityLevelNoGetCommonAuthInfoMethod", "TestAuthInfoFromPeer", "TestParseMethodName", "TestInfo", "TestClientStatsFullDuplexRPC", "TestCacheRemove", "TestPipe", "TestJoin", "TestBalancerGroup_OneRR_AddRemoveBackend", "TestGRPCLBWeighted", "TestWriteLargeData", "TestParseMethodConfigAndSuffix", "TestFromError", "TestClientStatsUnaryRPC", "TestStatusErrEqual", "TestAddressesRemoved", "TestFileDescContainingExtension", "TestDropPicker", "TestStatus_ErrorDetails", "TestReflectionEnd2end", "TestDropRequest", "TestServerStatsClientStreamRPCError", "TestServerStatsClientStreamRPC", "TestGRPCLBStatsUnaryFailedToSend", "TestTypeForName", "TestSingleWriter", "TestUpdateClientConnState", "TestTLSClone", "TestLargeMsg", "TestTypeForNameNotFound", "TestGetServerSocketsNonZeroStartID", "TestGetSubChannel", "TestStatus_ErrorDetails_Fail", "TestToMetadata", "TestBalancerGroup_locality_caching_close_group", "TestServerStatsUnaryRPC", "TestXDSResolverGoodServiceUpdate", "TestBalancerGroup_TwoRR_ChangeWeight_MoreBackends", "TestServerBinaryLogServerStreamRPCError", "TestGetServers", "TestCircularBufferSerial", "TestServerStatsFullDuplexRPC", "TestSayHello", "TestBalancerGroup_TwoRR_OneBackend", "TestXDSBalancerConfigParsing", "TestHandleClusterUpdate", "TestPingPong", "TestLBCacheClientConnExpire", "TestClientHealthCheckBackoff", "TestErrorProtoOK", "TestClose", "TestNewLoggerFromConfigStringInvalid", "TestLDSHandleResponse", "TestCloneServer", "TestErrorIs", "TestFallBackWithNoServerAddress", "TestRegister", "TestResolveFunc", "TestLBCache_RemoveTimer_New_Race", "TestWarningln", "Test_Parse", "TestRouteChat", "TestHostFromTarget", "TestGetSocketOpt", "TestSet", "TestSmallReadBuffer", "TestProfilingRace", "TestConnCloseWithData", "TestEdfWrrNext", "TestInfof", "TestCloseWhileAccepting", "TestXdsConfigMarshalToJSON", "TestCDSHandleResponseWithoutWatch", "TestSyncTooSlow", "TestServerBinaryLogServerStreamRPC", "TestGet", "TestOneServerDown", "TestBackendsRoundRobin", "TestMultipleWriters", "TestGRPCLBStatsStreamingFailedToSend", "TestAppendToOutgoingContext_Repeated", "TestDisableServiceConfig", "TestServerAndClientHandshake", "TestCopy", "TestPeerNotResponding", "TestReportError", "TestEDS_OneLocality", "TestXDSResolverBadServiceUpdate", "TestAES128GCMRekeyEncryptRoundtrip", "TestAppend", "TestLongMethodConfigRegexp", "TestClientStatsFullDuplexRPCError", "TestClientHandshakeReturnsAuthInfo", "TestLoadbalancingConfigParsing", "TestGRPCLBStatsQuashEmpty", "TestCheckRegisterIgnore", "TestUnblocking", "TestCacheClearWithoutCallback", "TestTXTError", "TestServerStatsUnaryRPCError", "TestFallback", "TestRDSGetClusterFromRouteConfiguration", "TestBalancerGroup_ThreeRR_RemoveBalancer", "TestEDS_TwoLocalities", "TestLDSHandleResponseWithoutWatch", "TestWarningf", "TestCheckRPCVersions", "TestRDSHandleResponseWithoutRDSWatch", "TestCounterInc", "TestParseHeaderMessageLengthConfig", "TestEDSPriority_HighPriorityReady", "TestServerStatsServerStreamRPC", "TestTruncateMetadataNotTruncated", "TestParseHeaderMessageLengthConfigInvalid", "TestWrapSyscallConnNoWrap", "TestParseMethodConfigAndSuffixInvalid", "TestFillMethodLoggerWithConfigStringBlacklist", "TestLocalityMatchProtoMessage", "TestClientStatsClientStreamRPCError", "TestEDSHandleResponse", "TestRDSWatchExpiryTimer", "TestGRPCLBStatsUnarySuccess", "TestCircularBufferOverflow", "TestClientBinaryLogServerStreamRPC", "TestOneBackend", "TestIsRoundRobin", "TestEDSPriority_HigherReadyCloseAllLower", "TestNewConfigEnvNotSet", "TestEqualStringPointers", "TestHeaderConfigRegexp", "TestErrorsWithSameParameters", "TestAuthInfoFromContext", "TestBalancerGroup_start_close", "TestCacheExpire", "TestTruncateMessageNotTruncated", "TestCircularBufferConcurrent", "TestClientHandshake", "TestFromErrorImplementsInterface", "TestFromNilProto", "TestBalancerGroup_TwoRR_MoreBackends", "TestListener", "TestLDSWatchExpiryTimer", "TestBalancerGroup_locality_caching_not_readd_within_timeout", "TestXDSResolverWatchCallbackAfterClose", "TestIncorrectMsgType", "TestAllServersDown", "TestDurationSlice", "TestCompareRPCVersions", "TestSync", "TestNewLoggerFromConfigString", "TestRDSHandleResponseWithoutLDSWatch", "Test_lrsStore_buildStats_rpcCounts", "TestV2ClientCancelWatch", "TestCacheRetrieveTimeoutRace", "TestLoggerV2Severity", "TestCloneClient", "TestWatchServiceWithNoResponseFromServer", "TestServerBinaryLogUnaryRPCError", "ExampleAttributes_WithValues", "TestInfoServerName", "TestGetMethodLogger", "TestTrace", "TestTags", "TestAES128GCMEncryptRoundtrip", "TestRDSHandleResponse", "Test_lrsStore_buildStats_drops", "TestFrameTooLarge", "TestFillMethodLoggerWithConfigStringPerMethod", "TestEventMultipleFires", "TestBasicProtoCodecMarshalAndUnmarshal", "TestEDSWatchExpiryTimer", "TestEDSPriority_RemovesAllLocalities", "TestCDSWatchExpiryTimer", "TestCheck", "TestStatus_WithDetails_Fail", "TestServerBinaryLogFullDuplex", "TestBalancerGroup_TwoRR_DifferentWeight_MoreBackends", "Test/ClientWrapperWatchEDS", "TestDeadline", "TestGRPCLBStatsStreamingDrop", "TestStringWithAllowedValues", "TestServerBinaryLogUnaryRPC", "TestLDSGetRouteConfig", "TestGRPCLBPickFirst", "TestFromMetadata", "TestFromToProto", "Test", "TestBalancerDisconnects", "TestConn", "TestLog", "TestStaggeredMarshalAndUnmarshalUsingSamePool", "TestCustomAuthority", "TestFromErrorOK", "TestShutdown", "TestUnmarshalJSON_MarshalUnmarshal", "TestError", "TestGetTopChannels", "TestCloseWhileDialing", "TestRolloverCounter", "Test/MethodFamily", "TestClientBinaryLogUnaryRPCError", "TestGetSocket", "TestRunSubTests", "TestHeaderMessageConfigRegexp", "TestEDSPriority_InitTimeout", "TestUnmarshalJSON_NilReceiver", "TestAppendH2ToNextProtos", "TestAppendToOutgoingContext_FromKVSlice", "TestEventHasFired", "Test_childIsPickFirst", "TestEDS_EndpointsHealth", "TestDropper", "TestFillMethodLoggerWithConfigStringInvalid", "TestFromErrorUnknownError", "TestWatchServiceEmptyRDS", "TestGRPCLBStatsStreamingSuccess", "TestIsRunningOnGCP", "TestDial", "TestServerBinaryLogFullDuplexError", "TestConvertUnknownError", "TestGetSocketOptions", "TestPairsMD", "TestServerHandshakeReturnsAuthInfo", "TestResolverBuilder", "TestAES128GCMEncrypt", "TestCheckSecurityLevel", "Test_lrsStore_ReportTo", "TestEDSPriority_HigherDownWhileAddingLower", "TestStringSlice", "TestClientBinaryLogCancel", "TestEDSPriority_MultipleLocalities", "TestParseMethodNameInvalid", "TestServerStatsServerStreamRPCError", "TestNoSetupOrTeardown", "TestListenerAndDialer", "TestEDS_LoadReport", "TestResolverError", "TestInfoln", "TestClientStatsServerStreamRPCError", "TestClientStatsUnaryRPCError", "TestGetMethodLoggerOff", "TestErrorOK", "TestWatchService", "TestSubTests", "TestBalancerGroup_locality_caching_readd_with_different_builder", "TestServerBinaryLogClientStreamRPC", "TestParseConfig", "TestJSONUnmarshal", "TestValidateCluster", "TestFillMethodLoggerWithConfigStringPerService", "TestGetServerSockets", "TestConvertKnownError", "TestExample", "TestWarning", "TestEDSParseRespProto", "TestTruncateMessageTruncated", "TestV2ClientAck", "TestUpdateClientConnStateAfterClose", "ExampleAttributes", "TestTruncateMetadataTruncated", "TestOverrideServerName", "TestClientBinaryLogUnaryRPC", "TestMessageConfigRegexp", "TestALTSAuthInfo", "TestCounterSides", "TestAES128GCMRekeyEncrypt", "TestAppendToOutgoingContext", "TestUnmarshalJSON", "TestIPWatcher", "TestEDSPriority_SwitchPriority", "TestNewAddressWhileBlocking", "TestUnmarshalJSON_UnknownInput", "TestClientAuthorizationCheck", "TestBufferBloat", "TestV2ClientAckNackAfterNewWatch", "TestServerBinaryLogClientStreamRPCError", "TestGRPCLB", "TestClientBinaryLogServerStreamRPCError", "TestCacheClearWithCallback", "TestEDSHandleResponseWithoutWatch", "TestGetChannel", "TestClientBinaryLogClientStreamRPC", "TestProfiling", "TestLBCacheClientConnReuse", "TestIntSlice", "TestCompileUpdate", "TestPriorityType", "TestEventDoneChannel", "TestClientBinaryLogFullDuplexRPC", "TestClientBinaryLogFullDuplexRPCError", "TestNewConfig", "TestWrapSyscallConn", "TestServerHandshake", "TestV2ClientRetriesAfterBrokenStream"], "failed_tests": ["google.golang.org/grpc/internal", "google.golang.org/grpc"], "skipped_tests": []}
{"passed_count": 326, "failed_count": 4, "skipped_count": 0, "passed_tests": ["TestV2ClientBackoffAfterRecvError", "TestPipeClose", "TestNew", "TestRDSCaching", "TestCDSCaching", "TestBalancerGroup_locality_caching", "TestGRPCLBStatsUnaryDrop", "TestCDSHandleResponse", "TestRateLimitedResolve", "TestDNSResolverRetry", "TestWatchServiceWithClientClose", "TestV2ClientAckFirstIsNack", "TestFileDescForType", "TestBalancerGroup_start_close_deadlock", "TestResolve", "TestAllExtensionNumbersForType", "TestUpdateClientConnStateWithSameState", "TestRandomWRRNext", "TestServerStatsFullDuplexRPCError", "TestEDS_UpdateSubBalancerName", "TestPipeListener", "TestClientBinaryLogClientStreamRPCError", "TestClientStatsServerStreamRPC", "TestIsRunningOnGCPNoProductNameFile", "TestCloseWithPendingRPC", "TestClientStatsClientStreamRPC", "TestBalancerGroup_LoadReport", "TestFillMethodLoggerWithConfigStringGlobal", "TestFromContextError", "TestConcurrentUsage", "TestUpdateSubConnState", "TestTLSOverrideServerName", "TestCheckSecurityLevelNoGetCommonAuthInfoMethod", "TestAuthInfoFromPeer", "TestParseMethodName", "TestInfo", "TestClientStatsFullDuplexRPC", "TestCacheRemove", "TestPipe", "TestJoin", "TestBalancerGroup_OneRR_AddRemoveBackend", "TestGRPCLBWeighted", "TestWriteLargeData", "TestParseMethodConfigAndSuffix", "TestFromError", "TestClientStatsUnaryRPC", "TestStatusErrEqual", "TestAddressesRemoved", "TestFileDescContainingExtension", "TestDropPicker", "TestStatus_ErrorDetails", "TestReflectionEnd2end", "TestDropRequest", "TestServerStatsClientStreamRPCError", "TestServerStatsClientStreamRPC", "TestGRPCLBStatsUnaryFailedToSend", "TestTypeForName", "TestSingleWriter", "TestUpdateClientConnState", "TestTLSClone", "TestLargeMsg", "TestTypeForNameNotFound", "TestGetServerSocketsNonZeroStartID", "TestGetSubChannel", "TestStatus_ErrorDetails_Fail", "TestToMetadata", "TestBalancerGroup_locality_caching_close_group", "TestServerStatsUnaryRPC", "TestXDSResolverGoodServiceUpdate", "TestBalancerGroup_TwoRR_ChangeWeight_MoreBackends", "TestServerBinaryLogServerStreamRPCError", "TestGetServers", "TestCircularBufferSerial", "TestServerStatsFullDuplexRPC", "TestSayHello", "TestBalancerGroup_TwoRR_OneBackend", "TestXDSBalancerConfigParsing", "TestHandleClusterUpdate", "TestPingPong", "TestLBCacheClientConnExpire", "TestClientHealthCheckBackoff", "TestErrorProtoOK", "TestClose", "TestNewLoggerFromConfigStringInvalid", "TestLDSHandleResponse", "TestCloneServer", "TestErrorIs", "TestFallBackWithNoServerAddress", "TestRegister", "TestResolveFunc", "TestLBCache_RemoveTimer_New_Race", "TestWarningln", "Test_Parse", "TestRouteChat", "TestHostFromTarget", "TestGetSocketOpt", "TestSet", "TestSmallReadBuffer", "TestProfilingRace", "TestConnCloseWithData", "TestEdfWrrNext", "TestInfof", "TestCloseWhileAccepting", "TestXdsConfigMarshalToJSON", "TestCDSHandleResponseWithoutWatch", "TestSyncTooSlow", "TestServerBinaryLogServerStreamRPC", "TestGet", "TestOneServerDown", "TestBackendsRoundRobin", "TestMultipleWriters", "TestGRPCLBStatsStreamingFailedToSend", "TestAppendToOutgoingContext_Repeated", "TestDisableServiceConfig", "TestServerAndClientHandshake", "TestCopy", "TestPeerNotResponding", "TestReportError", "TestEDS_OneLocality", "TestXDSResolverBadServiceUpdate", "TestAES128GCMRekeyEncryptRoundtrip", "TestAppend", "TestLongMethodConfigRegexp", "TestClientStatsFullDuplexRPCError", "TestClientHandshakeReturnsAuthInfo", "TestLoadbalancingConfigParsing", "TestGRPCLBStatsQuashEmpty", "TestCheckRegisterIgnore", "TestUnblocking", "TestCacheClearWithoutCallback", "TestTXTError", "TestServerStatsUnaryRPCError", "TestFallback", "TestRDSGetClusterFromRouteConfiguration", "TestBalancerGroup_ThreeRR_RemoveBalancer", "TestEDS_TwoLocalities", "TestLDSHandleResponseWithoutWatch", "TestWarningf", "TestCheckRPCVersions", "TestRDSHandleResponseWithoutRDSWatch", "TestCounterInc", "TestParseHeaderMessageLengthConfig", "TestEDSPriority_HighPriorityReady", "TestServerStatsServerStreamRPC", "TestTruncateMetadataNotTruncated", "TestParseHeaderMessageLengthConfigInvalid", "TestWrapSyscallConnNoWrap", "TestParseMethodConfigAndSuffixInvalid", "TestFillMethodLoggerWithConfigStringBlacklist", "TestLocalityMatchProtoMessage", "TestClientStatsClientStreamRPCError", "TestEDSHandleResponse", "TestRDSWatchExpiryTimer", "TestGRPCLBStatsUnarySuccess", "TestCircularBufferOverflow", "TestClientBinaryLogServerStreamRPC", "TestOneBackend", "TestIsRoundRobin", "TestEDSPriority_HigherReadyCloseAllLower", "TestNewConfigEnvNotSet", "TestEqualStringPointers", "TestHeaderConfigRegexp", "TestErrorsWithSameParameters", "TestAuthInfoFromContext", "TestBalancerGroup_start_close", "TestCacheExpire", "TestTruncateMessageNotTruncated", "TestCircularBufferConcurrent", "TestClientHandshake", "TestFromErrorImplementsInterface", "TestFromNilProto", "TestBalancerGroup_TwoRR_MoreBackends", "TestListener", "TestLDSWatchExpiryTimer", "TestBalancerGroup_locality_caching_not_readd_within_timeout", "TestXDSResolverWatchCallbackAfterClose", "TestIncorrectMsgType", "TestAllServersDown", "TestDurationSlice", "TestCompareRPCVersions", "TestSync", "TestNewLoggerFromConfigString", "TestRDSHandleResponseWithoutLDSWatch", "Test_lrsStore_buildStats_rpcCounts", "TestV2ClientCancelWatch", "TestCacheRetrieveTimeoutRace", "TestLoggerV2Severity", "TestCloneClient", "TestWatchServiceWithNoResponseFromServer", "TestServerBinaryLogUnaryRPCError", "ExampleAttributes_WithValues", "TestInfoServerName", "TestGetMethodLogger", "TestTrace", "TestTags", "TestAES128GCMEncryptRoundtrip", "TestRDSHandleResponse", "Test_lrsStore_buildStats_drops", "TestFrameTooLarge", "TestFillMethodLoggerWithConfigStringPerMethod", "TestEventMultipleFires", "TestBasicProtoCodecMarshalAndUnmarshal", "TestEDSWatchExpiryTimer", "TestEDSPriority_RemovesAllLocalities", "TestCDSWatchExpiryTimer", "TestCheck", "TestStatus_WithDetails_Fail", "TestServerBinaryLogFullDuplex", "TestBalancerGroup_TwoRR_DifferentWeight_MoreBackends", "Test/ClientWrapperWatchEDS", "TestDeadline", "TestGRPCLBStatsStreamingDrop", "TestStringWithAllowedValues", "TestServerBinaryLogUnaryRPC", "TestLDSGetRouteConfig", "TestGRPCLBPickFirst", "TestFromMetadata", "TestFromToProto", "Test", "TestBalancerDisconnects", "TestConn", "TestLog", "TestStaggeredMarshalAndUnmarshalUsingSamePool", "TestCustomAuthority", "TestFromErrorOK", "TestShutdown", "TestUnmarshalJSON_MarshalUnmarshal", "TestError", "TestGetTopChannels", "TestCloseWhileDialing", "TestRolloverCounter", "Test/MethodFamily", "TestClientBinaryLogUnaryRPCError", "TestGetSocket", "TestRunSubTests", "TestHeaderMessageConfigRegexp", "TestEDSPriority_InitTimeout", "TestUnmarshalJSON_NilReceiver", "TestAppendH2ToNextProtos", "TestAppendToOutgoingContext_FromKVSlice", "TestEventHasFired", "Test_childIsPickFirst", "TestEDS_EndpointsHealth", "TestDropper", "TestFillMethodLoggerWithConfigStringInvalid", "TestFromErrorUnknownError", "TestWatchServiceEmptyRDS", "TestGRPCLBStatsStreamingSuccess", "TestIsRunningOnGCP", "TestDial", "TestServerBinaryLogFullDuplexError", "TestConvertUnknownError", "TestGetSocketOptions", "TestPairsMD", "TestServerHandshakeReturnsAuthInfo", "TestResolverBuilder", "TestAES128GCMEncrypt", "TestCheckSecurityLevel", "Test_lrsStore_ReportTo", "TestEDSPriority_HigherDownWhileAddingLower", "TestStringSlice", "TestClientBinaryLogCancel", "TestEDSPriority_MultipleLocalities", "TestParseMethodNameInvalid", "TestServerStatsServerStreamRPCError", "TestNoSetupOrTeardown", "TestListenerAndDialer", "TestEDS_LoadReport", "TestResolverError", "TestInfoln", "TestClientStatsServerStreamRPCError", "TestClientStatsUnaryRPCError", "TestGetMethodLoggerOff", "TestErrorOK", "TestWatchService", "TestSubTests", "TestBalancerGroup_locality_caching_readd_with_different_builder", "TestServerBinaryLogClientStreamRPC", "TestParseConfig", "TestJSONUnmarshal", "TestValidateCluster", "TestFillMethodLoggerWithConfigStringPerService", "TestGetServerSockets", "TestConvertKnownError", "TestExample", "TestWarning", "TestEDSParseRespProto", "TestTruncateMessageTruncated", "TestV2ClientAck", "TestUpdateClientConnStateAfterClose", "ExampleAttributes", "TestTruncateMetadataTruncated", "TestOverrideServerName", "TestClientBinaryLogUnaryRPC", "TestMessageConfigRegexp", "TestALTSAuthInfo", "TestCounterSides", "TestAES128GCMRekeyEncrypt", "TestAppendToOutgoingContext", "TestUnmarshalJSON", "TestIPWatcher", "TestEDSPriority_SwitchPriority", "TestNewAddressWhileBlocking", "TestUnmarshalJSON_UnknownInput", "TestClientAuthorizationCheck", "TestBufferBloat", "TestV2ClientAckNackAfterNewWatch", "TestServerBinaryLogClientStreamRPCError", "TestGRPCLB", "TestClientBinaryLogServerStreamRPCError", "TestCacheClearWithCallback", "TestEDSHandleResponseWithoutWatch", "TestGetChannel", "TestClientBinaryLogClientStreamRPC", "TestProfiling", "TestLBCacheClientConnReuse", "TestIntSlice", "TestCompileUpdate", "TestPriorityType", "TestEventDoneChannel", "TestClientBinaryLogFullDuplexRPC", "TestClientBinaryLogFullDuplexRPCError", "TestNewConfig", "TestWrapSyscallConn", "TestServerHandshake", "TestV2ClientRetriesAfterBrokenStream"], "failed_tests": ["TestExplicitFallback", "google.golang.org/grpc/internal", "google.golang.org/grpc/balancer", "google.golang.org/grpc"], "skipped_tests": []}
{"passed_count": 327, "failed_count": 2, "skipped_count": 0, "passed_tests": ["TestV2ClientBackoffAfterRecvError", "TestPipeClose", "TestNew", "TestRDSCaching", "TestCDSCaching", "TestBalancerGroup_locality_caching", "TestGRPCLBStatsUnaryDrop", "TestCDSHandleResponse", "TestRateLimitedResolve", "TestDNSResolverRetry", "TestWatchServiceWithClientClose", "TestV2ClientAckFirstIsNack", "TestFileDescForType", "TestBalancerGroup_start_close_deadlock", "TestResolve", "TestAllExtensionNumbersForType", "TestUpdateClientConnStateWithSameState", "TestRandomWRRNext", "TestServerStatsFullDuplexRPCError", "TestEDS_UpdateSubBalancerName", "TestPipeListener", "TestClientBinaryLogClientStreamRPCError", "TestClientStatsServerStreamRPC", "TestIsRunningOnGCPNoProductNameFile", "TestCloseWithPendingRPC", "TestClientStatsClientStreamRPC", "TestBalancerGroup_LoadReport", "TestFillMethodLoggerWithConfigStringGlobal", "TestFromContextError", "TestConcurrentUsage", "TestUpdateSubConnState", "TestTLSOverrideServerName", "TestCheckSecurityLevelNoGetCommonAuthInfoMethod", "TestAuthInfoFromPeer", "TestParseMethodName", "TestInfo", "TestClientStatsFullDuplexRPC", "TestCacheRemove", "TestPipe", "TestJoin", "TestBalancerGroup_OneRR_AddRemoveBackend", "TestGRPCLBWeighted", "TestWriteLargeData", "TestParseMethodConfigAndSuffix", "TestFromError", "TestClientStatsUnaryRPC", "TestStatusErrEqual", "TestAddressesRemoved", "TestFileDescContainingExtension", "TestDropPicker", "TestStatus_ErrorDetails", "TestReflectionEnd2end", "TestDropRequest", "TestServerStatsClientStreamRPCError", "TestServerStatsClientStreamRPC", "TestGRPCLBStatsUnaryFailedToSend", "TestTypeForName", "TestSingleWriter", "TestUpdateClientConnState", "TestTLSClone", "TestLargeMsg", "TestTypeForNameNotFound", "TestGetServerSocketsNonZeroStartID", "TestGetSubChannel", "TestStatus_ErrorDetails_Fail", "TestToMetadata", "TestBalancerGroup_locality_caching_close_group", "TestServerStatsUnaryRPC", "TestXDSResolverGoodServiceUpdate", "TestBalancerGroup_TwoRR_ChangeWeight_MoreBackends", "TestServerBinaryLogServerStreamRPCError", "TestGetServers", "TestCircularBufferSerial", "TestServerStatsFullDuplexRPC", "TestSayHello", "TestBalancerGroup_TwoRR_OneBackend", "TestXDSBalancerConfigParsing", "TestHandleClusterUpdate", "TestPingPong", "TestLBCacheClientConnExpire", "TestClientHealthCheckBackoff", "TestErrorProtoOK", "TestExplicitFallback", "TestClose", "TestNewLoggerFromConfigStringInvalid", "TestLDSHandleResponse", "TestCloneServer", "TestErrorIs", "TestFallBackWithNoServerAddress", "TestRegister", "TestResolveFunc", "TestLBCache_RemoveTimer_New_Race", "TestWarningln", "Test_Parse", "TestRouteChat", "TestHostFromTarget", "TestGetSocketOpt", "TestSet", "TestSmallReadBuffer", "TestProfilingRace", "TestConnCloseWithData", "TestEdfWrrNext", "TestInfof", "TestCloseWhileAccepting", "TestXdsConfigMarshalToJSON", "TestCDSHandleResponseWithoutWatch", "TestSyncTooSlow", "TestServerBinaryLogServerStreamRPC", "TestGet", "TestOneServerDown", "TestBackendsRoundRobin", "TestMultipleWriters", "TestGRPCLBStatsStreamingFailedToSend", "TestAppendToOutgoingContext_Repeated", "TestDisableServiceConfig", "TestServerAndClientHandshake", "TestCopy", "TestPeerNotResponding", "TestReportError", "TestEDS_OneLocality", "TestXDSResolverBadServiceUpdate", "TestAES128GCMRekeyEncryptRoundtrip", "TestAppend", "TestLongMethodConfigRegexp", "TestClientStatsFullDuplexRPCError", "TestClientHandshakeReturnsAuthInfo", "TestLoadbalancingConfigParsing", "TestGRPCLBStatsQuashEmpty", "TestCheckRegisterIgnore", "TestUnblocking", "TestCacheClearWithoutCallback", "TestTXTError", "TestServerStatsUnaryRPCError", "TestFallback", "TestRDSGetClusterFromRouteConfiguration", "TestBalancerGroup_ThreeRR_RemoveBalancer", "TestEDS_TwoLocalities", "TestLDSHandleResponseWithoutWatch", "TestWarningf", "TestCheckRPCVersions", "TestRDSHandleResponseWithoutRDSWatch", "TestCounterInc", "TestParseHeaderMessageLengthConfig", "TestEDSPriority_HighPriorityReady", "TestServerStatsServerStreamRPC", "TestTruncateMetadataNotTruncated", "TestParseHeaderMessageLengthConfigInvalid", "TestWrapSyscallConnNoWrap", "TestParseMethodConfigAndSuffixInvalid", "TestFillMethodLoggerWithConfigStringBlacklist", "TestLocalityMatchProtoMessage", "TestClientStatsClientStreamRPCError", "TestEDSHandleResponse", "TestRDSWatchExpiryTimer", "TestGRPCLBStatsUnarySuccess", "TestCircularBufferOverflow", "TestClientBinaryLogServerStreamRPC", "TestOneBackend", "TestIsRoundRobin", "TestEDSPriority_HigherReadyCloseAllLower", "TestNewConfigEnvNotSet", "TestEqualStringPointers", "TestHeaderConfigRegexp", "TestErrorsWithSameParameters", "TestAuthInfoFromContext", "TestBalancerGroup_start_close", "TestCacheExpire", "TestTruncateMessageNotTruncated", "TestCircularBufferConcurrent", "TestClientHandshake", "TestFromErrorImplementsInterface", "TestFromNilProto", "TestBalancerGroup_TwoRR_MoreBackends", "TestListener", "TestLDSWatchExpiryTimer", "TestBalancerGroup_locality_caching_not_readd_within_timeout", "TestXDSResolverWatchCallbackAfterClose", "TestIncorrectMsgType", "TestAllServersDown", "TestDurationSlice", "TestCompareRPCVersions", "TestSync", "TestNewLoggerFromConfigString", "TestRDSHandleResponseWithoutLDSWatch", "Test_lrsStore_buildStats_rpcCounts", "TestV2ClientCancelWatch", "TestCacheRetrieveTimeoutRace", "TestLoggerV2Severity", "TestCloneClient", "TestWatchServiceWithNoResponseFromServer", "TestServerBinaryLogUnaryRPCError", "ExampleAttributes_WithValues", "TestInfoServerName", "TestGetMethodLogger", "TestTrace", "TestTags", "TestAES128GCMEncryptRoundtrip", "TestRDSHandleResponse", "Test_lrsStore_buildStats_drops", "TestFrameTooLarge", "TestFillMethodLoggerWithConfigStringPerMethod", "TestEventMultipleFires", "TestBasicProtoCodecMarshalAndUnmarshal", "TestEDSWatchExpiryTimer", "TestEDSPriority_RemovesAllLocalities", "TestCDSWatchExpiryTimer", "TestCheck", "TestStatus_WithDetails_Fail", "TestServerBinaryLogFullDuplex", "TestBalancerGroup_TwoRR_DifferentWeight_MoreBackends", "Test/ClientWrapperWatchEDS", "TestDeadline", "TestGRPCLBStatsStreamingDrop", "TestStringWithAllowedValues", "TestServerBinaryLogUnaryRPC", "TestLDSGetRouteConfig", "TestGRPCLBPickFirst", "TestFromMetadata", "TestFromToProto", "Test", "TestBalancerDisconnects", "TestConn", "TestLog", "TestStaggeredMarshalAndUnmarshalUsingSamePool", "TestCustomAuthority", "TestFromErrorOK", "TestShutdown", "TestUnmarshalJSON_MarshalUnmarshal", "TestError", "TestGetTopChannels", "TestCloseWhileDialing", "TestRolloverCounter", "Test/MethodFamily", "TestClientBinaryLogUnaryRPCError", "TestGetSocket", "TestRunSubTests", "TestHeaderMessageConfigRegexp", "TestEDSPriority_InitTimeout", "TestUnmarshalJSON_NilReceiver", "TestAppendH2ToNextProtos", "TestAppendToOutgoingContext_FromKVSlice", "TestEventHasFired", "Test_childIsPickFirst", "TestEDS_EndpointsHealth", "TestDropper", "TestFillMethodLoggerWithConfigStringInvalid", "TestFromErrorUnknownError", "TestWatchServiceEmptyRDS", "TestGRPCLBStatsStreamingSuccess", "TestIsRunningOnGCP", "TestDial", "TestServerBinaryLogFullDuplexError", "TestConvertUnknownError", "TestGetSocketOptions", "TestPairsMD", "TestServerHandshakeReturnsAuthInfo", "TestResolverBuilder", "TestAES128GCMEncrypt", "TestCheckSecurityLevel", "Test_lrsStore_ReportTo", "TestEDSPriority_HigherDownWhileAddingLower", "TestStringSlice", "TestClientBinaryLogCancel", "TestEDSPriority_MultipleLocalities", "TestParseMethodNameInvalid", "TestServerStatsServerStreamRPCError", "TestNoSetupOrTeardown", "TestListenerAndDialer", "TestEDS_LoadReport", "TestResolverError", "TestInfoln", "TestClientStatsServerStreamRPCError", "TestClientStatsUnaryRPCError", "TestGetMethodLoggerOff", "TestErrorOK", "TestWatchService", "TestSubTests", "TestBalancerGroup_locality_caching_readd_with_different_builder", "TestServerBinaryLogClientStreamRPC", "TestParseConfig", "TestJSONUnmarshal", "TestValidateCluster", "TestFillMethodLoggerWithConfigStringPerService", "TestGetServerSockets", "TestConvertKnownError", "TestExample", "TestWarning", "TestEDSParseRespProto", "TestTruncateMessageTruncated", "TestV2ClientAck", "TestUpdateClientConnStateAfterClose", "ExampleAttributes", "TestTruncateMetadataTruncated", "TestOverrideServerName", "TestClientBinaryLogUnaryRPC", "TestMessageConfigRegexp", "TestALTSAuthInfo", "TestCounterSides", "TestAES128GCMRekeyEncrypt", "TestAppendToOutgoingContext", "TestUnmarshalJSON", "TestIPWatcher", "TestEDSPriority_SwitchPriority", "TestNewAddressWhileBlocking", "TestUnmarshalJSON_UnknownInput", "TestClientAuthorizationCheck", "TestBufferBloat", "TestV2ClientAckNackAfterNewWatch", "TestServerBinaryLogClientStreamRPCError", "TestGRPCLB", "TestClientBinaryLogServerStreamRPCError", "TestCacheClearWithCallback", "TestEDSHandleResponseWithoutWatch", "TestGetChannel", "TestClientBinaryLogClientStreamRPC", "TestProfiling", "TestLBCacheClientConnReuse", "TestIntSlice", "TestCompileUpdate", "TestPriorityType", "TestEventDoneChannel", "TestClientBinaryLogFullDuplexRPC", "TestClientBinaryLogFullDuplexRPCError", "TestNewConfig", "TestWrapSyscallConn", "TestServerHandshake", "TestV2ClientRetriesAfterBrokenStream"], "failed_tests": ["google.golang.org/grpc/internal", "google.golang.org/grpc"], "skipped_tests": []}