(t *testing.T, e env)
| 3276 | } |
| 3277 | |
| 3278 | func testMetadataStreamingRPC(t *testing.T, e env) { |
| 3279 | te := newTest(t, e) |
| 3280 | te.startServer(&testServer{security: e.security}) |
| 3281 | defer te.tearDown() |
| 3282 | tc := testgrpc.NewTestServiceClient(te.clientConn()) |
| 3283 | |
| 3284 | ctx := metadata.NewOutgoingContext(te.ctx, testMetadata) |
| 3285 | stream, err := tc.FullDuplexCall(ctx) |
| 3286 | if err != nil { |
| 3287 | t.Fatalf("%v.FullDuplexCall(_) = _, %v, want <nil>", tc, err) |
| 3288 | } |
| 3289 | go func() { |
| 3290 | headerMD, err := stream.Header() |
| 3291 | if e.security == "tls" { |
| 3292 | delete(headerMD, "transport_security_type") |
| 3293 | } |
| 3294 | delete(headerMD, "trailer") // ignore if present |
| 3295 | delete(headerMD, "user-agent") |
| 3296 | delete(headerMD, "content-type") |
| 3297 | delete(headerMD, "grpc-accept-encoding") |
| 3298 | if err != nil || !reflect.DeepEqual(testMetadata, headerMD) { |
| 3299 | t.Errorf("#1 %v.Header() = %v, %v, want %v, <nil>", stream, headerMD, err, testMetadata) |
| 3300 | } |
| 3301 | // test the cached value. |
| 3302 | headerMD, err = stream.Header() |
| 3303 | delete(headerMD, "trailer") // ignore if present |
| 3304 | delete(headerMD, "user-agent") |
| 3305 | delete(headerMD, "content-type") |
| 3306 | delete(headerMD, "grpc-accept-encoding") |
| 3307 | if err != nil || !reflect.DeepEqual(testMetadata, headerMD) { |
| 3308 | t.Errorf("#2 %v.Header() = %v, %v, want %v, <nil>", stream, headerMD, err, testMetadata) |
| 3309 | } |
| 3310 | err = func() error { |
| 3311 | for index := 0; index < len(reqSizes); index++ { |
| 3312 | respParam := []*testpb.ResponseParameters{ |
| 3313 | { |
| 3314 | Size: int32(respSizes[index]), |
| 3315 | }, |
| 3316 | } |
| 3317 | |
| 3318 | payload, err := newPayload(testpb.PayloadType_COMPRESSABLE, int32(reqSizes[index])) |
| 3319 | if err != nil { |
| 3320 | return err |
| 3321 | } |
| 3322 | |
| 3323 | req := &testpb.StreamingOutputCallRequest{ |
| 3324 | ResponseType: testpb.PayloadType_COMPRESSABLE, |
| 3325 | ResponseParameters: respParam, |
| 3326 | Payload: payload, |
| 3327 | } |
| 3328 | if err := stream.Send(req); err != nil { |
| 3329 | return fmt.Errorf("%v.Send(%v) = %v, want <nil>", stream, req, err) |
| 3330 | } |
| 3331 | } |
| 3332 | return nil |
| 3333 | }() |
| 3334 | // Tell the server we're done sending args. |
| 3335 | stream.CloseSend() |
no test coverage detected