diff --git a/test/integration/header_integration_test.cc b/test/integration/header_integration_test.cc index 606a8cc287efc..33d8e5af21501 100644 --- a/test/integration/header_integration_test.cc +++ b/test/integration/header_integration_test.cc @@ -140,10 +140,13 @@ class HeaderIntegrationTest void TearDown() override { if (eds_connection_ != nullptr) { + // Don't ASSERT fail if an EDS reconnect ends up unparented. + fake_upstreams_[1]->set_allow_unexpected_disconnects(true); eds_connection_->close(); eds_connection_->waitForDisconnect(); eds_connection_.reset(); } + cleanupUpstreamAndDownstream(); test_server_.reset(); fake_upstream_connection_.reset(); fake_upstreams_.clear(); @@ -353,13 +356,8 @@ class HeaderIntegrationTest Http::TestHeaderMapImpl&& response_headers, Http::TestHeaderMapImpl&& expected_response_headers) { registerTestServerPorts({"http"}); - codec_client_ = makeHttpConnection(makeClientConnection(lookupPort("http"))); - auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - waitForNextUpstreamRequest(); - - upstream_request_->encodeHeaders(response_headers, true); - response->waitForEndStream(); + auto response = sendRequestAndWaitForResponse(request_headers, 0, response_headers, 0); compareHeaders(upstream_request_->headers(), expected_request_headers); compareHeaders(response->headers(), expected_response_headers); diff --git a/test/integration/http_integration.cc b/test/integration/http_integration.cc index f60e5c80c26fc..e1b98927c9e80 100644 --- a/test/integration/http_integration.cc +++ b/test/integration/http_integration.cc @@ -192,8 +192,9 @@ void HttpIntegrationTest::setDownstreamProtocol(Http::CodecClient::Type downstre } IntegrationStreamDecoderPtr HttpIntegrationTest::sendRequestAndWaitForResponse( - Http::TestHeaderMapImpl& request_headers, uint32_t request_body_size, - Http::TestHeaderMapImpl& response_headers, uint32_t response_size) { + const Http::TestHeaderMapImpl& request_headers, uint32_t request_body_size, + const Http::TestHeaderMapImpl& response_headers, uint32_t response_size) { + ASSERT(codec_client_ != nullptr); // Send the request to Envoy. IntegrationStreamDecoderPtr response; if (request_body_size) { diff --git a/test/integration/http_integration.h b/test/integration/http_integration.h index f07c032b825cd..1b6c3b760157c 100644 --- a/test/integration/http_integration.h +++ b/test/integration/http_integration.h @@ -93,8 +93,8 @@ class HttpIntegrationTest : public BaseIntegrationTest { // Waits for the complete downstream response before returning. // Requires |codec_client_| to be initialized. IntegrationStreamDecoderPtr sendRequestAndWaitForResponse( - Http::TestHeaderMapImpl& request_headers, uint32_t request_body_size, - Http::TestHeaderMapImpl& response_headers, uint32_t response_body_size); + const Http::TestHeaderMapImpl& request_headers, uint32_t request_body_size, + const Http::TestHeaderMapImpl& response_headers, uint32_t response_body_size); // Wait for the end of stream on the next upstream stream on fake_upstreams_ // Sets fake_upstream_connection_ to the connection and upstream_request_ to stream.