From 766813f164be580e6edb74f30ca8ec504bd634f8 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Thu, 30 May 2024 14:21:22 -0700 Subject: [PATCH] [arena] Add a test for FinalizeArena being called (#36772) Built on #36758 which should be merged first Closes #36772 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36772 from ctiller:arena-test 3cded84c73580fd227fce9f1a4109ce2956e7bbb PiperOrigin-RevId: 638781890 --- test/core/resource_quota/arena_test.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/core/resource_quota/arena_test.cc b/test/core/resource_quota/arena_test.cc index 27ea809eddc..cd3d3f55f8d 100644 --- a/test/core/resource_quota/arena_test.cc +++ b/test/core/resource_quota/arena_test.cc @@ -29,6 +29,7 @@ #include #include "absl/strings/str_join.h" +#include "gmock/gmock.h" #include "gtest/gtest.h" #include @@ -40,6 +41,8 @@ #include "src/core/lib/resource_quota/resource_quota.h" #include "test/core/test_util/test_config.h" +using testing::StrictMock; + namespace grpc_core { struct AllocShape { @@ -271,6 +274,23 @@ TEST(ArenaTest, ConcurrentMakePooled) { } } +class MockArenaFactory : public ArenaFactory { + public: + MockArenaFactory() + : ArenaFactory( + ResourceQuota::Default()->memory_quota()->CreateMemoryAllocator( + "test")) {} + MOCK_METHOD(RefCountedPtr, MakeArena, (), (override)); + MOCK_METHOD(void, FinalizeArena, (Arena * arena), (override)); +}; + +TEST(ArenaTest, FinalizeArenaIsCalled) { + auto factory = MakeRefCounted>(); + auto arena = Arena::Create(1, factory); + EXPECT_CALL(*factory, FinalizeArena(arena.get())); + arena.reset(); +} + } // namespace grpc_core int main(int argc, char* argv[]) {