Benno Evers created MESOS-9494: ---------------------------------- Summary: Add a unit test for the interaction between request batching and response compression Key: MESOS-9494 URL: https://issues.apache.org/jira/browse/MESOS-9494 Project: Mesos Issue Type: Improvement Reporter: Benno Evers
As discussed in https://reviews.apache.org/r/69064/ , we should try to add a unit test that verifies that simultaneous requests with different accept encoding headers produce different responses. It could look like this: {noformat} TEST_F(MasterLoadTest, AcceptEncoding) { MockAuthorizer authorizer; prepareCluster(&authorizer); Headers authHeaders = createBasicAuthHeaders(DEFAULT_CREDENTIAL); Headers acceptGzipHeaders = {{"Accept-Encoding", "gzip"}}; Headers acceptRawHeaders = {{"Accept-Encoding", "raw"}}; RequestDescriptor descriptor1; descriptor1.endpoint = "/state"; descriptor1.headers = authHeaders + acceptGzipHeaders; RequestDescriptor descriptor2 = descriptor1; descriptor2.headers = authHeaders + acceptRawHeaders; auto responses = launchSimultaneousRequests({descriptor1, descriptor2}); foreachpair ( const RequestDescriptor& request, Future<Response>& response, responses) { AWAIT_READY(response); ASSERT_SOME(request.headers.get("Accept-Encoding")); if (request.headers.get("Accept-Encoding").get() == "gzip") { ASSERT_SOME(response->headers.get("Content-Encoding")); EXPECT_EQ(response->headers.get("Content-Encoding").get(), "gzip"); } else { EXPECT_NONE(response->headers.get("Content-Encoding")); } } // Ensure that we actually hit the metrics code path while executing // the test. JSON::Object metrics = Metrics(); ASSERT_TRUE(metrics.values["master/http_cache_hits"].is<JSON::Number>()); ASSERT_GT( metrics.values["master/http_cache_hits"].as<JSON::Number>().as<size_t>(), 0u); } {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)