diff options
author | Noah Eisen <ncteisen@google.com> | 2016-10-12 15:04:45 -0700 |
---|---|---|
committer | Noah Eisen <ncteisen@google.com> | 2016-10-12 15:04:45 -0700 |
commit | cece9c7368cab75444b3c34bb518a98d7f656759 (patch) | |
tree | 27cf83a0d9244b678d479531f9d32630e0aef727 /doc/interop-test-descriptions.md | |
parent | 2cef11c6674e67aea8e7f63f7ac2869e5d44a7c5 (diff) | |
parent | d44144c3b2112ed61a21c08331bfe9e18664ceb3 (diff) |
manually fixed merge conflict. caused by the addition of a different new interop test
Diffstat (limited to 'doc/interop-test-descriptions.md')
-rw-r--r-- | doc/interop-test-descriptions.md | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/doc/interop-test-descriptions.md b/doc/interop-test-descriptions.md index 2e1650eaf1..7c153fa3fa 100644 --- a/doc/interop-test-descriptions.md +++ b/doc/interop-test-descriptions.md @@ -60,6 +60,35 @@ Client asserts: *It may be possible to use UnaryCall instead of EmptyCall, but it is harder to ensure that the proto serialized to zero bytes.* +### cacheable_unary + +This test verifies that gRPC requests marked as cacheable use GET verb instead +of POST, and that server sets appropriate cache control headers for the response +to be cached by a proxy. This test requires that the server is behind +a caching proxy. Use of current timestamp in the request prevents accidental +cache matches left over from previous tests. + +Server features: +* [CacheableUnaryCall][] + +Procedure: + 1. Client calls CacheableUnaryCall with `SimpleRequest` request with payload + set to current timestamp. Timestamp format is irrelevant, and resolution is + in nanoseconds. + Client adds a `x-user-ip` header with value `1.2.3.4` to the request. + This is done since some proxys such as GFE will not cache requests from + localhost. + Client marks the request as cacheable by setting the cacheable flag in the + request context. Longer term this should be driven by the method option + specified in the proto file itself. + 2. Client calls CacheableUnaryCall with `SimpleRequest` request again + immediately with the same payload as the previous request. Cacheable flag is + also set for this request's context. + +Client asserts: +* Both calls were successful +* The payload body of both responses is the same. + ### large_unary This test verifies unary calls succeed in sending messages, and touches on flow @@ -954,6 +983,18 @@ payload body of size `SimpleRequest.response_size` bytes and type as appropriate for the `SimpleRequest.response_type`. If the server does not support the `response_type`, then it should fail the RPC with `INVALID_ARGUMENT`. +### CacheableUnaryCall + +Server gets the default SimpleRequest proto as the request. The content of the +request is ignored. It returns the SimpleResponse proto with the payload set +to current timestamp. The timestamp is an integer representing current time +with nanosecond resolution. This integer is formated as ASCII decimal in the +response. The format is not really important as long as the response payload +is different for each request. In addition it adds + 1. cache control headers such that the response can be cached by proxies in + the response path. Server should be behind a caching proxy for this test + to pass. Currently we set the max-age to 60 seconds. + ### CompressedResponse [CompressedResponse]: #compressedresponse |