@@ -2447,85 +2447,6 @@ func testFailedServerStreaming(t *testing.T, e env) {
24472447 }
24482448}
24492449
2450- // checkTimeoutErrorServer is a gRPC server checks context timeout error in FullDuplexCall().
2451- // It is only used in TestStreamingRPCTimeoutServerError.
2452- type checkTimeoutErrorServer struct {
2453- t * testing.T
2454- done chan struct {}
2455- testpb.TestServiceServer
2456- }
2457-
2458- func (s * checkTimeoutErrorServer ) FullDuplexCall (stream testpb.TestService_FullDuplexCallServer ) error {
2459- defer close (s .done )
2460- for {
2461- _ , err := stream .Recv ()
2462- if err != nil {
2463- if grpc .Code (err ) != codes .DeadlineExceeded {
2464- s .t .Errorf ("stream.Recv() = _, %v, want error code %s" , err , codes .DeadlineExceeded )
2465- }
2466- return err
2467- }
2468- if err := stream .Send (& testpb.StreamingOutputCallResponse {
2469- Payload : & testpb.Payload {
2470- Body : []byte {'0' },
2471- },
2472- }); err != nil {
2473- if grpc .Code (err ) != codes .DeadlineExceeded {
2474- s .t .Errorf ("stream.Send(_) = %v, want error code %s" , err , codes .DeadlineExceeded )
2475- }
2476- return err
2477- }
2478- }
2479- }
2480-
2481- func TestStreamingRPCTimeoutServerError (t * testing.T ) {
2482- defer leakCheck (t )()
2483- for _ , e := range listTestEnv () {
2484- testStreamingRPCTimeoutServerError (t , e )
2485- }
2486- }
2487-
2488- // testStreamingRPCTimeoutServerError tests the server side behavior.
2489- // When context timeout happens on client side, server should get deadline exceeded error.
2490- func testStreamingRPCTimeoutServerError (t * testing.T , e env ) {
2491- te := newTest (t , e )
2492- serverDone := make (chan struct {})
2493- te .startServer (& checkTimeoutErrorServer {t : t , done : serverDone })
2494- defer te .tearDown ()
2495-
2496- cc := te .clientConn ()
2497- tc := testpb .NewTestServiceClient (cc )
2498-
2499- req := & testpb.StreamingOutputCallRequest {}
2500- for duration := 50 * time .Millisecond ; ; duration *= 2 {
2501- ctx , _ := context .WithTimeout (context .Background (), duration )
2502- stream , err := tc .FullDuplexCall (ctx , grpc .FailFast (false ))
2503- if grpc .Code (err ) == codes .DeadlineExceeded {
2504- // Redo test with double timeout.
2505- continue
2506- }
2507- if err != nil {
2508- t .Errorf ("%v.FullDuplexCall(_) = _, %v, want <nil>" , tc , err )
2509- return
2510- }
2511- for {
2512- err := stream .Send (req )
2513- if err != nil {
2514- break
2515- }
2516- _ , err = stream .Recv ()
2517- if err != nil {
2518- break
2519- }
2520- }
2521-
2522- // Wait for context timeout on server before closing connection
2523- // to make sure the server will get timeout error.
2524- <- serverDone
2525- break
2526- }
2527- }
2528-
25292450// concurrentSendServer is a TestServiceServer whose
25302451// StreamingOutputCall makes ten serial Send calls, sending payloads
25312452// "0".."9", inclusive. TestServerStreamingConcurrent verifies they
0 commit comments