To test header metadata is sent when sending status.
(t *testing.T, e env)
| 2760 | |
| 2761 | // To test header metadata is sent when sending status. |
| 2762 | func testMultipleSetHeaderUnaryRPCError(t *testing.T, e env) { |
| 2763 | te := newTest(t, e) |
| 2764 | te.startServer(&testServer{security: e.security, setHeaderOnly: true}) |
| 2765 | defer te.tearDown() |
| 2766 | tc := testgrpc.NewTestServiceClient(te.clientConn()) |
| 2767 | |
| 2768 | const ( |
| 2769 | argSize = 1 |
| 2770 | respSize = -1 // Invalid respSize to make RPC fail. |
| 2771 | ) |
| 2772 | payload, err := newPayload(testpb.PayloadType_COMPRESSABLE, argSize) |
| 2773 | if err != nil { |
| 2774 | t.Fatal(err) |
| 2775 | } |
| 2776 | |
| 2777 | req := &testpb.SimpleRequest{ |
| 2778 | ResponseType: testpb.PayloadType_COMPRESSABLE, |
| 2779 | ResponseSize: respSize, |
| 2780 | Payload: payload, |
| 2781 | } |
| 2782 | var header metadata.MD |
| 2783 | ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout) |
| 2784 | defer cancel() |
| 2785 | ctx = metadata.NewOutgoingContext(ctx, testMetadata) |
| 2786 | if _, err := tc.UnaryCall(ctx, req, grpc.Header(&header), grpc.WaitForReady(true)); err == nil { |
| 2787 | t.Fatalf("TestService.UnaryCall(%v, _, _, _) = _, %v; want _, <non-nil>", ctx, err) |
| 2788 | } |
| 2789 | delete(header, "user-agent") |
| 2790 | delete(header, "content-type") |
| 2791 | delete(header, "grpc-accept-encoding") |
| 2792 | expectedHeader := metadata.Join(testMetadata, testMetadata2) |
| 2793 | if !reflect.DeepEqual(header, expectedHeader) { |
| 2794 | t.Fatalf("Received header metadata %v, want %v", header, expectedHeader) |
| 2795 | } |
| 2796 | } |
| 2797 | |
| 2798 | func (s) TestSetAndSendHeaderStreamingRPC(t *testing.T) { |
| 2799 | for _, e := range listTestEnv() { |
no test coverage detected