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

Function testMultipleSetHeaderStreamingRPCError

test/end2end_test.go:2918–2969  ·  view source on GitHub ↗

To test header metadata is sent when sending status.

(t *testing.T, e env)

Source from the content-addressed store, hash-verified

2916
2917// To test header metadata is sent when sending status.
2918func testMultipleSetHeaderStreamingRPCError(t *testing.T, e env) {
2919 te := newTest(t, e)
2920 te.startServer(&testServer{security: e.security, setHeaderOnly: true})
2921 defer te.tearDown()
2922 tc := testgrpc.NewTestServiceClient(te.clientConn())
2923
2924 const (
2925 argSize = 1
2926 respSize = -1
2927 )
2928 ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
2929 defer cancel()
2930 ctx = metadata.NewOutgoingContext(ctx, testMetadata)
2931 stream, err := tc.FullDuplexCall(ctx)
2932 if err != nil {
2933 t.Fatalf("%v.FullDuplexCall(_) = _, %v, want <nil>", tc, err)
2934 }
2935
2936 payload, err := newPayload(testpb.PayloadType_COMPRESSABLE, argSize)
2937 if err != nil {
2938 t.Fatal(err)
2939 }
2940
2941 req := &testpb.StreamingOutputCallRequest{
2942 ResponseType: testpb.PayloadType_COMPRESSABLE,
2943 ResponseParameters: []*testpb.ResponseParameters{
2944 {Size: respSize},
2945 },
2946 Payload: payload,
2947 }
2948 if err := stream.Send(req); err != nil {
2949 t.Fatalf("%v.Send(%v) = %v, want <nil>", stream, req, err)
2950 }
2951 if _, err := stream.Recv(); err == nil {
2952 t.Fatalf("%v.Recv() = %v, want <non-nil>", stream, err)
2953 }
2954
2955 header, err := stream.Header()
2956 if err != nil {
2957 t.Fatalf("%v.Header() = _, %v, want _, <nil>", stream, err)
2958 }
2959 delete(header, "user-agent")
2960 delete(header, "content-type")
2961 delete(header, "grpc-accept-encoding")
2962 expectedHeader := metadata.Join(testMetadata, testMetadata2)
2963 if !reflect.DeepEqual(header, expectedHeader) {
2964 t.Fatalf("Received header metadata %v, want %v", header, expectedHeader)
2965 }
2966 if err := stream.CloseSend(); err != nil {
2967 t.Fatalf("%v.CloseSend() got %v, want %v", stream, err, nil)
2968 }
2969}
2970
2971// TestMalformedHTTP2Metadata verifies the returned error when the client
2972// sends an illegal metadata.

Calls 14

FullDuplexCallMethod · 0.95
NewOutgoingContextFunction · 0.92
JoinFunction · 0.92
newPayloadFunction · 0.85
newTestFunction · 0.70
FatalfMethod · 0.65
FatalMethod · 0.65
SendMethod · 0.65
RecvMethod · 0.65
HeaderMethod · 0.65
CloseSendMethod · 0.65
startServerMethod · 0.45

Tested by

no test coverage detected