diff --git a/test/common/stats/stat_test_utility.h b/test/common/stats/stat_test_utility.h index a57958da7c629..95268bbc61328 100644 --- a/test/common/stats/stat_test_utility.h +++ b/test/common/stats/stat_test_utility.h @@ -156,9 +156,14 @@ class TestStore : public IsolatedStoreImpl { class SymbolTableCreatorTestPeer { public: - static void setUseFakeSymbolTables(bool use_fakes) { + ~SymbolTableCreatorTestPeer() { SymbolTableCreator::setUseFakeSymbolTables(save_use_fakes_); } + + void setUseFakeSymbolTables(bool use_fakes) { SymbolTableCreator::setUseFakeSymbolTables(use_fakes); } + +private: + const bool save_use_fakes_{SymbolTableCreator::useFakeSymbolTables()}; }; // Serializes a number into a uint8_t array, and check that it de-serializes to diff --git a/test/common/stats/stat_test_utility_test.cc b/test/common/stats/stat_test_utility_test.cc index 4c89c6fc1a55e..a395adff88474 100644 --- a/test/common/stats/stat_test_utility_test.cc +++ b/test/common/stats/stat_test_utility_test.cc @@ -11,9 +11,12 @@ namespace { class StatTestUtilityTest : public testing::Test { protected: StatTestUtilityTest() - : symbol_table_(SymbolTableCreator::initAndMakeSymbolTable(false)), - test_store_(*symbol_table_), dynamic_(*symbol_table_), symbolic_(*symbol_table_) {} + : symbol_table_(SymbolTableCreator::makeSymbolTable()), test_store_(*symbol_table_), + dynamic_(*symbol_table_), symbolic_(*symbol_table_) { + symbol_table_creator_test_peer_.setUseFakeSymbolTables(false); + } + TestUtil::SymbolTableCreatorTestPeer symbol_table_creator_test_peer_; SymbolTablePtr symbol_table_; TestUtil::TestStore test_store_; StatNameDynamicPool dynamic_; diff --git a/test/common/stats/thread_local_store_test.cc b/test/common/stats/thread_local_store_test.cc index a834411994a60..bf4cea82fe6d8 100644 --- a/test/common/stats/thread_local_store_test.cc +++ b/test/common/stats/thread_local_store_test.cc @@ -908,10 +908,7 @@ TEST_F(StatsThreadLocalStoreTest, NonHotRestartNoTruncation) { class StatsThreadLocalStoreTestNoFixture : public testing::Test { protected: - StatsThreadLocalStoreTestNoFixture() - : save_use_fakes_(SymbolTableCreator::useFakeSymbolTables()) {} ~StatsThreadLocalStoreTestNoFixture() override { - TestUtil::SymbolTableCreatorTestPeer::setUseFakeSymbolTables(save_use_fakes_); if (threading_enabled_) { store_->shutdownThreading(); tls_.shutdownThread(); @@ -919,7 +916,7 @@ class StatsThreadLocalStoreTestNoFixture : public testing::Test { } void init(bool use_fakes) { - TestUtil::SymbolTableCreatorTestPeer::setUseFakeSymbolTables(use_fakes); + symbol_table_creator_test_peer_.setUseFakeSymbolTables(use_fakes); symbol_table_ = SymbolTableCreator::makeSymbolTable(); alloc_ = std::make_unique(*symbol_table_); store_ = std::make_unique(*alloc_); @@ -943,7 +940,7 @@ class StatsThreadLocalStoreTestNoFixture : public testing::Test { std::unique_ptr store_; NiceMock main_thread_dispatcher_; NiceMock tls_; - const bool save_use_fakes_; + TestUtil::SymbolTableCreatorTestPeer symbol_table_creator_test_peer_; bool threading_enabled_{false}; }; diff --git a/test/integration/integration_admin_test.cc b/test/integration/integration_admin_test.cc index 50ad6b4df639a..d0076c27ef0d0 100644 --- a/test/integration/integration_admin_test.cc +++ b/test/integration/integration_admin_test.cc @@ -117,7 +117,8 @@ std::string ContentType(const BufferingStreamDecoderPtr& response) { } // namespace TEST_P(IntegrationAdminTest, Admin) { - Stats::TestUtil::SymbolTableCreatorTestPeer::setUseFakeSymbolTables(false); + Stats::TestUtil::SymbolTableCreatorTestPeer symbol_table_creator_test_peer; + symbol_table_creator_test_peer.setUseFakeSymbolTables(false); initialize(); BufferingStreamDecoderPtr response; diff --git a/test/integration/stats_integration_test.cc b/test/integration/stats_integration_test.cc index 73196d247652c..947941fe99e75 100644 --- a/test/integration/stats_integration_test.cc +++ b/test/integration/stats_integration_test.cc @@ -206,13 +206,7 @@ class ClusterMemoryTestHelper : public BaseIntegrationTest { }; class ClusterMemoryTestRunner : public testing::TestWithParam { protected: - ClusterMemoryTestRunner() : save_use_fakes_(Stats::SymbolTableCreator::useFakeSymbolTables()) {} - ~ClusterMemoryTestRunner() override { - Stats::TestUtil::SymbolTableCreatorTestPeer::setUseFakeSymbolTables(save_use_fakes_); - } - -private: - const bool save_use_fakes_; + Stats::TestUtil::SymbolTableCreatorTestPeer symbol_table_creator_test_peer_; }; INSTANTIATE_TEST_SUITE_P(IpVersions, ClusterMemoryTestRunner, @@ -220,7 +214,7 @@ INSTANTIATE_TEST_SUITE_P(IpVersions, ClusterMemoryTestRunner, TestUtility::ipTestParamsToString); TEST_P(ClusterMemoryTestRunner, MemoryLargeClusterSizeWithFakeSymbolTable) { - Stats::TestUtil::SymbolTableCreatorTestPeer::setUseFakeSymbolTables(true); + symbol_table_creator_test_peer_.setUseFakeSymbolTables(true); // A unique instance of ClusterMemoryTest allows for multiple runs of Envoy with // differing configuration. This is necessary for measuring the memory consumption @@ -291,7 +285,7 @@ TEST_P(ClusterMemoryTestRunner, MemoryLargeClusterSizeWithFakeSymbolTable) { } TEST_P(ClusterMemoryTestRunner, MemoryLargeClusterSizeWithRealSymbolTable) { - Stats::TestUtil::SymbolTableCreatorTestPeer::setUseFakeSymbolTables(false); + symbol_table_creator_test_peer_.setUseFakeSymbolTables(false); // A unique instance of ClusterMemoryTest allows for multiple runs of Envoy with // differing configuration. This is necessary for measuring the memory consumption @@ -345,7 +339,7 @@ TEST_P(ClusterMemoryTestRunner, MemoryLargeClusterSizeWithRealSymbolTable) { } TEST_P(ClusterMemoryTestRunner, MemoryLargeHostSizeWithStats) { - Stats::TestUtil::SymbolTableCreatorTestPeer::setUseFakeSymbolTables(false); + symbol_table_creator_test_peer_.setUseFakeSymbolTables(false); // A unique instance of ClusterMemoryTest allows for multiple runs of Envoy with // differing configuration. This is necessary for measuring the memory consumption diff --git a/test/server/http/admin_test.cc b/test/server/http/admin_test.cc index 2835fd8ae102c..a70dab0c3b42f 100644 --- a/test/server/http/admin_test.cc +++ b/test/server/http/admin_test.cc @@ -1654,6 +1654,9 @@ class PrometheusStatsFormatterTest : public testing::Test { void clearStorage() { pool_.clear(); + counters_.clear(); + gauges_.clear(); + histograms_.clear(); EXPECT_EQ(0, symbol_table_->numSymbols()); } diff --git a/test/server/server_test.cc b/test/server/server_test.cc index 7435b6037de7c..03b38035d68ea 100644 --- a/test/server/server_test.cc +++ b/test/server/server_test.cc @@ -469,8 +469,11 @@ TEST_P(ServerInstanceImplTest, Stats) { class TestWithSimTimeAndRealSymbolTables : public Event::TestUsingSimulatedTime { protected: TestWithSimTimeAndRealSymbolTables() { - Stats::TestUtil::SymbolTableCreatorTestPeer::setUseFakeSymbolTables(false); + symbol_table_creator_test_peer_.setUseFakeSymbolTables(false); } + +private: + Stats::TestUtil::SymbolTableCreatorTestPeer symbol_table_creator_test_peer_; }; class ServerStatsTest