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

Function testMetadataUnaryRPC

test/end2end_test.go:2504–2544  ·  view source on GitHub ↗
(t *testing.T, e env)

Source from the content-addressed store, hash-verified

2502}
2503
2504func testMetadataUnaryRPC(t *testing.T, e env) {
2505 te := newTest(t, e)
2506 te.startServer(&testServer{security: e.security})
2507 defer te.tearDown()
2508 tc := testgrpc.NewTestServiceClient(te.clientConn())
2509
2510 const argSize = 2718
2511 const respSize = 314
2512
2513 payload, err := newPayload(testpb.PayloadType_COMPRESSABLE, argSize)
2514 if err != nil {
2515 t.Fatal(err)
2516 }
2517
2518 req := &testpb.SimpleRequest{
2519 ResponseType: testpb.PayloadType_COMPRESSABLE,
2520 ResponseSize: respSize,
2521 Payload: payload,
2522 }
2523 var header, trailer metadata.MD
2524 ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
2525 defer cancel()
2526 ctx = metadata.NewOutgoingContext(ctx, testMetadata)
2527 if _, err := tc.UnaryCall(ctx, req, grpc.Header(&header), grpc.Trailer(&trailer)); err != nil {
2528 t.Fatalf("TestService.UnaryCall(%v, _, _, _) = _, %v; want _, <nil>", ctx, err)
2529 }
2530 // Ignore optional response headers that Servers may set:
2531 if header != nil {
2532 delete(header, "trailer") // RFC 2616 says server SHOULD (but optional) declare trailers
2533 delete(header, "date") // the Date header is also optional
2534 delete(header, "user-agent")
2535 delete(header, "content-type")
2536 delete(header, "grpc-accept-encoding")
2537 }
2538 if !reflect.DeepEqual(header, testMetadata) {
2539 t.Fatalf("Received header metadata %v, want %v", header, testMetadata)
2540 }
2541 if !reflect.DeepEqual(trailer, testTrailerMetadata) {
2542 t.Fatalf("Received trailer metadata %v, want %v", trailer, testTrailerMetadata)
2543 }
2544}
2545
2546func (s) TestMetadataOrderUnaryRPC(t *testing.T) {
2547 for _, e := range listTestEnv() {

Callers 1

TestMetadataUnaryRPCMethod · 0.85

Calls 11

UnaryCallMethod · 0.95
NewOutgoingContextFunction · 0.92
HeaderFunction · 0.92
TrailerFunction · 0.92
newPayloadFunction · 0.85
newTestFunction · 0.70
FatalMethod · 0.65
FatalfMethod · 0.65
startServerMethod · 0.45
tearDownMethod · 0.45
clientConnMethod · 0.45

Tested by

no test coverage detected