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

Function testMultipleSetHeaderStreamingRPC

test/end2end_test.go:2851–2906  ·  view source on GitHub ↗

To test header metadata is sent when sending response.

(t *testing.T, e env)

Source from the content-addressed store, hash-verified

2849
2850// To test header metadata is sent when sending response.
2851func testMultipleSetHeaderStreamingRPC(t *testing.T, e env) {
2852 te := newTest(t, e)
2853 te.startServer(&testServer{security: e.security, setHeaderOnly: true})
2854 defer te.tearDown()
2855 tc := testgrpc.NewTestServiceClient(te.clientConn())
2856
2857 const (
2858 argSize = 1
2859 respSize = 1
2860 )
2861 ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
2862 defer cancel()
2863 ctx = metadata.NewOutgoingContext(ctx, testMetadata)
2864 stream, err := tc.FullDuplexCall(ctx)
2865 if err != nil {
2866 t.Fatalf("%v.FullDuplexCall(_) = _, %v, want <nil>", tc, err)
2867 }
2868
2869 payload, err := newPayload(testpb.PayloadType_COMPRESSABLE, argSize)
2870 if err != nil {
2871 t.Fatal(err)
2872 }
2873
2874 req := &testpb.StreamingOutputCallRequest{
2875 ResponseType: testpb.PayloadType_COMPRESSABLE,
2876 ResponseParameters: []*testpb.ResponseParameters{
2877 {Size: respSize},
2878 },
2879 Payload: payload,
2880 }
2881 if err := stream.Send(req); err != nil {
2882 t.Fatalf("%v.Send(%v) = %v, want <nil>", stream, req, err)
2883 }
2884 if _, err := stream.Recv(); err != nil {
2885 t.Fatalf("%v.Recv() = %v, want <nil>", stream, err)
2886 }
2887 if err := stream.CloseSend(); err != nil {
2888 t.Fatalf("%v.CloseSend() got %v, want %v", stream, err, nil)
2889 }
2890 if _, err := stream.Recv(); err != io.EOF {
2891 t.Fatalf("%v failed to complele the FullDuplexCall: %v", stream, err)
2892 }
2893
2894 header, err := stream.Header()
2895 if err != nil {
2896 t.Fatalf("%v.Header() = _, %v, want _, <nil>", stream, err)
2897 }
2898 delete(header, "user-agent")
2899 delete(header, "content-type")
2900 delete(header, "grpc-accept-encoding")
2901 expectedHeader := metadata.Join(testMetadata, testMetadata2)
2902 if !reflect.DeepEqual(header, expectedHeader) {
2903 t.Fatalf("Received header metadata %v, want %v", header, expectedHeader)
2904 }
2905
2906}
2907
2908func (s) TestMultipleSetHeaderStreamingRPCError(t *testing.T) {

Callers 1

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
CloseSendMethod · 0.65
HeaderMethod · 0.65
startServerMethod · 0.45

Tested by

no test coverage detected