diff --git a/test/extensions/clusters/aggregate/cluster_integration_test.cc b/test/extensions/clusters/aggregate/cluster_integration_test.cc index 797f46d32e02a..16a1297d0a4db 100644 --- a/test/extensions/clusters/aggregate/cluster_integration_test.cc +++ b/test/extensions/clusters/aggregate/cluster_integration_test.cc @@ -288,7 +288,7 @@ TEST_P(AggregateIntegrationTest, PreviousPrioritiesRetryPredicate) { waitForNextUpstreamRequest(SecondUpstreamIndex); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); diff --git a/test/extensions/filters/http/adaptive_concurrency/adaptive_concurrency_filter_integration_test.cc b/test/extensions/filters/http/adaptive_concurrency/adaptive_concurrency_filter_integration_test.cc index 05449084a2563..893512059cf52 100644 --- a/test/extensions/filters/http/adaptive_concurrency/adaptive_concurrency_filter_integration_test.cc +++ b/test/extensions/filters/http/adaptive_concurrency/adaptive_concurrency_filter_integration_test.cc @@ -83,7 +83,7 @@ void AdaptiveConcurrencyIntegrationTest::respondToRequest(bool expect_forwarded) upstream_requests_.front()->encodeData(1, true); } - responses_.front()->waitForEndStream(); + ASSERT_TRUE(responses_.front()->waitForEndStream()); if (expect_forwarded) { EXPECT_TRUE(upstream_requests_.front()->complete()); diff --git a/test/extensions/filters/http/admission_control/admission_control_integration_test.cc b/test/extensions/filters/http/admission_control/admission_control_integration_test.cc index fc4f4b49ff315..3535a136f58b6 100644 --- a/test/extensions/filters/http/admission_control/admission_control_integration_test.cc +++ b/test/extensions/filters/http/admission_control/admission_control_integration_test.cc @@ -70,7 +70,7 @@ class AdmissionControlIntegrationTest : public Event::TestUsingSimulatedTime, au->setResponseTrailers(std::move(trailers)); auto response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + RELEASE_ASSERT(response->waitForEndStream(), "unexpected timeout"); codec_client_->close(); return response; } @@ -84,7 +84,7 @@ class AdmissionControlIntegrationTest : public Event::TestUsingSimulatedTime, Http::TestResponseHeaderMapImpl({{":status", code}}))); auto response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + RELEASE_ASSERT(response->waitForEndStream(), "unexpected timeout"); codec_client_->close(); return response; } diff --git a/test/extensions/filters/http/aws_lambda/aws_lambda_filter_integration_test.cc b/test/extensions/filters/http/aws_lambda/aws_lambda_filter_integration_test.cc index a65c4425ac03a..5f5816a7de6a8 100644 --- a/test/extensions/filters/http/aws_lambda/aws_lambda_filter_integration_test.cc +++ b/test/extensions/filters/http/aws_lambda/aws_lambda_filter_integration_test.cc @@ -118,7 +118,7 @@ class AwsLambdaFilterIntegrationTest : public testing::TestWithParamencodeData(buffer, true); } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); // verify headers diff --git a/test/extensions/filters/http/buffer/buffer_filter_integration_test.cc b/test/extensions/filters/http/buffer/buffer_filter_integration_test.cc index c61b6e1753689..48f58baed8e79 100644 --- a/test/extensions/filters/http/buffer/buffer_filter_integration_test.cc +++ b/test/extensions/filters/http/buffer/buffer_filter_integration_test.cc @@ -61,7 +61,7 @@ TEST_P(BufferIntegrationTest, RouterRequestPopulateContentLength) { ASSERT_NE(content_length, nullptr); EXPECT_EQ(content_length->value().getStringView(), "9"); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -90,7 +90,7 @@ TEST_P(BufferIntegrationTest, RouterRequestPopulateContentLengthOnTrailers) { ASSERT_NE(content_length, nullptr); EXPECT_EQ(content_length->value().getStringView(), "10"); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -117,7 +117,7 @@ TEST_P(BufferIntegrationTest, RouterRequestBufferLimitExceeded) { {"x-envoy-retry-on", "5xx"}}, 1024 * 65); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("413", response->headers().getStatusValue()); } @@ -159,7 +159,7 @@ TEST_P(BufferIntegrationTest, RouteDisabled) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -185,7 +185,7 @@ TEST_P(BufferIntegrationTest, RouteOverride) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } diff --git a/test/extensions/filters/http/cache/cache_filter_integration_test.cc b/test/extensions/filters/http/cache/cache_filter_integration_test.cc index b7168350642d4..4e4403a5fe452 100644 --- a/test/extensions/filters/http/cache/cache_filter_integration_test.cc +++ b/test/extensions/filters/http/cache/cache_filter_integration_test.cc @@ -69,7 +69,7 @@ TEST_P(CacheIntegrationTest, MissInsertHit) { // send 42 'a's upstream_request_->encodeData(response_body, /*end_stream=*/true); // Wait for the response to be read by the codec client. - response_decoder->waitForEndStream(); + ASSERT_TRUE(response_decoder->waitForEndStream()); EXPECT_TRUE(response_decoder->complete()); EXPECT_THAT(response_decoder->headers(), IsSupersetOfHeaders(response_headers)); EXPECT_TRUE(response_decoder->headers().get(Http::CustomHeaders::get().Age).empty()); @@ -84,7 +84,7 @@ TEST_P(CacheIntegrationTest, MissInsertHit) { { IntegrationStreamDecoderPtr response_decoder = codec_client_->makeHeaderOnlyRequest(request_headers); - response_decoder->waitForEndStream(); + ASSERT_TRUE(response_decoder->waitForEndStream()); EXPECT_TRUE(response_decoder->complete()); EXPECT_THAT(response_decoder->headers(), IsSupersetOfHeaders(response_headers)); EXPECT_EQ(response_decoder->body(), response_body); @@ -127,7 +127,7 @@ TEST_P(CacheIntegrationTest, ExpiredValidated) { // send 42 'a's upstream_request_->encodeData(response_body, true); // Wait for the response to be read by the codec client. - response_decoder->waitForEndStream(); + ASSERT_TRUE(response_decoder->waitForEndStream()); EXPECT_TRUE(response_decoder->complete()); EXPECT_THAT(response_decoder->headers(), IsSupersetOfHeaders(response_headers)); EXPECT_TRUE(response_decoder->headers().get(Http::CustomHeaders::get().Age).empty()); @@ -159,7 +159,7 @@ TEST_P(CacheIntegrationTest, ExpiredValidated) { response_headers.setDate(not_modified_date); // Wait for the response to be read by the codec client. - response_decoder->waitForEndStream(); + ASSERT_TRUE(response_decoder->waitForEndStream()); // Check that the served response is the cached response EXPECT_TRUE(response_decoder->complete()); @@ -208,7 +208,7 @@ TEST_P(CacheIntegrationTest, ExpiredFetchedNewResponse) { // send 10 'a's upstream_request_->encodeData(response_body, /*end_stream=*/true); // Wait for the response to be read by the codec client. - response_decoder->waitForEndStream(); + ASSERT_TRUE(response_decoder->waitForEndStream()); EXPECT_TRUE(response_decoder->complete()); EXPECT_THAT(response_decoder->headers(), IsSupersetOfHeaders(response_headers)); EXPECT_TRUE(response_decoder->headers().get(Http::CustomHeaders::get().Age).empty()); @@ -244,7 +244,7 @@ TEST_P(CacheIntegrationTest, ExpiredFetchedNewResponse) { upstream_request_->encodeData(response_body, /*end_stream=*/true); // Wait for the response to be read by the codec client. - response_decoder->waitForEndStream(); + ASSERT_TRUE(response_decoder->waitForEndStream()); // Check that the served response is the updated response EXPECT_TRUE(response_decoder->complete()); EXPECT_THAT(response_decoder->headers(), IsSupersetOfHeaders(response_headers)); @@ -289,7 +289,7 @@ TEST_P(CacheIntegrationTest, GetRequestWithBodyAndTrailers) { // send 42 'a's upstream_request_->encodeData(42, true); // Wait for the response to be read by the codec client. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_THAT(response->headers(), IsSupersetOfHeaders(response_headers)); EXPECT_TRUE(response->headers().get(Http::CustomHeaders::get().Age).empty()); diff --git a/test/extensions/filters/http/cdn_loop/filter_integration_test.cc b/test/extensions/filters/http/cdn_loop/filter_integration_test.cc index ed6032370dcfa..a5db631c5c1ac 100644 --- a/test/extensions/filters/http/cdn_loop/filter_integration_test.cc +++ b/test/extensions/filters/http/cdn_loop/filter_integration_test.cc @@ -97,7 +97,7 @@ TEST_P(CdnLoopFilterIntegrationTest, CdnLoop0Allowed1Seen) { {"CDN-Loop", "cdn"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("502", response->headers().getStatusValue()); } @@ -114,7 +114,7 @@ TEST_P(CdnLoopFilterIntegrationTest, UnparseableHeader) { {"CDN-Loop", "[bad-header"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("400", response->headers().getStatusValue()); } @@ -171,7 +171,7 @@ TEST_P(CdnLoopFilterIntegrationTest, CdnLoop2Allowed3Seen) { {"CDN-Loop", "cdn, cdn, cdn"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("502", response->headers().getStatusValue()); } diff --git a/test/extensions/filters/http/cors/cors_filter_integration_test.cc b/test/extensions/filters/http/cors/cors_filter_integration_test.cc index de715800ccb4d..3c68502dfdb9f 100644 --- a/test/extensions/filters/http/cors/cors_filter_integration_test.cc +++ b/test/extensions/filters/http/cors/cors_filter_integration_test.cc @@ -98,7 +98,7 @@ class CorsFilterIntegrationTest : public testing::TestWithParammakeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); compareHeaders(response->headers(), expected_response_headers); } diff --git a/test/extensions/filters/http/csrf/csrf_filter_integration_test.cc b/test/extensions/filters/http/csrf/csrf_filter_integration_test.cc index e3890805cdab9..3b8055e79b5e5 100644 --- a/test/extensions/filters/http/csrf/csrf_filter_integration_test.cc +++ b/test/extensions/filters/http/csrf/csrf_filter_integration_test.cc @@ -59,7 +59,7 @@ class CsrfFilterIntegrationTest : public HttpProtocolIntegrationTest { auto response = codec_client_->makeRequestWithBody(request_headers, 1024); waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + RELEASE_ASSERT(response->waitForEndStream(), "unexpected timeout"); return response; } @@ -68,7 +68,7 @@ class CsrfFilterIntegrationTest : public HttpProtocolIntegrationTest { initialize(); codec_client_ = makeHttpConnection(lookupPort("http")); auto response = codec_client_->makeRequestWithBody(request_headers, 1024); - response->waitForEndStream(); + RELEASE_ASSERT(response->waitForEndStream(), "unexpected timeout"); return response; } diff --git a/test/extensions/filters/http/decompressor/decompressor_filter_integration_test.cc b/test/extensions/filters/http/decompressor/decompressor_filter_integration_test.cc index be709d1fcdb41..4f9b4f8a011df 100644 --- a/test/extensions/filters/http/decompressor/decompressor_filter_integration_test.cc +++ b/test/extensions/filters/http/decompressor/decompressor_filter_integration_test.cc @@ -144,7 +144,7 @@ TEST_P(DecompressorIntegrationTest, BidirectionalDecompression) { upstream_request_->encodeData(response_data2, true); // Wait for frames to arrive downstream. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // Assert that the total bytes received downstream equal the sum of the uncompressed byte buffers // sent. @@ -264,7 +264,7 @@ TEST_P(DecompressorIntegrationTest, BidirectionalDecompressionError) { upstream_request_->encodeData(response_data2, true); // Wait for frames to arrive downstream. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().Status()->value().getStringView()); diff --git a/test/extensions/filters/http/dynamic_forward_proxy/proxy_filter_integration_test.cc b/test/extensions/filters/http/dynamic_forward_proxy/proxy_filter_integration_test.cc index 7181173eb6371..bd89034f8e404 100644 --- a/test/extensions/filters/http/dynamic_forward_proxy/proxy_filter_integration_test.cc +++ b/test/extensions/filters/http/dynamic_forward_proxy/proxy_filter_integration_test.cc @@ -222,7 +222,7 @@ TEST_P(ProxyFilterIntegrationTest, DNSCacheHostOverflow) { {":scheme", "http"}, {":authority", fmt::format("localhost2", fake_upstreams_[0]->localAddress()->ip()->port())}}; response = codec_client_->makeHeaderOnlyRequest(request_headers2); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("503", response->headers().getStatusValue()); EXPECT_EQ(1, test_server_->counter("dns_cache.foo.host_overflow")->value()); } @@ -248,7 +248,7 @@ TEST_P(ProxyFilterIntegrationTest, UpstreamTls) { EXPECT_STREQ("localhost", SSL_get_servername(ssl_socket->ssl(), TLSEXT_NAMETYPE_host_name)); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); checkSimpleRequestSuccess(0, 0, response.get()); } @@ -272,7 +272,7 @@ TEST_P(ProxyFilterIntegrationTest, UpstreamTlsWithIpHost) { EXPECT_STREQ(nullptr, SSL_get_servername(ssl_socket->ssl(), TLSEXT_NAMETYPE_host_name)); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); checkSimpleRequestSuccess(0, 0, response.get()); } @@ -292,7 +292,7 @@ TEST_P(ProxyFilterIntegrationTest, UpstreamTlsInvalidSAN) { fmt::format("localhost:{}", fake_upstreams_[0]->localAddress()->ip()->port())}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("503", response->headers().getStatusValue()); EXPECT_EQ(1, test_server_->counter("cluster.cluster_0.ssl.fail_verify_san")->value()); @@ -310,7 +310,7 @@ TEST_P(ProxyFilterIntegrationTest, DnsCacheCircuitBreakersInvoked) { fmt::format("localhost:{}", fake_upstreams_[0]->localAddress()->ip()->port())}}; auto response = codec_client_->makeRequestWithBody(request_headers, 1024); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ(1, test_server_->counter("dns_cache.foo.dns_rq_pending_overflow")->value()); EXPECT_TRUE(response->complete()); diff --git a/test/extensions/filters/http/ext_authz/ext_authz_integration_test.cc b/test/extensions/filters/http/ext_authz/ext_authz_integration_test.cc index 2a109d5ed897a..b4df06d4cfe4f 100644 --- a/test/extensions/filters/http/ext_authz/ext_authz_integration_test.cc +++ b/test/extensions/filters/http/ext_authz/ext_authz_integration_test.cc @@ -222,7 +222,7 @@ class ExtAuthzGrpcIntegrationTest : public Grpc::VersionedGrpcClientIntegrationP upstream_request_->headers().get(Http::LowerCaseString{header_to_remove.first}).empty()); } - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(request_body_.length(), upstream_request_->bodyLength()); @@ -531,7 +531,7 @@ class ExtAuthzHttpIntegrationTest : public HttpIntegrationTest, .empty()); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); EXPECT_TRUE(response_->complete()); EXPECT_EQ("200", response_->headers().getStatusValue()); @@ -777,7 +777,7 @@ TEST_P(ExtAuthzLocalReplyIntegrationTest, DeniedHeaderTest) { }; ext_authz_request->encodeHeaders(ext_authz_response_headers, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("401", response->headers().Status()->value().getStringView()); @@ -853,7 +853,7 @@ TEST_P(ExtAuthzGrpcIntegrationTest, GoogleAsyncClientCreation) { upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, false); upstream_request_->encodeData(response_size_, true); - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(request_body_.length(), upstream_request_->bodyLength()); diff --git a/test/extensions/filters/http/ext_proc/ext_proc_integration_test.cc b/test/extensions/filters/http/ext_proc/ext_proc_integration_test.cc index d5a7b3d89330f..58db76a08b85c 100644 --- a/test/extensions/filters/http/ext_proc/ext_proc_integration_test.cc +++ b/test/extensions/filters/http/ext_proc/ext_proc_integration_test.cc @@ -104,7 +104,7 @@ class ExtProcIntegrationTest : public HttpIntegrationTest, } void verifyDownstreamResponse(IntegrationStreamDecoder& response, int status_code) { - response.waitForEndStream(); + ASSERT_TRUE(response.waitForEndStream()); EXPECT_TRUE(response.complete()); EXPECT_EQ(std::to_string(status_code), response.headers().getStatusValue()); } diff --git a/test/extensions/filters/http/fault/fault_filter_integration_test.cc b/test/extensions/filters/http/fault/fault_filter_integration_test.cc index 836192f63488a..2f31eaa7a9442 100644 --- a/test/extensions/filters/http/fault/fault_filter_integration_test.cc +++ b/test/extensions/filters/http/fault/fault_filter_integration_test.cc @@ -91,7 +91,7 @@ name: fault TEST_P(FaultIntegrationTestAllProtocols, ResponseRateLimitNoTrailers) { initializeFilter(upstream_rate_limit_config_); codec_client_ = makeHttpConnection(makeClientConnection(lookupPort("http"))); - IntegrationStreamDecoderPtr decoder = + IntegrationStreamDecoderPtr response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); waitForNextUpstreamRequest(); @@ -103,12 +103,12 @@ TEST_P(FaultIntegrationTestAllProtocols, ResponseRateLimitNoTrailers) { upstream_request_->encodeData(data, true); // Wait for a tick worth of data. - decoder->waitForBodyData(64); + response->waitForBodyData(64); // Wait for a tick worth of data and end stream. simTime().advanceTimeWait(std::chrono::milliseconds(63)); - decoder->waitForBodyData(127); - decoder->waitForEndStream(); + response->waitForBodyData(127); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.aborts_injected")->value()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.delays_injected")->value()); @@ -126,7 +126,7 @@ TEST_P(FaultIntegrationTestAllProtocols, HeaderFaultConfig) { {":authority", "host"}, {"x-envoy-fault-delay-request", "200"}, {"x-envoy-fault-throughput-response", "1"}}; - IntegrationStreamDecoderPtr decoder = codec_client_->makeHeaderOnlyRequest(request_headers); + IntegrationStreamDecoderPtr response = codec_client_->makeHeaderOnlyRequest(request_headers); test_server_->waitForCounterEq("http.config_test.fault.delays_injected", 1, TestUtility::DefaultTimeout, dispatcher_.get()); simTime().advanceTimeWait(std::chrono::milliseconds(200)); @@ -138,12 +138,12 @@ TEST_P(FaultIntegrationTestAllProtocols, HeaderFaultConfig) { upstream_request_->encodeData(data, true); // Wait for a tick worth of data. - decoder->waitForBodyData(64); + response->waitForBodyData(64); // Wait for a tick worth of data and end stream. simTime().advanceTimeWait(std::chrono::milliseconds(63)); - decoder->waitForBodyData(128); - decoder->waitForEndStream(); + response->waitForBodyData(128); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.aborts_injected")->value()); EXPECT_EQ(1UL, test_server_->counter("http.config_test.fault.delays_injected")->value()); @@ -162,7 +162,7 @@ TEST_P(FaultIntegrationTestAllProtocols, HeaderFaultAbortConfig) { {":scheme", "http"}, {":authority", "host"}, {"x-envoy-fault-abort-request", "429"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_THAT(response->headers(), Envoy::Http::HttpStatusIs("429")); @@ -191,7 +191,7 @@ TEST_P(FaultIntegrationTestAllProtocols, HeaderFaultsConfig0PercentageHeaders) { {"x-envoy-fault-throughput-response-percentage", "0"}}); waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.aborts_injected")->value()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.delays_injected")->value()); @@ -218,7 +218,7 @@ TEST_P(FaultIntegrationTestAllProtocols, HeaderFaultsConfig100PercentageHeaders) simTime().advanceTimeWait(std::chrono::milliseconds(100)); waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.aborts_injected")->value()); EXPECT_EQ(1UL, test_server_->counter("http.config_test.fault.delays_injected")->value()); @@ -251,7 +251,7 @@ TEST_P(FaultIntegrationTestAllProtocols, HeaderFaultAbortGrpcConfig) { {":authority", "host"}, {"x-envoy-fault-abort-grpc-request", "5"}, {"content-type", "application/grpc"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_THAT(response->headers(), Envoy::Http::HttpStatusIs("200")); @@ -283,7 +283,7 @@ TEST_P(FaultIntegrationTestAllProtocols, HeaderFaultAbortGrpcConfig0PercentageHe {"content-type", "application/grpc"}}); waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.aborts_injected")->value()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.delays_injected")->value()); @@ -302,7 +302,7 @@ TEST_P(FaultIntegrationTestAllProtocols, FaultAbortGrpcConfig) { {":scheme", "http"}, {":authority", "host"}, {"content-type", "application/grpc"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_THAT(response->headers(), Envoy::Http::HttpStatusIs("200")); @@ -330,7 +330,7 @@ INSTANTIATE_TEST_SUITE_P(Protocols, FaultIntegrationTestHttp2, TEST_P(FaultIntegrationTestHttp2, ResponseRateLimitTrailersBodyFlushed) { initializeFilter(upstream_rate_limit_config_); codec_client_ = makeHttpConnection(makeClientConnection(lookupPort("http"))); - IntegrationStreamDecoderPtr decoder = + IntegrationStreamDecoderPtr response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); waitForNextUpstreamRequest(); @@ -342,17 +342,17 @@ TEST_P(FaultIntegrationTestHttp2, ResponseRateLimitTrailersBodyFlushed) { upstream_request_->encodeData(data, false); // Wait for a tick worth of data. - decoder->waitForBodyData(64); + response->waitForBodyData(64); // Advance time and wait for a tick worth of data. simTime().advanceTimeWait(std::chrono::milliseconds(63)); - decoder->waitForBodyData(127); + response->waitForBodyData(127); // Send trailers and wait for end stream. Http::TestResponseTrailerMapImpl trailers{{"hello", "world"}}; upstream_request_->encodeTrailers(trailers); - decoder->waitForEndStream(); - EXPECT_NE(nullptr, decoder->trailers()); + ASSERT_TRUE(response->waitForEndStream()); + EXPECT_NE(nullptr, response->trailers()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.aborts_injected")->value()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.delays_injected")->value()); @@ -364,7 +364,7 @@ TEST_P(FaultIntegrationTestHttp2, ResponseRateLimitTrailersBodyFlushed) { TEST_P(FaultIntegrationTestHttp2, ResponseRateLimitTrailersBodyNotFlushed) { initializeFilter(upstream_rate_limit_config_); codec_client_ = makeHttpConnection(makeClientConnection(lookupPort("http"))); - IntegrationStreamDecoderPtr decoder = + IntegrationStreamDecoderPtr response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, false); @@ -374,13 +374,13 @@ TEST_P(FaultIntegrationTestHttp2, ResponseRateLimitTrailersBodyNotFlushed) { upstream_request_->encodeTrailers(trailers); // Wait for a tick worth of data. - decoder->waitForBodyData(64); + response->waitForBodyData(64); // Advance time and wait for a tick worth of data, trailers, and end stream. simTime().advanceTimeWait(std::chrono::milliseconds(63)); - decoder->waitForBodyData(128); - decoder->waitForEndStream(); - EXPECT_NE(nullptr, decoder->trailers()); + response->waitForBodyData(128); + ASSERT_TRUE(response->waitForEndStream()); + EXPECT_NE(nullptr, response->trailers()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.aborts_injected")->value()); EXPECT_EQ(0UL, test_server_->counter("http.config_test.fault.delays_injected")->value()); diff --git a/test/extensions/filters/http/grpc_http1_reverse_bridge/reverse_bridge_integration_test.cc b/test/extensions/filters/http/grpc_http1_reverse_bridge/reverse_bridge_integration_test.cc index c6c2b4d43e7e7..911e52eb127d1 100644 --- a/test/extensions/filters/http/grpc_http1_reverse_bridge/reverse_bridge_integration_test.cc +++ b/test/extensions/filters/http/grpc_http1_reverse_bridge/reverse_bridge_integration_test.cc @@ -103,7 +103,7 @@ TEST_P(ReverseBridgeIntegrationTest, DisabledRoute) { response_trailers.setGrpcStatus(std::string("0")); upstream_request_->encodeTrailers(response_trailers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ(response->body(), response_data.toString()); @@ -152,7 +152,7 @@ TEST_P(ReverseBridgeIntegrationTest, EnabledRoute) { Buffer::OwnedImpl response_data{"defgh"}; upstream_request_->encodeData(response_data, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); // Ensure that we restored the content-type and that we added the length prefix. diff --git a/test/extensions/filters/http/grpc_json_transcoder/grpc_json_transcoder_integration_test.cc b/test/extensions/filters/http/grpc_json_transcoder/grpc_json_transcoder_integration_test.cc index 67ff1ec4174eb..03b675cae9a07 100644 --- a/test/extensions/filters/http/grpc_json_transcoder/grpc_json_transcoder_integration_test.cc +++ b/test/extensions/filters/http/grpc_json_transcoder/grpc_json_transcoder_integration_test.cc @@ -135,7 +135,7 @@ class GrpcJsonTranscoderIntegrationTest EXPECT_TRUE(upstream_request_->complete()); } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ(response->complete(), expect_response_complete); if (response->headers().get(Http::LowerCaseString("transfer-encoding")).empty() || @@ -196,6 +196,7 @@ class GrpcJsonTranscoderIntegrationTest config_helper_.addConfigModifier(modifier); } }; + INSTANTIATE_TEST_SUITE_P(IpVersions, GrpcJsonTranscoderIntegrationTest, testing::ValuesIn(TestEnvironment::getIpVersionsForTest()), TestUtility::ipTestParamsToString); @@ -420,7 +421,7 @@ TEST_P(GrpcJsonTranscoderIntegrationTest, StreamGetHttpBodyMultipleFramesInData) EXPECT_TRUE(upstream_request_->complete()); // Wait for complete / check body to have 3 frames joined - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ(response->body(), "HelloHelloHello"); } @@ -463,7 +464,7 @@ TEST_P(GrpcJsonTranscoderIntegrationTest, StreamGetHttpBodyFragmented) { EXPECT_TRUE(upstream_request_->complete()); // Wait for complete - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); // Ensure that body was actually replaced EXPECT_EQ(response->body(), http_body.data()); @@ -1238,7 +1239,7 @@ TEST_P(GrpcJsonTranscoderIntegrationTest, RouteDisabled) { {":method", "GET"}, {":path", "/shelves"}, {":authority", "host"}}); waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().Status()->value().getStringView()); }; diff --git a/test/extensions/filters/http/grpc_web/grpc_web_filter_integration_test.cc b/test/extensions/filters/http/grpc_web/grpc_web_filter_integration_test.cc index 6f0925196dfd6..32ca9673445af 100644 --- a/test/extensions/filters/http/grpc_web/grpc_web_filter_integration_test.cc +++ b/test/extensions/filters/http/grpc_web/grpc_web_filter_integration_test.cc @@ -83,7 +83,7 @@ class GrpcWebFilterIntegrationTest : public testing::TestWithParam, waitForNextUpstreamRequest(); ASSERT_TRUE(fake_upstream_connection_->close()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("503", response->headers().getStatusValue()); @@ -124,7 +124,7 @@ class GrpcWebFilterIntegrationTest : public testing::TestWithParam, upstream_request_->encodeHeaders(default_response_headers_, /*end_stream=*/false); upstream_request_->encodeData(start, /*end_stream=*/false); upstream_request_->encodeData(end, /*end_stream=*/true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ(expected, response->headers().getGrpcMessageValue()); @@ -190,7 +190,7 @@ TEST_P(GrpcWebFilterIntegrationTest, GrpcWebTrailersNotDuplicated) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(1, false); upstream_request_->encodeTrailers(response_trailers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(body.length(), upstream_request_->bodyLength()); diff --git a/test/extensions/filters/http/jwt_authn/filter_integration_test.cc b/test/extensions/filters/http/jwt_authn/filter_integration_test.cc index 1470a5d9da2a5..8fb7f918e46a9 100644 --- a/test/extensions/filters/http/jwt_authn/filter_integration_test.cc +++ b/test/extensions/filters/http/jwt_authn/filter_integration_test.cc @@ -117,7 +117,7 @@ TEST_P(LocalJwksIntegrationTest, WithGoodToken) { // Verify the token is removed. EXPECT_TRUE(upstream_request_->headers().get(Http::CustomHeaders::get().Authorization).empty()); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -137,7 +137,7 @@ TEST_P(LocalJwksIntegrationTest, ExpiredToken) { {"Authorization", "Bearer " + std::string(ExpiredToken)}, }); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("401", response->headers().getStatusValue()); } @@ -155,7 +155,7 @@ TEST_P(LocalJwksIntegrationTest, MissingToken) { {":authority", "host"}, }); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("401", response->headers().getStatusValue()); } @@ -174,7 +174,7 @@ TEST_P(LocalJwksIntegrationTest, ExpiredTokenHeadReply) { {"Authorization", "Bearer " + std::string(ExpiredToken)}, }); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("401", response->headers().getStatusValue()); EXPECT_NE("0", response->headers().getContentLengthValue()); @@ -198,7 +198,7 @@ TEST_P(LocalJwksIntegrationTest, NoRequiresPath) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -221,7 +221,7 @@ TEST_P(LocalJwksIntegrationTest, CorsPreflight) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -298,7 +298,7 @@ TEST_P(LocalJwksIntegrationTest, FilterStateRequirement) { upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(test.expected_status, response->headers().getStatusValue()); } @@ -396,7 +396,7 @@ TEST_P(RemoteJwksIntegrationTest, WithGoodToken) { upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); @@ -421,7 +421,7 @@ TEST_P(RemoteJwksIntegrationTest, FetchFailedJwks) { // Fails the jwks fetching. waitForJwksResponse("500", ""); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("401", response->headers().getStatusValue()); @@ -441,7 +441,7 @@ TEST_P(RemoteJwksIntegrationTest, FetchFailedMissingCluster) { {"Authorization", "Bearer " + std::string(GoodToken)}, }); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("401", response->headers().getStatusValue()); @@ -493,7 +493,7 @@ TEST_P(PerRouteIntegrationTest, PerRouteConfigDisabled) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -528,7 +528,7 @@ TEST_P(PerRouteIntegrationTest, PerRouteConfigWrongRequireName) { {"Authorization", "Bearer " + std::string(GoodToken)}, }); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); } @@ -566,7 +566,7 @@ TEST_P(PerRouteIntegrationTest, PerRouteConfigOK) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); @@ -578,7 +578,7 @@ TEST_P(PerRouteIntegrationTest, PerRouteConfigOK) { {":authority", "host"}, }); - response1->waitForEndStream(); + ASSERT_TRUE(response1->waitForEndStream()); ASSERT_TRUE(response1->complete()); EXPECT_EQ("401", response1->headers().getStatusValue()); } diff --git a/test/extensions/filters/http/lua/lua_integration_test.cc b/test/extensions/filters/http/lua/lua_integration_test.cc index 8fd0114673904..f02f903307c50 100644 --- a/test/extensions/filters/http/lua/lua_integration_test.cc +++ b/test/extensions/filters/http/lua/lua_integration_test.cc @@ -175,7 +175,7 @@ class LuaIntegrationTest : public testing::TestWithParamencodeData(response_data2, true); } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (enable_wrap_body) { EXPECT_EQ("2", response->headers() @@ -378,7 +378,7 @@ name: lua Buffer::OwnedImpl response_data2("bye"); upstream_request_->encodeData(response_data2, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("7", response->headers() .get(Http::LowerCaseString("response_body_size"))[0] @@ -454,7 +454,7 @@ name: lua .getStringView()); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); cleanup(); } @@ -501,7 +501,7 @@ name: lua Http::TestResponseHeaderMapImpl response_headers{{":status", "200"}, {"foo", "bar"}}; lua_request_->encodeHeaders(response_headers, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); cleanup(); EXPECT_TRUE(response->complete()); @@ -551,7 +551,7 @@ name: envoy.filters.http.lua waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); cleanup(); @@ -585,7 +585,7 @@ name: lua waitForNextUpstreamRequest(2); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); cleanup(); EXPECT_TRUE(response->complete()); @@ -620,7 +620,7 @@ name: lua waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); @@ -720,7 +720,7 @@ name: lua .getStringView()); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); @@ -860,7 +860,7 @@ TEST_P(LuaIntegrationTest, BasicTestOfLuaPerRoute) { } upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); @@ -946,7 +946,7 @@ TEST_P(LuaIntegrationTest, RdsTestOfLuaPerRoute) { } upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); diff --git a/test/extensions/filters/http/ratelimit/ratelimit_integration_test.cc b/test/extensions/filters/http/ratelimit/ratelimit_integration_test.cc index f41460bd6530f..fbcaf61a12222 100644 --- a/test/extensions/filters/http/ratelimit/ratelimit_integration_test.cc +++ b/test/extensions/filters/http/ratelimit/ratelimit_integration_test.cc @@ -119,7 +119,7 @@ class RatelimitIntegrationTest : public Grpc::VersionedGrpcClientIntegrationPara upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, false); upstream_request_->encodeData(response_size_, true); - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(request_size_, upstream_request_->bodyLength()); @@ -130,7 +130,7 @@ class RatelimitIntegrationTest : public Grpc::VersionedGrpcClientIntegrationPara } void waitForFailedUpstreamResponse(uint32_t response_code) { - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); EXPECT_TRUE(response_->complete()); EXPECT_EQ(std::to_string(response_code), response_->headers().getStatusValue()); } diff --git a/test/extensions/filters/http/rbac/rbac_filter_integration_test.cc b/test/extensions/filters/http/rbac/rbac_filter_integration_test.cc index 6c2f397dbd205..0913b37ba4cbc 100644 --- a/test/extensions/filters/http/rbac/rbac_filter_integration_test.cc +++ b/test/extensions/filters/http/rbac/rbac_filter_integration_test.cc @@ -144,7 +144,7 @@ TEST_P(RBACIntegrationTest, Allowed) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_THAT(waitForAccessLog(access_log_name_), testing::HasSubstr("via_upstream")); @@ -166,7 +166,7 @@ TEST_P(RBACIntegrationTest, Denied) { {"x-forwarded-for", "10.0.0.1"}, }, 1024); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); EXPECT_THAT(waitForAccessLog(access_log_name_), @@ -189,7 +189,7 @@ TEST_P(RBACIntegrationTest, DeniedWithDenyAction) { {"x-forwarded-for", "10.0.0.1"}, }, 1024); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); // Note the whitespace in the policy id is replaced by '_'. @@ -218,7 +218,7 @@ TEST_P(RBACIntegrationTest, DeniedWithPrefixRule) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -242,7 +242,7 @@ TEST_P(RBACIntegrationTest, RbacPrefixRuleUseNormalizePath) { }, 1024); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); } @@ -262,7 +262,7 @@ TEST_P(RBACIntegrationTest, DeniedHeadReply) { {"x-forwarded-for", "10.0.0.1"}, }, 1024); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); ASSERT_TRUE(response->headers().ContentLength()); @@ -302,7 +302,7 @@ TEST_P(RBACIntegrationTest, RouteOverride) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -328,7 +328,7 @@ TEST_P(RBACIntegrationTest, PathWithQueryAndFragment) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -355,7 +355,7 @@ TEST_P(RBACIntegrationTest, PathIgnoreCase) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -379,7 +379,7 @@ TEST_P(RBACIntegrationTest, LogConnectionAllow) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -403,7 +403,7 @@ TEST_P(RBACIntegrationTest, HeaderMatchCondition) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -426,7 +426,7 @@ TEST_P(RBACIntegrationTest, HeaderMatchConditionDuplicateHeaderNoMatch) { {"xxx", "zzz"}, }, 1024); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); } @@ -452,7 +452,7 @@ TEST_P(RBACIntegrationTest, HeaderMatchConditionDuplicateHeaderMatch) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } diff --git a/test/extensions/filters/http/squash/squash_filter_integration_test.cc b/test/extensions/filters/http/squash/squash_filter_integration_test.cc index 8f631538e00a6..280aa5d63d519 100644 --- a/test/extensions/filters/http/squash/squash_filter_integration_test.cc +++ b/test/extensions/filters/http/squash/squash_filter_integration_test.cc @@ -129,7 +129,7 @@ TEST_P(SquashFilterIntegrationTest, TestHappyPath) { // Respond to read attachment request FakeStreamPtr get_stream = sendSquashOk(squashGetAttachmentBodyWithState("attached")); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("POST", create_stream->headers().getMethodValue()); EXPECT_EQ("/api/v2/debugattachment/", create_stream->headers().getPathValue()); @@ -158,7 +158,7 @@ TEST_P(SquashFilterIntegrationTest, ErrorAttaching) { // Respond to read attachment request with error! FakeStreamPtr get_stream = sendSquashOk(squashGetAttachmentBodyWithState("error")); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); @@ -174,7 +174,7 @@ TEST_P(SquashFilterIntegrationTest, TimeoutAttaching) { // before issuing another get attachment request. FakeStreamPtr get_stream = sendSquashOk(squashGetAttachmentBodyWithState("attaching")); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); @@ -185,7 +185,7 @@ TEST_P(SquashFilterIntegrationTest, ErrorNoSquashServer) { // Don't respond to anything. squash filter should timeout within // squash_request_timeout and continue the request. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); @@ -197,7 +197,7 @@ TEST_P(SquashFilterIntegrationTest, BadCreateResponse) { // Respond to create request FakeStreamPtr create_stream = sendSquashCreate("not json..."); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); @@ -211,7 +211,7 @@ TEST_P(SquashFilterIntegrationTest, BadGetResponse) { // Respond to read attachment request with error! FakeStreamPtr get_stream = sendSquashOk("not json..."); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); diff --git a/test/extensions/filters/http/tap/tap_filter_integration_test.cc b/test/extensions/filters/http/tap/tap_filter_integration_test.cc index 05291efb0c94e..7dc19e9cbc162 100644 --- a/test/extensions/filters/http/tap/tap_filter_integration_test.cc +++ b/test/extensions/filters/http/tap/tap_filter_integration_test.cc @@ -78,7 +78,7 @@ class TapIntegrationTest : public testing::TestWithParamencodeTrailers(*response_trailers); } - decoder->waitForEndStream(); + ASSERT_TRUE(decoder->waitForEndStream()); } void startAdminRequest(const std::string& admin_request_yaml) { diff --git a/test/extensions/filters/network/sni_dynamic_forward_proxy/proxy_filter_integration_test.cc b/test/extensions/filters/network/sni_dynamic_forward_proxy/proxy_filter_integration_test.cc index 8adb0a270d20a..93a58f03bf5e8 100644 --- a/test/extensions/filters/network/sni_dynamic_forward_proxy/proxy_filter_integration_test.cc +++ b/test/extensions/filters/network/sni_dynamic_forward_proxy/proxy_filter_integration_test.cc @@ -130,7 +130,7 @@ TEST_P(SniDynamicProxyFilterIntegrationTest, UpstreamTls) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); checkSimpleRequestSuccess(0, 0, response.get()); } diff --git a/test/extensions/retry/host/previous_hosts/integration_test.cc b/test/extensions/retry/host/previous_hosts/integration_test.cc index 4093afc3b02d8..5897e01377e99 100644 --- a/test/extensions/retry/host/previous_hosts/integration_test.cc +++ b/test/extensions/retry/host/previous_hosts/integration_test.cc @@ -83,7 +83,7 @@ TEST_F(PrevioustHostsIntegrationTest, BasicFlow) { auto response = codec_client_->makeRequestWithBody(headers, ""); waitForNextUpstreamRequest(1); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); } // Now respond 500 to the original request to trigger a retry. diff --git a/test/extensions/transport_sockets/tls/integration/ssl_integration_test.cc b/test/extensions/transport_sockets/tls/integration/ssl_integration_test.cc index b7a1fe7526a28..2aa491cb833da 100644 --- a/test/extensions/transport_sockets/tls/integration/ssl_integration_test.cc +++ b/test/extensions/transport_sockets/tls/integration/ssl_integration_test.cc @@ -701,7 +701,7 @@ TEST_P(SslTapIntegrationTest, TruncationWithMultipleDataFrames) { const Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/test/long/url"}, {":scheme", "http"}, {":authority", "host"}}; auto result = codec_client_->startRequest(request_headers); - auto decoder = std::move(result.second); + auto response = std::move(result.second); Buffer::OwnedImpl data1("one"); result.first.encodeData(data1, false); Buffer::OwnedImpl data2("two"); @@ -711,10 +711,10 @@ TEST_P(SslTapIntegrationTest, TruncationWithMultipleDataFrames) { upstream_request_->encodeHeaders(response_headers, false); Buffer::OwnedImpl data3("three"); upstream_request_->encodeData(data3, false); - decoder->waitForBodyData(5); + response->waitForBodyData(5); Buffer::OwnedImpl data4("four"); upstream_request_->encodeData(data4, true); - decoder->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); checkStats(); codec_client_->close(); diff --git a/test/integration/BUILD b/test/integration/BUILD index 9dbb150a5fcdf..97e39f4d156cf 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -611,6 +611,7 @@ envoy_cc_test_library( "//include/envoy/http:header_map_interface", "//include/envoy/http:metadata_interface", "//source/common/common:dump_state_utils", + "//test/test_common:utility_lib", ], ) @@ -1687,7 +1688,7 @@ envoy_cc_test( size = "large", srcs = envoy_select_enable_http3(["quic_http_integration_test.cc"]), data = ["//test/config/integration/certs"], - shard_count = 8, + shard_count = 6, # TODO(envoyproxy/windows-dev): Diagnose failure shown only on clang-cl build, see: # https://gist.github.com/wrowe/a152cb1d12c2f751916122aed39d8517 # TODO(envoyproxy/windows-dev): Diagnose timeout, why opt build test under Windows GCP RBE @@ -1712,6 +1713,7 @@ envoy_cc_test( "//source/extensions/resource_monitors/injected_resource:config", "//test/common/quic:quic_test_utils_for_envoy_lib", "//test/common/quic:test_utils_lib", + "//test/integration/filters:encoder_decoder_buffer_filter_lib", "//test/test_common:test_runtime_lib", "@envoy_api//envoy/config/bootstrap/v3:pkg_cc_proto", "@envoy_api//envoy/config/overload/v3:pkg_cc_proto", diff --git a/test/integration/alpn_integration_test.cc b/test/integration/alpn_integration_test.cc index 63c645f1e3797..5097515bd60a9 100644 --- a/test/integration/alpn_integration_test.cc +++ b/test/integration/alpn_integration_test.cc @@ -55,7 +55,7 @@ TEST_P(AlpnIntegrationTest, Http2) { codec_client_ = makeHttpConnection(makeClientConnection((lookupPort("http")))); auto response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().Status()->value().getStringView()); } @@ -67,7 +67,7 @@ TEST_P(AlpnIntegrationTest, Http1) { codec_client_ = makeHttpConnection(makeClientConnection((lookupPort("http")))); auto response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().Status()->value().getStringView()); } @@ -93,8 +93,8 @@ TEST_P(AlpnIntegrationTest, Mixed) { encoder1.encodeData(data, true); encoder2.encodeData(data, true); - response1->waitForEndStream(); - response2->waitForEndStream(); + ASSERT_TRUE(response1->waitForEndStream()); + ASSERT_TRUE(response2->waitForEndStream()); EXPECT_EQ("200", response1->headers().Status()->value().getStringView()); EXPECT_EQ("200", response2->headers().Status()->value().getStringView()); } diff --git a/test/integration/alpn_selection_integration_test.cc b/test/integration/alpn_selection_integration_test.cc index 5cc170c229cbb..b28c42fbffc03 100644 --- a/test/integration/alpn_selection_integration_test.cc +++ b/test/integration/alpn_selection_integration_test.cc @@ -107,7 +107,7 @@ TEST_F(AlpnSelectionIntegrationTest, Http2UpstreamMatchingAlpn) { fake_upstream_connection_->connection().nextProtocol()); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -129,7 +129,7 @@ TEST_F(AlpnSelectionIntegrationTest, Http2UpstreamMismatchingAlpn) { EXPECT_EQ("", fake_upstream_connection_->connection().nextProtocol()); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -149,7 +149,7 @@ TEST_F(AlpnSelectionIntegrationTest, Http2UpstreamConfiguredALPN) { EXPECT_EQ("custom-alpn", fake_upstream_connection_->connection().nextProtocol()); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -167,7 +167,7 @@ TEST_F(AlpnSelectionIntegrationTest, Http11UpstreaMatchingAlpn) { fake_upstream_connection_->connection().nextProtocol()); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -186,7 +186,7 @@ TEST_F(AlpnSelectionIntegrationTest, Http11UpstreaMismatchingAlpn) { EXPECT_EQ("", fake_upstream_connection_->connection().nextProtocol()); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -208,7 +208,7 @@ TEST_F(AlpnSelectionIntegrationTest, Http11UpstreamConfiguredALPN) { EXPECT_EQ("custom-alpn", fake_upstream_connection_->connection().nextProtocol()); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); } } // namespace Envoy diff --git a/test/integration/cluster_upstream_extension_integration_test.cc b/test/integration/cluster_upstream_extension_integration_test.cc index f0c6e0ddb3e0e..e4ac4ee0ba76d 100644 --- a/test/integration/cluster_upstream_extension_integration_test.cc +++ b/test/integration/cluster_upstream_extension_integration_test.cc @@ -84,7 +84,7 @@ TEST_P(ClusterUpstreamExtensionIntegrationTest, EXPECT_EQ("host-value", host_header_values[0]->value().getStringView()); } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } diff --git a/test/integration/direct_response_integration_test.cc b/test/integration/direct_response_integration_test.cc index 099052924d245..da246a27f74c3 100644 --- a/test/integration/direct_response_integration_test.cc +++ b/test/integration/direct_response_integration_test.cc @@ -39,7 +39,7 @@ class DirectResponseIntegrationTest : public testing::TestWithParamwaitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_EQ(body_size_bytes, response->body().size()); diff --git a/test/integration/drain_close_integration_test.cc b/test/integration/drain_close_integration_test.cc index f689fcf645f82..22f410e1ce69a 100644 --- a/test/integration/drain_close_integration_test.cc +++ b/test/integration/drain_close_integration_test.cc @@ -27,7 +27,7 @@ TEST_P(DrainCloseIntegrationTest, DrainCloseGradual) { IntegrationStreamDecoderPtr response; while (!test_server_->counter("http.config_test.downstream_cx_drain_close")->value()) { response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); } EXPECT_EQ(test_server_->counter("http.config_test.downstream_cx_drain_close")->value(), 1L); @@ -60,7 +60,7 @@ TEST_P(DrainCloseIntegrationTest, DrainCloseImmediate) { IntegrationStreamDecoderPtr response; response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(codec_client_->waitForDisconnect()); EXPECT_TRUE(response->complete()); @@ -85,7 +85,7 @@ TEST_P(DrainCloseIntegrationTest, AdminGracefulDrain) { auto response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); waitForNextUpstreamRequest(0); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_THAT(response->headers(), Http::HttpStatusIs("200")); // The request is completed but the connection remains open. @@ -102,7 +102,7 @@ TEST_P(DrainCloseIntegrationTest, AdminGracefulDrain) { response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); waitForNextUpstreamRequest(0); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_THAT(response->headers(), Http::HttpStatusIs("200")); @@ -139,7 +139,7 @@ TEST_P(DrainCloseIntegrationTest, RepeatedAdminGracefulDrain) { auto response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); waitForNextUpstreamRequest(0); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // Invoke /drain_listeners with graceful drain BufferingStreamDecoderPtr admin_response = IntegrationUtil::makeSingleRequest( @@ -155,7 +155,7 @@ TEST_P(DrainCloseIntegrationTest, RepeatedAdminGracefulDrain) { response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); waitForNextUpstreamRequest(0); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_THAT(response->headers(), Http::HttpStatusIs("200")); diff --git a/test/integration/extension_discovery_integration_test.cc b/test/integration/extension_discovery_integration_test.cc index 23103e43705c8..e4e0d6d8885b5 100644 --- a/test/integration/extension_discovery_integration_test.cc +++ b/test/integration/extension_discovery_integration_test.cc @@ -291,7 +291,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicSuccess) { Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/"}, {":scheme", "http"}, {":authority", "host"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -299,7 +299,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicSuccess) { {":method", "GET"}, {":path", "/private/key"}, {":scheme", "http"}, {":authority", "host"}}; { auto response = codec_client_->makeHeaderOnlyRequest(banned_request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); } @@ -309,7 +309,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicSuccess) { test_server_->waitForCounterGe("http.config_test.extension_config_discovery.foo.config_reload", 2); auto response = codec_client_->makeHeaderOnlyRequest(banned_request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -424,7 +424,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicSuccessWithMatcher) { Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/"}, {":scheme", "http"}, {":authority", "host"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -432,7 +432,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicSuccessWithMatcher) { {":method", "GET"}, {":path", "/private/key"}, {":scheme", "http"}, {":authority", "host"}}; { auto response = codec_client_->makeHeaderOnlyRequest(banned_request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); } @@ -443,7 +443,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicSuccessWithMatcher) { {":authority", "host"}}; { auto response = codec_client_->makeHeaderOnlyRequest(banned_request_headers_skipped); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -466,7 +466,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicDefaultMatcher) { Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/"}, {":scheme", "http"}, {":authority", "host"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); } @@ -476,7 +476,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicDefaultMatcher) { {":scheme", "http"}, {":authority", "host"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -510,7 +510,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, ReuseExtensionConfig) { Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/"}, {":scheme", "http"}, {":authority", "host"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); test_server_->waitForCounterEq("http.config_test.extension_config_discovery.foo.config_conflict", @@ -551,7 +551,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, ReuseExtensionConfigInvalid) { Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/"}, {":scheme", "http"}, {":authority", "host"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); test_server_->waitForCounterGe("http.config_test.extension_config_discovery.foo.config_conflict", @@ -574,7 +574,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicFailWithDefault) { Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/"}, {":scheme", "http"}, {":authority", "host"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); } @@ -595,7 +595,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicFailWithoutDefault) { Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/"}, {":scheme", "http"}, {":authority", "host"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("500", response->headers().getStatusValue()); } @@ -615,7 +615,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicWithoutWarming) { {":method", "GET"}, {":path", "/"}, {":scheme", "http"}, {":authority", "host"}}; { auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); } @@ -626,7 +626,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicWithoutWarming) { 1); { auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -648,7 +648,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicWithoutWarmingFail) { Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/"}, {":scheme", "http"}, {":authority", "host"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("403", response->headers().getStatusValue()); } @@ -671,7 +671,7 @@ TEST_P(ExtensionDiscoveryIntegrationTest, BasicTwoSubscriptionsSameName) { Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/"}, {":scheme", "http"}, {":authority", "host"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } diff --git a/test/integration/filter_manager_integration_test.cc b/test/integration/filter_manager_integration_test.cc index dddf18b3c9129..6d4ec55cf34bf 100644 --- a/test/integration/filter_manager_integration_test.cc +++ b/test/integration/filter_manager_integration_test.cc @@ -648,7 +648,7 @@ TEST_P(InjectDataWithHttpConnectionManagerIntegrationTest, Buffer::OwnedImpl response_data{"greetings"}; upstream_request_->encodeData(response_data, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_EQ("greetings", response->body()); diff --git a/test/integration/http2_flood_integration_test.cc b/test/integration/http2_flood_integration_test.cc index 0c23672ef9fac..26caa01f26c1c 100644 --- a/test/integration/http2_flood_integration_test.cc +++ b/test/integration/http2_flood_integration_test.cc @@ -217,7 +217,7 @@ void Http2FloodMitigationTest::floodClient(const Http2Frame& frame, uint32_t num // Upstream connection should be disconnected ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); // Downstream client should receive 502 since upstream did not send response headers yet - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("502", response->headers().getStatusValue()); if (!flood_stat.empty()) { EXPECT_EQ(1, test_server_->counter(flood_stat)->value()); @@ -1243,7 +1243,7 @@ TEST_P(Http2FloodMitigationTest, UpstreamEmptyHeaders) { Http2Frame::HeadersFlags::None); ASSERT_TRUE(upstream->rawWriteConnection(0, std::string(buf.begin(), buf.end()))); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("502", response->headers().getStatusValue()); EXPECT_EQ(1, test_server_->counter("cluster.cluster_0.http2.inbound_empty_frames_flood")->value()); @@ -1266,7 +1266,7 @@ TEST_P(Http2FloodMitigationTest, UpstreamZerolenHeader) { Http2Frame::makeMalformedResponseWithZerolenHeader(Http2Frame::makeClientStreamId(0)); ASSERT_TRUE(upstream->rawWriteConnection(0, std::string(buf.begin(), buf.end()))); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); EXPECT_EQ(1, test_server_->counter("cluster.cluster_0.http2.rx_messaging_error")->value()); @@ -1304,7 +1304,7 @@ TEST_P(Http2FloodMitigationTest, UpstreamZerolenHeaderAllowed) { // Make sure upstream and downstream got RST_STREAM from the server. ASSERT_TRUE(upstream_request_->waitForReset()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("502", response->headers().getStatusValue()); // Send another request from downstream on the same connection, and make sure @@ -1315,7 +1315,7 @@ TEST_P(Http2FloodMitigationTest, UpstreamZerolenHeaderAllowed) { Http2Frame::makeHeadersFrameWithStatus("200", Http2Frame::makeClientStreamId(1)); ASSERT_TRUE(upstream->rawWriteConnection(0, std::string(buf2.begin(), buf2.end()))); - response2->waitForEndStream(); + ASSERT_TRUE(response2->waitForEndStream()); EXPECT_EQ("200", response2->headers().getStatusValue()); EXPECT_EQ(1, test_server_->counter("cluster.cluster_0.http2.rx_messaging_error")->value()); @@ -1376,7 +1376,7 @@ TEST_P(Http2FloodMitigationTest, UpstreamEmptyHeadersContinuation) { } ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("502", response->headers().getStatusValue()); EXPECT_EQ(1, test_server_->counter("cluster.cluster_0.http2.inbound_empty_frames_flood")->value()); @@ -1435,7 +1435,7 @@ TEST_P(Http2FloodMitigationTest, UpstreamPriorityOneClosedStream) { // Send response header and end the stream upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); auto frame = Http2Frame::makePriorityFrame(Http2Frame::makeClientStreamId(0), @@ -1546,7 +1546,7 @@ TEST_P(Http2FloodMitigationTest, RequestMetadata) { // Upstream connection should be disconnected // Downstream client should receive 503 since upstream did not send response headers yet ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("503", response->headers().getStatusValue()); // Verify that the flood check was triggered. EXPECT_EQ(1, test_server_->counter("cluster.cluster_0.http2.outbound_flood")->value()); diff --git a/test/integration/http2_integration_test.cc b/test/integration/http2_integration_test.cc index f83363facb3b1..cfa512023cf6a 100644 --- a/test/integration/http2_integration_test.cc +++ b/test/integration/http2_integration_test.cc @@ -179,7 +179,7 @@ TEST_P(Http2MetadataIntegrationTest, ProxyMetadataInResponse) { upstream_request_->encodeData(12, true); // Verifies metadata is received by the client. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(response->metadataMap().find(key)->second, value); @@ -198,7 +198,7 @@ TEST_P(Http2MetadataIntegrationTest, ProxyMetadataInResponse) { upstream_request_->encodeData(0, true); // Verifies metadata is received by the client. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(response->metadataMap().find(key)->second, value); @@ -217,7 +217,7 @@ TEST_P(Http2MetadataIntegrationTest, ProxyMetadataInResponse) { upstream_request_->encodeData(10, true); // Verifies metadata is received by the client. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(response->metadataMap().find(key)->second, value); @@ -237,7 +237,7 @@ TEST_P(Http2MetadataIntegrationTest, ProxyMetadataInResponse) { upstream_request_->encodeData(10, true); // Verifies metadata is received by the client. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(response->metadataMap().find(key)->second, value); @@ -257,7 +257,7 @@ TEST_P(Http2MetadataIntegrationTest, ProxyMetadataInResponse) { upstream_request_->encodeData(0, true); // Verifies metadata is received by the client. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(response->metadataMap().find(key)->second, value); @@ -308,7 +308,7 @@ TEST_P(Http2MetadataIntegrationTest, ProxyMultipleMetadata) { upstream_request_->encodeData(12, true); // Verifies multiple metadata are received by the client. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); for (int i = 0; i < size; i++) { for (const auto& metadata : *multiple_vecs[i][0]) { @@ -341,7 +341,7 @@ TEST_P(Http2MetadataIntegrationTest, ProxyInvalidMetadata) { upstream_request_->encodeData(12, true); // Verifies metadata is not received by the client. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(response->metadataMap().size(), 0); } @@ -368,7 +368,7 @@ TEST_P(Http2MetadataIntegrationTest, TestResponseMetadata) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); std::set expected_metadata_keys = {"headers", "duplicate"}; verifyExpectedMetadata(response->metadataMap(), expected_metadata_keys); @@ -379,7 +379,7 @@ TEST_P(Http2MetadataIntegrationTest, TestResponseMetadata) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(100, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); expected_metadata_keys.insert("data"); verifyExpectedMetadata(response->metadataMap(), expected_metadata_keys); @@ -393,7 +393,7 @@ TEST_P(Http2MetadataIntegrationTest, TestResponseMetadata) { Http::TestResponseTrailerMapImpl response_trailers{{"response", "trailer"}}; upstream_request_->encodeTrailers(response_trailers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); expected_metadata_keys.insert("trailers"); verifyExpectedMetadata(response->metadataMap(), expected_metadata_keys); @@ -414,7 +414,7 @@ TEST_P(Http2MetadataIntegrationTest, TestResponseMetadata) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(100, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); expected_metadata_keys.erase("trailers"); expected_metadata_keys.insert("100-continue"); @@ -431,7 +431,7 @@ TEST_P(Http2MetadataIntegrationTest, TestResponseMetadata) { upstream_request_->encodeMetadata(metadata_map_vector); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); expected_metadata_keys.erase("data"); expected_metadata_keys.erase("100-continue"); @@ -450,7 +450,7 @@ TEST_P(Http2MetadataIntegrationTest, TestResponseMetadata) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(100, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); expected_metadata_keys.erase("aaa"); expected_metadata_keys.insert("data"); @@ -509,7 +509,7 @@ TEST_P(Http2MetadataIntegrationTest, ProxySmallMetadataInRequest) { EXPECT_EQ(upstream_request_->metadataMap().size(), 1); EXPECT_EQ(upstream_request_->duplicatedMetadataKeyCount().find("key")->second, 3); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); } @@ -539,7 +539,7 @@ TEST_P(Http2MetadataIntegrationTest, ProxyLargeMetadataInRequest) { EXPECT_EQ(upstream_request_->metadataMap().size(), 1); EXPECT_EQ(upstream_request_->duplicatedMetadataKeyCount().find("key")->second, 3); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); } @@ -583,7 +583,7 @@ TEST_P(Http2MetadataIntegrationTest, RequestMetadataThenTrailers) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); } @@ -607,7 +607,7 @@ TEST_P(Http2MetadataIntegrationTest, ConsumeAndInsertRequestMetadata) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); // Verifies a headers metadata added. std::set expected_metadata_keys = {"headers"}; @@ -624,7 +624,7 @@ TEST_P(Http2MetadataIntegrationTest, ConsumeAndInsertRequestMetadata) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); expected_metadata_keys.insert("data"); expected_metadata_keys.insert("metadata"); @@ -648,7 +648,7 @@ TEST_P(Http2MetadataIntegrationTest, ConsumeAndInsertRequestMetadata) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); expected_metadata_keys.insert("trailers"); verifyExpectedMetadata(upstream_request_->metadataMap(), expected_metadata_keys); @@ -665,7 +665,7 @@ TEST_P(Http2MetadataIntegrationTest, ConsumeAndInsertRequestMetadata) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); expected_metadata_keys.erase("trailers"); @@ -688,7 +688,7 @@ TEST_P(Http2MetadataIntegrationTest, ConsumeAndInsertRequestMetadata) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); expected_metadata_keys.insert("metadata1"); expected_metadata_keys.insert("metadata2"); @@ -724,7 +724,7 @@ void Http2MetadataIntegrationTest::runHeaderOnlyTest(bool send_request_body, siz waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); } @@ -769,7 +769,7 @@ void Http2MetadataIntegrationTest::testRequestMetadataWithStopAllFilter() { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); std::set expected_metadata_keys = {"headers", "data", "metadata", "metadata1", "metadata2", "replace", "trailers"}; @@ -822,7 +822,7 @@ name: encode-headers-return-stop-all-filter Http::TestResponseTrailerMapImpl response_trailers{{"response", "trailer"}}; upstream_request_->encodeTrailers(response_trailers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(response->metadataMap().find("headers")->second, "headers"); EXPECT_EQ(response->metadataMap().find("data")->second, "data"); @@ -900,7 +900,7 @@ TEST_P(Http2IntegrationTest, GoAway) { auto response = std::move(encoder_decoder.second); codec_client_->goAway(); codec_client_->sendData(*request_encoder_, 0, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); codec_client_->close(); EXPECT_TRUE(response->complete()); @@ -941,7 +941,7 @@ TEST_P(Http2IntegrationTest, DEPRECATED_FEATURE_TEST(GrpcRequestTimeoutMixedLega {"te", "trailers"}, {"grpc-timeout", "2S"}, // 2 Second {"content-type", "application/grpc"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_THAT(waitForAccessLog(access_log_name_), HasSubstr("via_upstream\n")); @@ -970,7 +970,7 @@ TEST_P(Http2IntegrationTest, GrpcRequestTimeout) { {"te", "trailers"}, {"grpc-timeout", "1S"}, // 1 Second {"content-type", "application/grpc"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_NE(response->headers().GrpcStatus(), nullptr); @@ -1041,7 +1041,7 @@ TEST_P(Http2IntegrationTest, IdleTimeoutWithSimultaneousRequests) { // Respond to request 2 upstream_request2->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, false); upstream_request2->encodeData(request2_bytes, true); - response2->waitForEndStream(); + ASSERT_TRUE(response2->waitForEndStream()); EXPECT_TRUE(upstream_request2->complete()); EXPECT_EQ(request2_bytes, upstream_request2->bodyLength()); EXPECT_TRUE(response2->complete()); @@ -1055,7 +1055,7 @@ TEST_P(Http2IntegrationTest, IdleTimeoutWithSimultaneousRequests) { // Respond to request 1 upstream_request1->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, false); upstream_request1->encodeData(request1_bytes, true); - response1->waitForEndStream(); + ASSERT_TRUE(response1->waitForEndStream()); EXPECT_TRUE(upstream_request1->complete()); EXPECT_EQ(request1_bytes, upstream_request1->bodyLength()); EXPECT_TRUE(response1->complete()); @@ -1085,7 +1085,7 @@ TEST_P(Http2IntegrationTest, RequestMirrorWithBody) { codec_client_ = makeHttpConnection(lookupPort("http")); // Send request with body. - IntegrationStreamDecoderPtr request = + IntegrationStreamDecoderPtr response = codec_client_->makeRequestWithBody(Http::TestRequestHeaderMapImpl{{":method", "POST"}, {":path", "/test/long/url"}, {":scheme", "http"}, @@ -1108,8 +1108,8 @@ TEST_P(Http2IntegrationTest, RequestMirrorWithBody) { upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); upstream_request2->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - request->waitForEndStream(); - EXPECT_EQ("200", request->headers().getStatusValue()); + ASSERT_TRUE(response->waitForEndStream()); + EXPECT_EQ("200", response->headers().getStatusValue()); // Cleanup. ASSERT_TRUE(fake_upstream_connection2->close()); @@ -1161,7 +1161,7 @@ void Http2IntegrationTest::simultaneousRequest(int32_t request1_bytes, int32_t r // Respond to request 2 upstream_request2->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, false); upstream_request2->encodeData(request2_bytes, true); - response2->waitForEndStream(); + ASSERT_TRUE(response2->waitForEndStream()); EXPECT_TRUE(upstream_request2->complete()); EXPECT_EQ(request2_bytes, upstream_request2->bodyLength()); EXPECT_TRUE(response2->complete()); @@ -1171,7 +1171,7 @@ void Http2IntegrationTest::simultaneousRequest(int32_t request1_bytes, int32_t r // Respond to request 1 upstream_request1->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, false); upstream_request1->encodeData(request2_bytes, true); - response1->waitForEndStream(); + ASSERT_TRUE(response1->waitForEndStream()); EXPECT_TRUE(upstream_request1->complete()); EXPECT_EQ(request1_bytes, upstream_request1->bodyLength()); EXPECT_TRUE(response1->complete()); @@ -1275,7 +1275,7 @@ TEST_P(Http2IntegrationTest, PauseAndResume) { response->waitForHeaders(); upstream_request_->encodeData(0, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); } @@ -1295,7 +1295,7 @@ TEST_P(Http2IntegrationTest, PauseAndResumeHeadersOnly) { ASSERT_TRUE(upstream_request_->waitForEndStream(*dispatcher_)); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); } @@ -1316,7 +1316,7 @@ TEST_P(Http2IntegrationTest, EmptyTrailers) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); } @@ -1404,7 +1404,7 @@ void Http2RingHashIntegrationTest::sendMultipleRequests( } for (uint32_t i = 0; i < num_requests; ++i) { - responses[i]->waitForEndStream(); + ASSERT_TRUE(responses[i]->waitForEndStream()); EXPECT_TRUE(upstream_requests[i]->complete()); EXPECT_EQ(request_bytes, upstream_requests[i]->bodyLength()); @@ -1631,7 +1631,7 @@ TEST_P(Http2MetadataIntegrationTest, UpstreamMetadataAfterEndStream) { upstream_request_->encodeMetadata(metadata_map_vector); // Cleanup. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); @@ -1650,7 +1650,7 @@ TEST_P(Http2IntegrationTest, OnLocalReply) { codec_client_ = makeHttpConnection(lookupPort("http")); { auto response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); } { diff --git a/test/integration/http_integration.cc b/test/integration/http_integration.cc index e5dbf8f079936..f04b8366654f2 100644 --- a/test/integration/http_integration.cc +++ b/test/integration/http_integration.cc @@ -374,7 +374,7 @@ ConfigHelper::ConfigModifierFunction HttpIntegrationTest::setEnableUpstreamTrail IntegrationStreamDecoderPtr HttpIntegrationTest::sendRequestAndWaitForResponse( const Http::TestRequestHeaderMapImpl& request_headers, uint32_t request_body_size, const Http::TestResponseHeaderMapImpl& response_headers, uint32_t response_size, - int upstream_index, std::chrono::milliseconds time) { + int upstream_index, std::chrono::milliseconds timeout) { ASSERT(codec_client_ != nullptr); // Send the request to Envoy. IntegrationStreamDecoderPtr response; @@ -383,7 +383,7 @@ IntegrationStreamDecoderPtr HttpIntegrationTest::sendRequestAndWaitForResponse( } else { response = codec_client_->makeHeaderOnlyRequest(request_headers); } - waitForNextUpstreamRequest(upstream_index, time); + waitForNextUpstreamRequest(upstream_index, timeout); // Send response headers, and end_stream if there is no response body. upstream_request_->encodeHeaders(response_headers, response_size == 0); // Send any response data, with end_stream true. @@ -391,7 +391,7 @@ IntegrationStreamDecoderPtr HttpIntegrationTest::sendRequestAndWaitForResponse( upstream_request_->encodeData(response_size, true); } // Wait for the response to be read by the codec client. - response->waitForEndStream(); + RELEASE_ASSERT(response->waitForEndStream(timeout), "unexpected timeout"); return response; } @@ -506,7 +506,7 @@ void HttpIntegrationTest::checkSimpleRequestSuccess(uint64_t expected_request_si void HttpIntegrationTest::testRouterRequestAndResponseWithBody( uint64_t request_size, uint64_t response_size, bool big_header, bool set_content_length_header, - ConnectionCreationFunction* create_connection) { + ConnectionCreationFunction* create_connection, std::chrono::milliseconds timeout) { initialize(); codec_client_ = makeHttpConnection( create_connection ? ((*create_connection)()) : makeClientConnection((lookupPort("http")))); @@ -521,8 +521,8 @@ void HttpIntegrationTest::testRouterRequestAndResponseWithBody( if (big_header) { request_headers.addCopy("big", std::string(4096, 'a')); } - auto response = - sendRequestAndWaitForResponse(request_headers, request_size, response_headers, response_size); + auto response = sendRequestAndWaitForResponse(request_headers, request_size, response_headers, + response_size, 0, timeout); checkSimpleRequestSuccess(request_size, response_size, response.get()); } @@ -660,7 +660,7 @@ void HttpIntegrationTest::testRouterUpstreamDisconnectBeforeRequestComplete() { ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (downstream_protocol_ == Http::CodecClient::Type::HTTP1) { ASSERT_TRUE(codec_client_->waitForDisconnect()); @@ -777,7 +777,7 @@ void HttpIntegrationTest::testRouterUpstreamResponseBeforeRequestComplete() { ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (upstreamProtocol() == FakeHttpConnection::Type::HTTP1) { ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); @@ -825,7 +825,7 @@ void HttpIntegrationTest::testRetry() { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(1024U, upstream_request_->bodyLength()); @@ -868,7 +868,7 @@ void HttpIntegrationTest::testRetryAttemptCountHeader() { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(1024U, upstream_request_->bodyLength()); @@ -911,7 +911,7 @@ void HttpIntegrationTest::testGrpcRetry() { upstream_request_->encodeTrailers(response_trailers); } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(1024U, upstream_request_->bodyLength()); @@ -974,7 +974,7 @@ void HttpIntegrationTest::testEnvoyHandling100Continue(bool additional_continue_ upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(12, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); ASSERT(response->continueHeaders() != nullptr); EXPECT_EQ("100", response->continueHeaders()->getStatusValue()); @@ -1059,7 +1059,7 @@ void HttpIntegrationTest::testEnvoyProxying1xx(bool continue_before_upstream_com } // Now send the rest of the response. upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); ASSERT(response->continueHeaders() != nullptr); EXPECT_EQ("100", response->continueHeaders()->getStatusValue()); @@ -1094,7 +1094,7 @@ void HttpIntegrationTest::testTwoRequests(bool network_backup) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(1024U, upstream_request_->bodyLength()); @@ -1107,7 +1107,7 @@ void HttpIntegrationTest::testTwoRequests(bool network_backup) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(1024, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(512U, upstream_request_->bodyLength()); @@ -1242,7 +1242,7 @@ void HttpIntegrationTest::testLargeRequestTrailers(uint32_t size, uint32_t max_s } else { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); } } @@ -1345,7 +1345,7 @@ void HttpIntegrationTest::testTrailers(uint64_t request_size, uint64_t response_ upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(response_size, false); upstream_request_->encodeTrailers(response_trailers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(request_size, upstream_request_->bodyLength()); @@ -1391,7 +1391,7 @@ void HttpIntegrationTest::testAdminDrain(Http::CodecClient::Type admin_request_t ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); // Wait for the response to be read by the codec client. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_THAT(response->headers(), Http::HttpStatusIs("200")); diff --git a/test/integration/http_integration.h b/test/integration/http_integration.h index 265a704bb01c6..fee3c43f9f63f 100644 --- a/test/integration/http_integration.h +++ b/test/integration/http_integration.h @@ -129,6 +129,8 @@ class HttpIntegrationTest : public BaseIntegrationTest { // Sends |request_headers| and |request_body_size| bytes of body upstream. // Configured upstream to send |response_headers| and |response_body_size| // bytes of body downstream. + // Waits |time| ms for both the request to be proxied upstream and the + // response to be proxied downstream. // // Waits for the complete downstream response before returning. // Requires |codec_client_| to be initialized. @@ -185,9 +187,10 @@ class HttpIntegrationTest : public BaseIntegrationTest { void testRouterVirtualClusters(); void testRouterUpstreamProtocolError(const std::string&, const std::string&); - void testRouterRequestAndResponseWithBody(uint64_t request_size, uint64_t response_size, - bool big_header, bool set_content_length_header = false, - ConnectionCreationFunction* creator = nullptr); + void testRouterRequestAndResponseWithBody( + uint64_t request_size, uint64_t response_size, bool big_header, + bool set_content_length_header = false, ConnectionCreationFunction* creator = nullptr, + std::chrono::milliseconds timeout = TestUtility::DefaultTimeout); void testRouterHeaderOnlyRequestAndResponse(ConnectionCreationFunction* creator = nullptr, int upstream_index = 0, const std::string& path = "/test/long/url", diff --git a/test/integration/http_subset_lb_integration_test.cc b/test/integration/http_subset_lb_integration_test.cc index cad7d7586503d..55a02c2a4fbf2 100644 --- a/test/integration/http_subset_lb_integration_test.cc +++ b/test/integration/http_subset_lb_integration_test.cc @@ -155,7 +155,7 @@ class HttpSubsetLbIntegrationTest // Send header only request. IntegrationStreamDecoderPtr response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // Expect a response from a host in the correct subset. EXPECT_EQ(response->headers() @@ -246,7 +246,7 @@ TEST_P(HttpSubsetLbIntegrationTest, SubsetLoadBalancerSingleHostPerSubsetNoMetad {":authority", "host"}, {"x-type", "a"}, {"x-hash", "hash-a"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_THAT(response->headers(), Http::HttpStatusIs("503")); } diff --git a/test/integration/http_timeout_integration_test.cc b/test/integration/http_timeout_integration_test.cc index c2df233dd2ca6..b0ac8dd841e2f 100644 --- a/test/integration/http_timeout_integration_test.cc +++ b/test/integration/http_timeout_integration_test.cc @@ -485,7 +485,7 @@ void HttpTimeoutIntegrationTest::testRouterRequestAndResponseWithHedgedPerTryTim } } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); codec_client_->close(); diff --git a/test/integration/idle_timeout_integration_test.cc b/test/integration/idle_timeout_integration_test.cc index eb8631423a0ce..3418fadabf8a7 100644 --- a/test/integration/idle_timeout_integration_test.cc +++ b/test/integration/idle_timeout_integration_test.cc @@ -114,7 +114,7 @@ TEST_P(IdleTimeoutIntegrationTest, TimeoutBasic) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); @@ -150,7 +150,7 @@ TEST_P(IdleTimeoutIntegrationTest, IdleTimeoutWithTwoRequests) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); @@ -162,7 +162,7 @@ TEST_P(IdleTimeoutIntegrationTest, IdleTimeoutWithTwoRequests) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(1024, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); @@ -202,13 +202,13 @@ TEST_P(IdleTimeoutIntegrationTest, PerStreamIdleTimeoutWithLargeBuffer) { codec_client_ = makeHttpConnection(makeClientConnection((lookupPort("http")))); auto response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); // Make sure that for HTTP/1.1 reads are enabled even though the first request // ended in the "backed up" state. auto response2 = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response2->waitForEndStream(); + ASSERT_TRUE(response2->waitForEndStream()); EXPECT_TRUE(response2->complete()); } diff --git a/test/integration/integration_stream_decoder.cc b/test/integration/integration_stream_decoder.cc index 6ac864cdabbb1..8803a39e3b3e0 100644 --- a/test/integration/integration_stream_decoder.cc +++ b/test/integration/integration_stream_decoder.cc @@ -15,6 +15,10 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" +using testing::AssertionFailure; +using testing::AssertionResult; +using testing::AssertionSuccess; + namespace Envoy { IntegrationStreamDecoder::IntegrationStreamDecoder(Event::Dispatcher& dispatcher) @@ -44,11 +48,25 @@ void IntegrationStreamDecoder::waitForBodyData(uint64_t size) { } } -void IntegrationStreamDecoder::waitForEndStream() { +AssertionResult IntegrationStreamDecoder::waitForEndStream(std::chrono::milliseconds timeout) { + bool timer_fired = false; if (!saw_end_stream_) { + Event::TimerPtr timer(dispatcher_.createTimer([this, &timer_fired]() -> void { + timer_fired = true; + dispatcher_.exit(); + })); + timer->enableTimer(timeout); waiting_for_end_stream_ = true; dispatcher_.run(Event::Dispatcher::RunType::Block); + if (!saw_end_stream_) { + // HTTP/1.1 may end stream by disconnecting. + ENVOY_LOG_MISC(warn, "No explicit end stream detected."); + } + if (timer_fired) { + return AssertionFailure() << "Timed out waiting for end stream\n"; + } } + return AssertionSuccess(); } void IntegrationStreamDecoder::waitForReset() { diff --git a/test/integration/integration_stream_decoder.h b/test/integration/integration_stream_decoder.h index 147cd717c3f84..2d022134e0aad 100644 --- a/test/integration/integration_stream_decoder.h +++ b/test/integration/integration_stream_decoder.h @@ -11,8 +11,11 @@ #include "common/common/dump_state_utils.h" +#include "test/test_common/utility.h" + #include "absl/container/node_hash_map.h" #include "absl/strings/string_view.h" +#include "gtest/gtest.h" namespace Envoy { /** @@ -37,7 +40,8 @@ class IntegrationStreamDecoder : public Http::ResponseDecoder, public Http::Stre // can be used if the previous body data is not relevant and the test wants to wait for a specific // amount of new data without considering the existing body size. void waitForBodyData(uint64_t size); - void waitForEndStream(); + testing::AssertionResult + waitForEndStream(std::chrono::milliseconds timeout = TestUtility::DefaultTimeout); void waitForReset(); void clearBody() { body_.clear(); } diff --git a/test/integration/integration_test.cc b/test/integration/integration_test.cc index 1e12dca023b49..255e028b3d652 100644 --- a/test/integration/integration_test.cc +++ b/test/integration/integration_test.cc @@ -250,7 +250,7 @@ TEST_P(IntegrationTest, ConnectionClose) { {":path", "/healthcheck"}, {":authority", "host"}, {"connection", "close"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(codec_client_->waitForDisconnect()); EXPECT_TRUE(response->complete()); @@ -328,7 +328,7 @@ TEST_P(IntegrationTest, ResponseFramedByConnectionCloseWithReadLimits) { upstream_request_->encodeData(512, true); ASSERT_TRUE(fake_upstream_connection_->close()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_THAT(response->headers(), HttpStatusIs("200")); @@ -399,7 +399,7 @@ name: matcher { auto response = codec_client_->makeRequestWithBody(default_request_headers_, 1024); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_THAT(response->headers(), HttpStatusIs("403")); } @@ -411,7 +411,7 @@ name: matcher waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_THAT(response->headers(), HttpStatusIs("200")); codec_client_->close(); @@ -448,7 +448,7 @@ TEST_P(IntegrationTest, UpstreamDisconnectWithTwoRequests) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); ASSERT_TRUE(fake_upstream_connection_->close()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); @@ -462,7 +462,7 @@ TEST_P(IntegrationTest, UpstreamDisconnectWithTwoRequests) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(1024, true); - response2->waitForEndStream(); + ASSERT_TRUE(response2->waitForEndStream()); codec_client2->close(); EXPECT_TRUE(upstream_request_->complete()); @@ -500,7 +500,7 @@ TEST_P(IntegrationTest, HittingGrpcFilterLimitBufferingHeaders) { upstream_request_->encodeData(1024 * 65, false); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_THAT(response->headers(), HttpStatusIs("200")); EXPECT_THAT(response->headers(), @@ -997,7 +997,7 @@ TEST_P(IntegrationTest, NoHost) { Http::TestRequestHeaderMapImpl request_headers{ {":method", "GET"}, {":path", "/test/long/url"}, {":scheme", "http"}}; auto response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("400", response->headers().getStatusValue()); @@ -1282,7 +1282,7 @@ TEST_P(IntegrationTest, TestFailedBind) { {":authority", "host"}, {"x-forwarded-for", "10.0.0.1"}, {"x-envoy-upstream-rq-timeout-ms", "1000"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_THAT(response->headers(), HttpStatusIs("503")); EXPECT_LT(0, test_server_->counter("cluster.cluster_0.bind_errors")->value()); @@ -1309,7 +1309,7 @@ TEST_P(IntegrationTest, ViaAppendHeaderOnly) { waitForNextUpstreamRequest(); EXPECT_THAT(upstream_request_->headers(), HeaderValueOf(Headers::get().Via, "foo, bar")); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(codec_client_->waitForDisconnect()); EXPECT_TRUE(response->complete()); EXPECT_THAT(response->headers(), HttpStatusIs("200")); @@ -1349,7 +1349,7 @@ TEST_P(IntegrationTest, TestDelayedConnectionTeardownOnGracefulClose) { codec_client_->sendData(*request_encoder_, 1024 * 65, false); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("413", response->headers().getStatusValue()); // With no delayed close processing, Envoy will close the connection immediately after flushing @@ -1385,7 +1385,7 @@ TEST_P(IntegrationTest, TestDelayedConnectionTeardownConfig) { codec_client_->sendData(*request_encoder_, 1024 * 65, false); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // There is a potential race in the client's response processing when delayed close logic is // disabled in Envoy (see https://github.com/envoyproxy/envoy/issues/2929). Depending on timing, // a client may receive an RST prior to reading the response data from the socket, which may clear @@ -1423,7 +1423,7 @@ TEST_P(IntegrationTest, TestDelayedConnectionTeardownTimeoutTrigger) { codec_client_->sendData(*request_encoder_, 1024 * 65, false); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // The delayed close timeout should trigger since client is not closing the connection. EXPECT_TRUE(codec_client_->waitForDisconnect(std::chrono::milliseconds(2000))); EXPECT_EQ(codec_client_->lastConnectionEvent(), Network::ConnectionEvent::RemoteClose); @@ -1462,7 +1462,7 @@ TEST_P(IntegrationTest, NoConnectionPoolsFree) { test_server_->waitForGaugeEq("cluster.cluster_0.upstream_rq_active", 0); test_server_->waitForGaugeEq("cluster.cluster_0.upstream_rq_pending_active", 0); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("503", response->headers().getStatusValue()); test_server_->waitForCounterGe("cluster.cluster_0.upstream_rq_503", 1); @@ -1484,7 +1484,7 @@ TEST_P(IntegrationTest, ProcessObjectHealthy) { {":path", "/healthcheck"}, {":authority", "host"}, {"connection", "close"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(codec_client_->waitForDisconnect()); EXPECT_TRUE(response->complete()); @@ -1505,7 +1505,7 @@ TEST_P(IntegrationTest, ProcessObjectUnealthy) { {":path", "/healthcheck"}, {":authority", "host"}, {"connection", "close"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(codec_client_->waitForDisconnect()); EXPECT_TRUE(response->complete()); @@ -1640,7 +1640,7 @@ TEST_P(IntegrationTest, TestManyBadRequests) { for (int i = 0; i < 1000; ++i) { IntegrationStreamDecoderPtr response = codec_client_->makeHeaderOnlyRequest(bad_request); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_THAT(response->headers(), HttpStatusIs("400")); } @@ -1667,7 +1667,7 @@ TEST_P(IntegrationTest, TestUpgradeHeaderInResponse) { response->waitForHeaders(); EXPECT_EQ(nullptr, response->headers().Upgrade()); EXPECT_EQ(nullptr, response->headers().Connection()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("Hello World", response->body()); } @@ -1698,7 +1698,7 @@ TEST_P(IntegrationTest, TestUpgradeHeaderInResponseWithTrailers) { response->waitForHeaders(); EXPECT_EQ(nullptr, response->headers().Upgrade()); EXPECT_EQ(nullptr, response->headers().Connection()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("Hello World", response->body()); EXPECT_NE(response->trailers(), nullptr); @@ -1787,7 +1787,7 @@ TEST_P(IntegrationTest, Response204WithBody) { upstream_request_->encodeData(512, true); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_THAT(response->headers(), HttpStatusIs("204")); @@ -1960,7 +1960,7 @@ TEST_P(IntegrationTest, RandomPreconnect) { // Finish up a request. clients.front()->sendData(*encoders.front(), 0, true); encoders.pop_front(); - responses.front()->waitForEndStream(); + ASSERT_TRUE(responses.front()->waitForEndStream()); responses.pop_front(); clients.front()->close(); clients.pop_front(); @@ -1970,7 +1970,7 @@ TEST_P(IntegrationTest, RandomPreconnect) { while (!clients.empty()) { clients.front()->sendData(*encoders.front(), 0, true); encoders.pop_front(); - responses.front()->waitForEndStream(); + ASSERT_TRUE(responses.front()->waitForEndStream()); responses.pop_front(); clients.front()->close(); clients.pop_front(); diff --git a/test/integration/load_stats_integration_test.cc b/test/integration/load_stats_integration_test.cc index bd2ad88ed00d2..bda71d612a88c 100644 --- a/test/integration/load_stats_integration_test.cc +++ b/test/integration/load_stats_integration_test.cc @@ -314,7 +314,7 @@ class LoadStatsIntegrationTest : public Grpc::VersionedGrpcClientIntegrationPara upstream_request_->encodeHeaders( Http::TestResponseHeaderMapImpl{{":status", std::to_string(response_code)}}, false); upstream_request_->encodeData(response_size_, true); - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); ASSERT_TRUE(upstream_request_->complete()); EXPECT_EQ(request_size_, upstream_request_->bodyLength()); @@ -642,7 +642,7 @@ TEST_P(LoadStatsIntegrationTest, Dropped) { requestLoadStatsResponse({"cluster_0"}); // This should count as dropped, since we trigger circuit breaking. initiateClientConnection(); - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); ASSERT_TRUE(response_->complete()); EXPECT_EQ("503", response_->headers().getStatusValue()); cleanupUpstreamAndDownstream(); diff --git a/test/integration/local_reply_integration_test.cc b/test/integration/local_reply_integration_test.cc index d13a21cc59ac1..778158f01bd4b 100644 --- a/test/integration/local_reply_integration_test.cc +++ b/test/integration/local_reply_integration_test.cc @@ -64,7 +64,7 @@ TEST_P(LocalReplyIntegrationTest, MapStatusCodeAndFormatToJson) { ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (downstream_protocol_ == Http::CodecClient::Type::HTTP1) { ASSERT_TRUE(codec_client_->waitForDisconnect()); @@ -123,7 +123,7 @@ TEST_P(LocalReplyIntegrationTest, EmptyStructFormatter) { ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (downstream_protocol_ == Http::CodecClient::Type::HTTP1) { ASSERT_TRUE(codec_client_->waitForDisconnect()); @@ -175,7 +175,7 @@ TEST_P(LocalReplyIntegrationTest, MapStatusCodeAndFormatToJson4Grpc) { ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (downstream_protocol_ == Http::CodecClient::Type::HTTP1) { ASSERT_TRUE(codec_client_->waitForDisconnect()); @@ -254,7 +254,7 @@ TEST_P(LocalReplyIntegrationTest, MapStatusCodeAndFormatToJsonForFirstMatchingFi ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (downstream_protocol_ == Http::CodecClient::Type::HTTP1) { ASSERT_TRUE(codec_client_->waitForDisconnect()); @@ -328,7 +328,7 @@ TEST_P(LocalReplyIntegrationTest, ShouldNotMatchAnyFilter) { ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (downstream_protocol_ == Http::CodecClient::Type::HTTP1) { ASSERT_TRUE(codec_client_->waitForDisconnect()); @@ -389,7 +389,7 @@ TEST_P(LocalReplyIntegrationTest, ShouldMapResponseCodeAndMapToDefaultTextRespon ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (downstream_protocol_ == Http::CodecClient::Type::HTTP1) { ASSERT_TRUE(codec_client_->waitForDisconnect()); @@ -447,7 +447,7 @@ TEST_P(LocalReplyIntegrationTest, ShouldFormatResponseToCustomString) { ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (downstream_protocol_ == Http::CodecClient::Type::HTTP1) { ASSERT_TRUE(codec_client_->waitForDisconnect()); @@ -505,7 +505,7 @@ TEST_P(LocalReplyIntegrationTest, ShouldFormatResponseToEmptyBody) { ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (downstream_protocol_ == Http::CodecClient::Type::HTTP1) { ASSERT_TRUE(codec_client_->waitForDisconnect()); diff --git a/test/integration/multiplexed_upstream_integration_test.cc b/test/integration/multiplexed_upstream_integration_test.cc index c10d7be9f56ba..6bbf4ca301f89 100644 --- a/test/integration/multiplexed_upstream_integration_test.cc +++ b/test/integration/multiplexed_upstream_integration_test.cc @@ -94,7 +94,7 @@ TEST_P(Http2UpstreamIntegrationTest, TestSchemeAndXFP) { default_request_headers_.setScheme(scheme); default_request_headers_.setForwardedProto(xff); auto response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); auto headers = reinterpret_cast(fake_upstreams_.front().get()) ->lastRequestHeaders(); // Ensure original scheme and x-forwarded-proto are preserved. @@ -142,7 +142,7 @@ void Http2UpstreamIntegrationTest::bidirectionalStreaming(uint32_t bytes) { // Finish the response. upstream_request_->encodeTrailers(Http::TestResponseTrailerMapImpl{{"trailer", "bar"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); } @@ -229,7 +229,7 @@ void Http2UpstreamIntegrationTest::simultaneousRequest(uint32_t request1_bytes, // Respond to request 2 upstream_request2->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, false); upstream_request2->encodeData(response2_bytes, true); - response2->waitForEndStream(); + ASSERT_TRUE(response2->waitForEndStream()); EXPECT_TRUE(upstream_request2->complete()); EXPECT_EQ(request2_bytes, upstream_request2->bodyLength()); EXPECT_TRUE(response2->complete()); @@ -239,7 +239,7 @@ void Http2UpstreamIntegrationTest::simultaneousRequest(uint32_t request1_bytes, // Respond to request 1 upstream_request1->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, false); upstream_request1->encodeData(response1_bytes, true); - response1->waitForEndStream(); + ASSERT_TRUE(response1->waitForEndStream()); EXPECT_TRUE(upstream_request1->complete()); EXPECT_EQ(request1_bytes, upstream_request1->bodyLength()); EXPECT_TRUE(response1->complete()); @@ -296,7 +296,7 @@ void Http2UpstreamIntegrationTest::manySimultaneousRequests(uint32_t request_byt } for (uint32_t i = 0; i < num_requests; ++i) { - responses[i]->waitForEndStream(); + ASSERT_TRUE(responses[i]->waitForEndStream()); if (i % 2 != 0) { EXPECT_TRUE(responses[i]->complete()); EXPECT_EQ("200", responses[i]->headers().getStatusValue()); @@ -446,7 +446,7 @@ name: router ASSERT_TRUE(fake_upstream_connection_->close()); ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); } @@ -467,7 +467,7 @@ TEST_P(Http2UpstreamIntegrationTest, TestManyResponseHeadersRejected) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(many_headers, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // Upstream stream reset triggered. EXPECT_EQ("503", response->headers().getStatusValue()); } @@ -494,7 +494,7 @@ TEST_P(Http2UpstreamIntegrationTest, ManyResponseHeadersAccepted) { upstream_request_->encodeHeaders(response_headers, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); @@ -511,7 +511,7 @@ TEST_P(Http2UpstreamIntegrationTest, LargeResponseHeadersRejected) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(large_headers, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // Upstream stream reset. EXPECT_EQ("503", response->headers().getStatusValue()); } @@ -557,7 +557,7 @@ name: router // Send the response headers. upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -589,7 +589,7 @@ TEST_P(Http2UpstreamIntegrationTest, MultipleRequestsLowStreamLimit) { // result in a second connection and an immediate response. FakeStreamPtr upstream_request2; auto response2 = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response2->waitForEndStream(); + ASSERT_TRUE(response2->waitForEndStream()); } } // namespace Envoy diff --git a/test/integration/overload_integration_test.cc b/test/integration/overload_integration_test.cc index 3135a6c08254f..055cc6a3d4144 100644 --- a/test/integration/overload_integration_test.cc +++ b/test/integration/overload_integration_test.cc @@ -137,7 +137,7 @@ TEST_P(OverloadIntegrationTest, CloseStreamsWhenOverloaded) { {":method", "GET"}, {":path", "/test/long/url"}, {":scheme", "http"}, {":authority", "host"}}; codec_client_ = makeHttpConnection(makeClientConnection((lookupPort("http")))); auto response = codec_client_->makeRequestWithBody(request_headers, 10); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("503", response->headers().getStatusValue()); @@ -146,7 +146,7 @@ TEST_P(OverloadIntegrationTest, CloseStreamsWhenOverloaded) { codec_client_ = makeHttpConnection(makeClientConnection((lookupPort("http")))); response = codec_client_->makeHeaderOnlyRequest(request_headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("503", response->headers().getStatusValue()); @@ -237,7 +237,7 @@ TEST_P(OverloadIntegrationTest, StopAcceptingConnectionsWhenOverloaded) { ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(upstream_request_->waitForData(*dispatcher_, 10)); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "202"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("202", response->headers().getStatusValue()); @@ -285,7 +285,7 @@ TEST_P(OverloadScaledTimerIntegrationTest, CloseIdleHttpConnections) { ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(upstream_request_->waitForData(*dispatcher_, 10)); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // At this point, the connection should be idle but still open. ASSERT_TRUE(codec_client_->connected()); @@ -313,7 +313,8 @@ TEST_P(OverloadScaledTimerIntegrationTest, CloseIdleHttpConnections) { ASSERT_TRUE(fake_upstream_connection_->waitForNewStream(*dispatcher_, upstream_request_)); ASSERT_TRUE(upstream_request_->waitForHeadersComplete()); ASSERT_TRUE(upstream_request_->waitForData(*dispatcher_, 10)); - response->waitForEndStream(); + upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ(response->headers().getConnectionValue(), "close"); } else { EXPECT_TRUE(codec_client_->sawGoAway()); @@ -354,7 +355,7 @@ TEST_P(OverloadScaledTimerIntegrationTest, CloseIdleHttpStream) { // Wait for the proxy to notice and take action for the overload. test_server_->waitForCounterGe("http.config_test.downstream_rq_idle_timeout", 1); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ(response->headers().getStatusValue(), "408"); EXPECT_THAT(response->body(), HasSubstr("stream timeout")); diff --git a/test/integration/protocol_integration_test.cc b/test/integration/protocol_integration_test.cc index 2d1b44ebc4d04..36e048b10bc37 100644 --- a/test/integration/protocol_integration_test.cc +++ b/test/integration/protocol_integration_test.cc @@ -165,7 +165,7 @@ name: health_check codec_client_ = makeHttpConnection(lookupPort("http")); auto response = codec_client_->makeHeaderOnlyRequest(Http::TestRequestHeaderMapImpl{ {":method", "GET"}, {":path", "/healthcheck"}, {":scheme", "http"}, {":authority", "host"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("503", response->headers().getStatusValue()); @@ -186,7 +186,7 @@ name: health_check codec_client_ = makeHttpConnection(lookupPort("http")); auto response = codec_client_->makeHeaderOnlyRequest(Http::TestRequestHeaderMapImpl{ {":method", "GET"}, {":path", "/healthcheck"}, {":scheme", "http"}, {":authority", "host"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("503", response->headers().getStatusValue()); @@ -210,7 +210,7 @@ TEST_P(ProtocolIntegrationTest, AddBodyToRequestAndWaitForIt) { upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, false); // encode data, as we have a separate test for the transforming header only response. upstream_request_->encodeData(128, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); @@ -231,7 +231,7 @@ TEST_P(ProtocolIntegrationTest, AddBodyToResponseAndWaitForIt) { auto response = codec_client_->makeRequestWithBody(default_request_headers_, 128); waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); @@ -260,7 +260,7 @@ TEST_P(ProtocolIntegrationTest, ContinueHeadersOnlyInjectBodyFilter) { // Send a headers only response. upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // Make sure that the body was injected to the response. EXPECT_TRUE(response->complete()); @@ -284,7 +284,7 @@ TEST_P(DownstreamProtocolIntegrationTest, ContinueAfterLocalReply) { EXPECT_ENVOY_BUG( { response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); }, @@ -305,7 +305,7 @@ name: add-trailers-filter waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "503"}}, false); upstream_request_->encodeData(128, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); if (upstreamProtocol() >= FakeHttpConnection::Type::HTTP2) { EXPECT_EQ("decode", upstream_request_->trailers() @@ -332,7 +332,7 @@ TEST_P(ProtocolIntegrationTest, ResponseWithHostHeader) { waitForNextUpstreamRequest(); upstream_request_->encodeHeaders( Http::TestResponseHeaderMapImpl{{":status", "200"}, {"host", "host"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_EQ("host", @@ -360,7 +360,7 @@ TEST_P(DownstreamProtocolIntegrationTest, DownstreamRequestWithFaultyFilter) { {":scheme", "http"}, {":authority", "host"}, {"remove-method", "yes"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("503", response->headers().getStatusValue()); EXPECT_THAT(waitForAccessLog(access_log_name_), HasSubstr("missing_required_header")); @@ -372,7 +372,7 @@ TEST_P(DownstreamProtocolIntegrationTest, DownstreamRequestWithFaultyFilter) { {":scheme", "http"}, {":authority", "host"}, {"remove-path", "yes"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("503", response->headers().getStatusValue()); EXPECT_THAT(waitForAccessLog(access_log_name_), HasSubstr("missing_required_header")); @@ -413,7 +413,7 @@ TEST_P(DownstreamProtocolIntegrationTest, FaultyFilterWithConnect) { ? std::move((codec_client_->startRequest(headers)).second) : codec_client_->makeHeaderOnlyRequest(headers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("503", response->headers().getStatusValue()); EXPECT_THAT(waitForAccessLog(access_log_name_), HasSubstr("missing_required_header")); @@ -434,7 +434,7 @@ TEST_P(DownstreamProtocolIntegrationTest, MissingHeadersLocalReply) { {":authority", "host"}, {"remove-method", "yes"}, {"send-reply", "yes"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_THAT(waitForAccessLog(access_log_name_), HasSubstr("InvalidHeaderFilter_ready\n")); @@ -456,7 +456,7 @@ TEST_P(DownstreamProtocolIntegrationTest, MissingHeadersLocalReplyWithBody) { {"remove-method", "yes"}, {"send-reply", "yes"}}, 1024); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_THAT(waitForAccessLog(access_log_name_), HasSubstr("InvalidHeaderFilter_ready\n")); @@ -487,7 +487,7 @@ TEST_P(ProtocolIntegrationTest, LongHeaderValueWithSpaces) { {"host", "host"}, {"longresponsevalue", long_header_value_with_inner_lws}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_EQ("host", @@ -525,7 +525,7 @@ TEST_P(ProtocolIntegrationTest, Retry) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(1024U, upstream_request_->bodyLength()); @@ -596,7 +596,7 @@ TEST_P(ProtocolIntegrationTest, RetryStreaming) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(combined_request_data.size(), upstream_request_->bodyLength()); @@ -660,7 +660,7 @@ TEST_P(ProtocolIntegrationTest, RetryStreamingReset) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(combined_request_data.size(), upstream_request_->bodyLength()); @@ -720,7 +720,7 @@ TEST_P(ProtocolIntegrationTest, RetryStreamingCancelDueToBufferOverflow) { Buffer::OwnedImpl send2(data2); encoder.encodeData(send2, false); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("507", response->headers().getStatusValue()); @@ -761,7 +761,7 @@ TEST_P(DownstreamProtocolIntegrationTest, RetryAttemptCountHeader) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(1024U, upstream_request_->bodyLength()); @@ -838,7 +838,7 @@ TEST_P(DownstreamProtocolIntegrationTest, RetryPriority) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(1024U, upstream_request_->bodyLength()); @@ -903,7 +903,7 @@ TEST_P(DownstreamProtocolIntegrationTest, RetryHostPredicateFilter) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(1024U, upstream_request_->bodyLength()); @@ -931,7 +931,7 @@ TEST_P(ProtocolIntegrationTest, RetryHittingBufferLimit) { upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "503"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(66560U, upstream_request_->bodyLength()); @@ -959,7 +959,7 @@ TEST_P(ProtocolIntegrationTest, RetryHittingRouteLimits) { upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "503"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_EQ(1U, upstream_request_->bodyLength()); @@ -986,7 +986,7 @@ TEST_P(DownstreamProtocolIntegrationTest, HittingDecoderFilterLimit) { {"x-envoy-retry-on", "5xx"}}, 1024 * 65); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // With HTTP/1 there's a possible race where if the connection backs up early, // the 413-and-connection-close may be sent while the body is still being // sent, resulting in a write error and the connection being closed before the @@ -1041,7 +1041,7 @@ TEST_P(ProtocolIntegrationTest, HittingEncoderFilterLimit) { ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("500", response->headers().getStatusValue()); // Regression test all sendLocalReply paths add route-requested headers. @@ -1125,7 +1125,7 @@ TEST_P(ProtocolIntegrationTest, HeadersWithUnderscoresDropped) { EXPECT_THAT(upstream_request_->headers(), Not(HeaderHasValueRef("foo_bar", "baz"))); upstream_request_->encodeHeaders( Http::TestResponseHeaderMapImpl{{":status", "200"}, {"bar_baz", "fooz"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_THAT(response->headers(), HeaderHasValueRef("bar_baz", "fooz")); @@ -1163,7 +1163,7 @@ TEST_P(ProtocolIntegrationTest, HeadersWithUnderscoresRemainByDefault) { EXPECT_THAT(upstream_request_->headers(), HeaderHasValueRef("foo_bar", "baz")); upstream_request_->encodeHeaders( Http::TestResponseHeaderMapImpl{{":status", "200"}, {"bar_baz", "fooz"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_THAT(response->headers(), HeaderHasValueRef("bar_baz", "fooz")); @@ -1284,7 +1284,7 @@ TEST_P(ProtocolIntegrationTest, OverflowingResponseCode) { ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("502", response->headers().getStatusValue()); EXPECT_THAT(waitForAccessLog(access_log_name_), HasSubstr("protocol_error")); } @@ -1324,7 +1324,7 @@ TEST_P(ProtocolIntegrationTest, MissingStatus) { ASSERT_TRUE(fake_upstream_connection_->waitForDisconnect()); } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("502", response->headers().getStatusValue()); } @@ -1528,7 +1528,7 @@ name: local-reply-during-encode waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "503"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("500", response->headers().getStatusValue()); EXPECT_EQ(0, upstream_request_->body().length()); @@ -1653,7 +1653,7 @@ TEST_P(DownstreamProtocolIntegrationTest, ManyRequestTrailersAccepted) { codec_client_->sendTrailers(*request_encoder_, request_trailers); waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); } @@ -1720,7 +1720,7 @@ TEST_P(DownstreamProtocolIntegrationTest, ManyTrailerHeaders) { codec_client_->sendTrailers(*request_encoder_, *request_trailers); waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); @@ -1767,7 +1767,7 @@ TEST_P(ProtocolIntegrationTest, LargeRequestMethod) { auto response = codec_client_->makeHeaderOnlyRequest(request_headers); ASSERT_TRUE( fake_upstreams_[0]->waitForHttpConnection(*dispatcher_, fake_upstream_connection_)); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("400", response->headers().getStatusValue()); } else { @@ -1811,7 +1811,7 @@ name: passthrough-filter waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(count_ * size_ + added_decoded_data_size_, upstream_request_->bodyLength()); EXPECT_EQ(true, upstream_request_->complete()); @@ -1828,7 +1828,7 @@ name: passthrough-filter waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); verifyUpStreamRequestAfterStopAllFilter(); } @@ -1869,7 +1869,7 @@ name: passthrough-filter waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(count_ * size_ + added_decoded_data_size_, upstream_request_->bodyLength()); EXPECT_EQ(true, upstream_request_->complete()); @@ -1889,7 +1889,7 @@ name: passthrough-filter waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); verifyUpStreamRequestAfterStopAllFilter(); } @@ -1922,7 +1922,7 @@ name: passthrough-filter waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ(count_ * size_ + added_decoded_data_size_, upstream_request_->bodyLength()); EXPECT_EQ(true, upstream_request_->complete()); @@ -1939,7 +1939,7 @@ name: passthrough-filter waitForNextUpstreamRequest(); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); verifyUpStreamRequestAfterStopAllFilter(); } @@ -1972,7 +1972,7 @@ name: encode-headers-return-stop-all-filter Http::TestResponseTrailerMapImpl response_trailers{{"response", "trailer"}}; upstream_request_->encodeTrailers(response_trailers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); // Data is added in encodeData for all protocols, and encodeTrailers for HTTP/2 and above. int times_added = (upstreamProtocol() == FakeHttpConnection::Type::HTTP1 || @@ -2024,7 +2024,7 @@ name: encode-headers-return-stop-all-filter Http::TestResponseTrailerMapImpl response_trailers{{"response", "trailer"}}; upstream_request_->encodeTrailers(response_trailers); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); // Data is added in encodeData for all protocols, and encodeTrailers for HTTP/2 and above. int times_added = (upstreamProtocol() == FakeHttpConnection::Type::HTTP1 || @@ -2106,7 +2106,7 @@ TEST_P(ProtocolIntegrationTest, ConnDurationTimeoutBasic) { upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); @@ -2135,7 +2135,7 @@ TEST_P(ProtocolIntegrationTest, ConnDurationInflightRequest) { // ensure request processed correctly upstream_request_->encodeHeaders(default_response_headers_, false); upstream_request_->encodeData(512, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); @@ -2233,7 +2233,7 @@ TEST_P(DownstreamProtocolIntegrationTest, InvalidAuthority) { auto response = codec_client_->makeHeaderOnlyRequest(request_headers); if (downstreamProtocol() == Http::CodecClient::Type::HTTP1) { // For HTTP/1 this is handled by the HCM, which sends a full 400 response. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("400", response->headers().getStatusValue()); } else { @@ -2255,7 +2255,7 @@ TEST_P(DownstreamProtocolIntegrationTest, ConnectIsBlocked) { if (downstreamProtocol() == Http::CodecClient::Type::HTTP1) { // Because CONNECT requests for HTTP/1 do not include a path, they will fail // to find a route match and return a 404. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("404", response->headers().getStatusValue()); EXPECT_TRUE(response->complete()); } else { @@ -2302,7 +2302,7 @@ TEST_P(DownstreamProtocolIntegrationTest, Test100AndDisconnect) { ASSERT_TRUE(fake_upstream_connection_->close()); // Make sure that a disconnect results in valid 5xx response headers even when preceded by a 100. - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("503", response->headers().getStatusValue()); } diff --git a/test/integration/quic_http_integration_test.cc b/test/integration/quic_http_integration_test.cc index 7c2d5d63f89c2..afce0fb4af7f5 100644 --- a/test/integration/quic_http_integration_test.cc +++ b/test/integration/quic_http_integration_test.cc @@ -315,7 +315,8 @@ TEST_P(QuicHttpIntegrationTest, UpstreamReadDisabledOnGiantResponseBody) { config_helper_.addConfigModifier(setUpstreamTimeout); config_helper_.setBufferLimits(/*upstream_buffer_limit=*/1024, /*downstream_buffer_limit=*/1024); testRouterRequestAndResponseWithBody(/*request_size=*/512, /*response_size=*/10 * 1024 * 1024, - false); + false, false, nullptr, + TSAN_TIMEOUT_FACTOR * TestUtility::DefaultTimeout); } TEST_P(QuicHttpIntegrationTest, DownstreamReadDisabledOnGiantPost) { @@ -329,11 +330,14 @@ TEST_P(QuicHttpIntegrationTest, LargeFlowControlOnAndGiantBody) { config_helper_.setBufferLimits(/*upstream_buffer_limit=*/128 * 1024, /*downstream_buffer_limit=*/128 * 1024); testRouterRequestAndResponseWithBody(/*request_size=*/10 * 1024 * 1024, - /*response_size=*/10 * 1024 * 1024, false, false); + /*response_size=*/10 * 1024 * 1024, false, false, nullptr, + TSAN_TIMEOUT_FACTOR * TestUtility::DefaultTimeout); } // Tests that a connection idle times out after 1s and starts delayed close. TEST_P(QuicHttpIntegrationTest, TestDelayedConnectionTeardownTimeoutTrigger) { + config_helper_.addFilter("{ name: encoder-decoder-buffer-filter, typed_config: { \"@type\": " + "type.googleapis.com/google.protobuf.Empty } }"); config_helper_.setBufferLimits(1024, 1024); config_helper_.addConfigModifier( [](envoy::extensions::filters::network::http_connection_manager::v3::HttpConnectionManager& @@ -358,7 +362,7 @@ TEST_P(QuicHttpIntegrationTest, TestDelayedConnectionTeardownTimeoutTrigger) { codec_client_->sendData(*request_encoder_, 1024 * 65, false); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // The delayed close timeout should trigger since client is not closing the connection. EXPECT_TRUE(codec_client_->waitForDisconnect(std::chrono::milliseconds(5000))); EXPECT_EQ(codec_client_->lastConnectionEvent(), Network::ConnectionEvent::RemoteClose); @@ -409,7 +413,7 @@ TEST_P(QuicHttpIntegrationTest, ConnectionMigration) { size_t response_size{5u}; upstream_request_->encodeHeaders(response_headers, false); upstream_request_->encodeData(response_size, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); verifyResponse(std::move(response), "200", response_headers, std::string(response_size, 'a')); EXPECT_TRUE(upstream_request_->complete()); @@ -441,13 +445,13 @@ TEST_P(QuicHttpIntegrationTest, StopAcceptingConnectionsWhenOverloaded) { test_server_->waitForGaugeEq("overload.envoy.overload_actions.stop_accepting_requests.active", 1); // Existing request should be able to finish. upstream_request_->encodeData(10, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); // New request should be rejected. auto response2 = codec_client_->makeHeaderOnlyRequest(default_request_headers_); - response2->waitForEndStream(); + ASSERT_TRUE(response2->waitForEndStream()); EXPECT_EQ("503", response2->headers().getStatusValue()); EXPECT_EQ("envoy overloaded", response2->body()); codec_client_->close(); @@ -466,7 +470,7 @@ TEST_P(QuicHttpIntegrationTest, NoNewStreamsWhenOverloaded) { auto response = codec_client_->makeHeaderOnlyRequest(default_request_headers_); waitForNextUpstreamRequest(0); upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); auto response2 = codec_client_->makeHeaderOnlyRequest(default_request_headers_); waitForNextUpstreamRequest(0); @@ -585,7 +589,7 @@ TEST_P(QuicHttpIntegrationTest, MultipleSetCookieAndCookieHeaders) { {"set-cookie", "foo"}, {"set-cookie", "bar"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); const auto out = response->headers().get(Http::LowerCaseString("set-cookie")); ASSERT_EQ(out.size(), 2); diff --git a/test/integration/redirect_integration_test.cc b/test/integration/redirect_integration_test.cc index d837d2e2b2f11..c0224f3077d17 100644 --- a/test/integration/redirect_integration_test.cc +++ b/test/integration/redirect_integration_test.cc @@ -157,7 +157,7 @@ TEST_P(RedirectIntegrationTest, BasicInternalRedirect) { upstream_request_->encodeHeaders(default_response_headers_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_EQ(1, test_server_->counter("cluster.cluster_0.upstream_internal_redirect_succeeded_total") @@ -201,7 +201,7 @@ TEST_P(RedirectIntegrationTest, InternalRedirectWithThreeHopLimit) { upstream_requests.back()->encodeHeaders(redirect_response_, true); } - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("302", response->headers().getStatusValue()); EXPECT_EQ( @@ -258,7 +258,7 @@ TEST_P(RedirectIntegrationTest, InternalRedirectToDestinationWithBody) { upstream_request_->encodeHeaders(response_with_big_body, false); upstream_request_->encodeData(2000000, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); EXPECT_EQ(1, test_server_->counter("cluster.cluster_0.upstream_internal_redirect_succeeded_total") @@ -314,7 +314,7 @@ TEST_P(RedirectIntegrationTest, InternalRedirectPreventedByPreviousRoutesPredica redirect_response_.setLocation("http://handle.internal.redirect.max.three.hop/yet/another/path"); third_request->encodeHeaders(redirect_response_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("302", response->headers().getStatusValue()); EXPECT_EQ("http://handle.internal.redirect.max.three.hop/yet/another/path", @@ -382,7 +382,7 @@ TEST_P(RedirectIntegrationTest, InternalRedirectPreventedByAllowListedRoutesPred redirect_response_.setLocation("http://handle.internal.redirect/yet/another/path"); third_request->encodeHeaders(redirect_response_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("302", response->headers().getStatusValue()); EXPECT_EQ("http://handle.internal.redirect/yet/another/path", @@ -452,7 +452,7 @@ TEST_P(RedirectIntegrationTest, InternalRedirectPreventedBySafeCrossSchemePredic redirect_response_.setLocation("https://handle.internal.redirect/yet/another/path"); third_request->encodeHeaders(redirect_response_, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); ASSERT_TRUE(response->complete()); EXPECT_EQ("302", response->headers().getStatusValue()); EXPECT_EQ("https://handle.internal.redirect/yet/another/path", diff --git a/test/integration/scoped_rds_integration_test.cc b/test/integration/scoped_rds_integration_test.cc index 16ff26f17a437..783b9e0468597 100644 --- a/test/integration/scoped_rds_integration_test.cc +++ b/test/integration/scoped_rds_integration_test.cc @@ -301,7 +301,7 @@ route_configuration_name: {} {":authority", "host"}, {":scheme", "http"}, {"Addr", "x-foo-key=xyz-route"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); verifyResponse(std::move(response), "404", Http::TestResponseHeaderMapImpl{}, ""); cleanupUpstreamAndDownstream(); @@ -372,7 +372,7 @@ route_configuration_name: {} {":authority", "host"}, {":scheme", "http"}, {"Addr", "x-foo-key=foo-route"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); verifyResponse(std::move(response), "404", Http::TestResponseHeaderMapImpl{}, ""); cleanupUpstreamAndDownstream(); // Add a new scope foo_scope4. @@ -387,7 +387,7 @@ route_configuration_name: {} {":authority", "host"}, {":scheme", "http"}, {"Addr", "x-foo-key=xyz-route"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); // Get 404 because RDS hasn't pushed route configuration "foo_route4" yet. // But scope is found and the Router::NullConfigImpl is returned. verifyResponse(std::move(response), "404", Http::TestResponseHeaderMapImpl{}, ""); @@ -433,7 +433,7 @@ route_configuration_name: foo_route1 {":authority", "host"}, {":scheme", "http"}, {"Addr", "x-foo-key=foo"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); verifyResponse(std::move(response), "404", Http::TestResponseHeaderMapImpl{}, ""); cleanupUpstreamAndDownstream(); @@ -608,7 +608,7 @@ route_configuration_name: {} {":authority", "host"}, {":scheme", "http"}, {"Addr", "x-foo-key=bar"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); verifyResponse(std::move(response), "404", Http::TestResponseHeaderMapImpl{}, ""); cleanupUpstreamAndDownstream(); } @@ -658,7 +658,7 @@ route_configuration_name: {} {":authority", "host"}, {":scheme", "http"}, {"Addr", "x-foo-key=foo"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); verifyResponse(std::move(response), "404", Http::TestResponseHeaderMapImpl{}, ""); cleanupUpstreamAndDownstream(); } @@ -714,7 +714,7 @@ on_demand: true {":authority", "host"}, {":scheme", "http"}, {"Addr", "x-foo-key=bar"}}); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); verifyResponse(std::move(response), "404", Http::TestResponseHeaderMapImpl{}, ""); cleanupUpstreamAndDownstream(); } diff --git a/test/integration/tcp_tunneling_integration_test.cc b/test/integration/tcp_tunneling_integration_test.cc index c0e4ba1454194..bf97b2c482c26 100644 --- a/test/integration/tcp_tunneling_integration_test.cc +++ b/test/integration/tcp_tunneling_integration_test.cc @@ -91,7 +91,7 @@ TEST_P(ConnectTerminationIntegrationTest, Basic) { // Now send a FIN from upstream. This should result in clean shutdown downstream. ASSERT_TRUE(fake_raw_upstream_connection_->close()); - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); ASSERT_FALSE(response_->reset()); } @@ -114,7 +114,7 @@ TEST_P(ConnectTerminationIntegrationTest, BasicAllowPost) { // Now send a FIN from upstream. This should result in clean shutdown downstream. ASSERT_TRUE(fake_raw_upstream_connection_->close()); - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); ASSERT_FALSE(response_->reset()); } @@ -135,7 +135,7 @@ TEST_P(ConnectTerminationIntegrationTest, UsingHostMatch) { // Now send a FIN from upstream. This should result in clean shutdown downstream. ASSERT_TRUE(fake_raw_upstream_connection_->close()); - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); ASSERT_FALSE(response_->reset()); } @@ -205,7 +205,7 @@ TEST_P(ConnectTerminationIntegrationTest, BuggyHeaders) { // Either with early close, or half close, the FIN from upstream should result // in clean stream teardown. - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); ASSERT_FALSE(response_->reset()); } diff --git a/test/integration/transport_socket_match_integration_test.cc b/test/integration/transport_socket_match_integration_test.cc index c5d051e738544..ddef54c3a1704 100644 --- a/test/integration/transport_socket_match_integration_test.cc +++ b/test/integration/transport_socket_match_integration_test.cc @@ -158,10 +158,10 @@ TEST_F(TransportSockeMatchIntegrationTest, TlsAndPlaintextSucceed) { for (int i = 0; i < 3; i++) { IntegrationStreamDecoderPtr response = codec_client_->makeHeaderOnlyRequest(type_a_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); response = codec_client_->makeHeaderOnlyRequest(type_b_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); } } @@ -173,10 +173,10 @@ TEST_F(TransportSockeMatchIntegrationTest, TlsAndPlaintextFailsWithoutSocketMatc for (int i = 0; i < 3; i++) { IntegrationStreamDecoderPtr response = codec_client_->makeHeaderOnlyRequest(type_a_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("503", response->headers().getStatusValue()); response = codec_client_->makeHeaderOnlyRequest(type_b_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_EQ("200", response->headers().getStatusValue()); } } diff --git a/test/integration/uds_integration_test.cc b/test/integration/uds_integration_test.cc index 0df38c66564e3..b6cef5449b525 100644 --- a/test/integration/uds_integration_test.cc +++ b/test/integration/uds_integration_test.cc @@ -136,7 +136,7 @@ TEST_P(UdsListenerIntegrationTest, TestPeerCredentials) { upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); } TEST_P(UdsListenerIntegrationTest, RouterRequestAndResponseWithBodyNoBuffer) { diff --git a/test/integration/websocket_integration_test.cc b/test/integration/websocket_integration_test.cc index d07a4aa76bfd6..5e67c7a5c772b 100644 --- a/test/integration/websocket_integration_test.cc +++ b/test/integration/websocket_integration_test.cc @@ -369,7 +369,7 @@ TEST_P(WebsocketIntegrationTest, WebsocketCustomFilterChain) { auto encoder_decoder = codec_client_->startRequest(upgradeRequestHeaders("websocket")); response_ = std::move(encoder_decoder.second); codec_client_->sendData(encoder_decoder.first, large_req_str, false); - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); EXPECT_EQ("413", response_->headers().getStatusValue()); waitForClientDisconnectOrReset(); codec_client_->close(); @@ -386,7 +386,7 @@ TEST_P(WebsocketIntegrationTest, WebsocketCustomFilterChain) { auto encoder_decoder = codec_client_->startRequest(request_headers); response_ = std::move(encoder_decoder.second); codec_client_->sendData(encoder_decoder.first, large_req_str, false); - response_->waitForEndStream(); + ASSERT_TRUE(response_->waitForEndStream()); EXPECT_EQ("413", response_->headers().getStatusValue()); waitForClientDisconnectOrReset(); codec_client_->close(); diff --git a/test/integration/xds_integration_test.cc b/test/integration/xds_integration_test.cc index ecd01d1d7da73..1e95474dd945e 100644 --- a/test/integration/xds_integration_test.cc +++ b/test/integration/xds_integration_test.cc @@ -359,7 +359,7 @@ class LdsInplaceUpdateHttpIntegrationTest IntegrationStreamDecoderPtr response = codec_client.makeHeaderOnlyRequest(default_request_headers_); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(response->complete()); EXPECT_EQ("200", response->headers().getStatusValue()); if (expect_close) { diff --git a/test/integration/xfcc_integration_test.cc b/test/integration/xfcc_integration_test.cc index 7fa5dee966964..0df12253e728c 100644 --- a/test/integration/xfcc_integration_test.cc +++ b/test/integration/xfcc_integration_test.cc @@ -180,7 +180,7 @@ void XfccIntegrationTest::testRequestAndResponseWithXfccHeader(std::string previ EXPECT_EQ(expected_xfcc, upstream_request_->headers().getForwardedClientCertValue()); } upstream_request_->encodeHeaders(Http::TestResponseHeaderMapImpl{{":status", "200"}}, true); - response->waitForEndStream(); + ASSERT_TRUE(response->waitForEndStream()); EXPECT_TRUE(upstream_request_->complete()); EXPECT_TRUE(response->complete()); }