diff --git a/doc/interop-test-descriptions.md b/doc/interop-test-descriptions.md index 3ee5d0f0320ce8110eee73ca6eedf4a04a527f1a..065e107c24944d6fdfe2948b431bca5037ada671 100644 --- a/doc/interop-test-descriptions.md +++ b/doc/interop-test-descriptions.md @@ -483,18 +483,17 @@ library to obtain the authorization token * received SimpleResponse.oauth_scope is in `--oauth_scope` -### Metadata (TODO: fix name) - -Status: Not yet implementable +### custom_metadata This test verifies that custom metadata in either binary or ascii format can be -sent in header and trailer. +sent as initial-metadata by the client and as both initial- and trailing-metadata +by the server. Server features: * [UnaryCall][] +* [FullDuplexCall][] * [Compressable Payload][] -* Ability to receive custom metadata from client in header and send custom data - back to client in both header and trailer. (TODO: this is not defined) +* [Echo Metadata][] Procedure: 1. While sending custom metadata (ascii + binary) in the header, client calls @@ -509,21 +508,29 @@ Procedure: } } ``` +The client attaches custom metadata with the following keys and values: + ``` + key: "x-grpc-test-echo-initial", value: "test_initial_metadata_value" + key: "x-grpc-test-echo-trailing-bin", value: 0xababab + ``` + 2. Client repeats step 1. with FullDuplexCall instead of UnaryCall. Asserts: * call was successful -* custom metadata is echoed back in the response header. -* custom metadata is echoed back in the response trailer. +* metadata with key `"x-grpc-test-echo-initial"` and value `"test_initial_metadata_value"`is received in the initial metadata. +* metadata with key `"x-grpc-test-echo-trailing-bin"` and value `0xababab` is received in the trailing metadata. + -### status_code_and_message -Status: Not yet implementable +### status_code_and_message This test verifies unary calls succeed in sending messages, and propagates back status code and message sent along with the messages. Server features: * [UnaryCall][] +* [FullDuplexCall][] +* [Echo Status][] Procedure: 1. Client calls UnaryCall with: @@ -536,6 +543,8 @@ Procedure: } } ``` +2. Client repeats step 1. with FullDuplexCall instead of UnaryCall. + Asserts: * received status code is the same with sent code @@ -543,21 +552,15 @@ Asserts: ### unimplemented_method -Status: Not yet implementable +Status: Ready for implementation. Blocking beta. -This test verifies calling unimplemented RPC method returns unimplemented -status. +This test verifies calling unimplemented RPC method returns the UNIMPLEMENTED status code. Procedure: -* Client calls UnimplementedCall with: +* Client calls `grpc.testing.UnimplementedService/UnimplementedCall` with an empty request (defined as `grpc.testing.Empty`): ``` { - response_type: COMPRESSABLE - response_size: 314159 - payload:{ - body: 271828 bytes of zeros - } } ``` @@ -767,6 +770,22 @@ When the client requests COMPRESSABLE payload, the response includes a payload of the size requested containing all zeros and the payload type is COMPRESSABLE. +### Echo Status +[Echo Status]: #echo-status +When the client sends a response_status in the request payload, the server closes +the stream with the status code and messsage contained within said response_status. +The server will not process any further messages on the stream sent by the client. +This can be used by clients to verify correct handling of different status codes and +associated status messages end-to-end. + +### Echo Metadata +[Echo Metadata]: #echo-metadata +When the client sends metadata with the key `"x-grpc-test-echo-initial"` with its +request, the server sends back exactly this key and the corresponding value back to +the client as part of initial metadata. When the client sends metadata with the key +`"x-grpc-test-echo-trailing-bin"` with its request, the server sends back exactly this +key and the corresponding value back to the client as trailing metadata. + ### Observe ResponseParameters.interval_us [Observe ResponseParameters.interval_us]: #observe-responseparametersinterval_us