From b65e664aebb6bcc4470b917bd85e7c2291408860 Mon Sep 17 00:00:00 2001 From: saadiaelf Date: Tue, 28 Jan 2025 08:02:02 -0800 Subject: [PATCH] add cb max retries test Signed-off-by: saadiaelf --- .../clusters/aggregate/cluster_test.cc | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/test/extensions/clusters/aggregate/cluster_test.cc b/test/extensions/clusters/aggregate/cluster_test.cc index 6f1487ff86611..c3ded22b6eb5b 100644 --- a/test/extensions/clusters/aggregate/cluster_test.cc +++ b/test/extensions/clusters/aggregate/cluster_test.cc @@ -447,7 +447,49 @@ TEST_F(AggregateClusterTest, CircuitBreakerMaxRequestsTest) { assertResourceManagerStat(resource_manager.requests(), remaining_rq, rq_open, true, 0U, 1U, 0U); } -TEST_F(AggregateClusterTest, CircuitBreakerMaxRetriesTest) {} +TEST_F(AggregateClusterTest, CircuitBreakerMaxRetriesTest) { + const std::string yaml_config = R"EOF( + name: aggregate_cluster + connect_timeout: 0.25s + lb_policy: CLUSTER_PROVIDED + circuit_breakers: + thresholds: + - priority: DEFAULT + max_retries: 1 + track_remaining: true + cluster_type: + name: envoy.clusters.aggregate + typed_config: + "@type": type.googleapis.com/envoy.extensions.clusters.aggregate.v3.ClusterConfig + clusters: + - primary + - secondary +)EOF"; + + initialize(yaml_config); + + Upstream::ResourceManager& resource_manager = + cluster_->info()->resourceManager(Upstream::ResourcePriority::Default); + + Stats::Gauge& rq_retry_open = getCircuitBreakersStatByPriority("default", "rq_retry_open"); + Stats::Gauge& remaining_retries = + getCircuitBreakersStatByPriority("default", "remaining_retries"); + + EXPECT_EQ(1U, resource_manager.retries().max()); + + assertResourceManagerStat(resource_manager.retries(), remaining_retries, rq_retry_open, true, 0U, + 1U, 0U); + + resource_manager.retries().inc(); + + assertResourceManagerStat(resource_manager.retries(), remaining_retries, rq_retry_open, false, 1U, + 0U, 1U); + + resource_manager.retries().dec(); + + assertResourceManagerStat(resource_manager.retries(), remaining_retries, rq_retry_open, true, 0U, + 1U, 0U); +} TEST_F(AggregateClusterTest, CircuitBreakerMaxConnectionPoolsTest) {}