From c661951eb9d4ee8243bc3856730077c8c435219d Mon Sep 17 00:00:00 2001 From: Gabriel Hare Date: Thu, 31 Jul 2014 15:24:40 -0700 Subject: [PATCH] Modifying test to show allocation in pool and deallocation after destruction of pool. PROBLEM: Preallocate currently fails due to using maximum integer value as default allocation size. --- src/autowiring/test/ObjectPoolTest.cpp | 32 ++++++++++++++++++-------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/autowiring/test/ObjectPoolTest.cpp b/src/autowiring/test/ObjectPoolTest.cpp index 2861eef99..2f71ded47 100644 --- a/src/autowiring/test/ObjectPoolTest.cpp +++ b/src/autowiring/test/ObjectPoolTest.cpp @@ -73,36 +73,50 @@ class LifeCycle { }; TEST_F(ObjectPoolTest, LifeCycleTestLimitOne) { - std::shared_ptr> pool(LifeCycle::NewObjectPool(~1, ~1)); - std::shared_ptr obj; + std::shared_ptr> pool(LifeCycle::NewObjectPool(2, 2)); + std::shared_ptr objHold, objDrop; - // Create & Issue + // Create in Pool try { - (*pool)(obj); + pool->Preallocate(1); } catch (std::runtime_error e) { FAIL() << e.what(); } - // Return to Pool + // Issue from Pool try { - obj.reset(); + (*pool)(objHold); } catch (std::runtime_error e) { FAIL() << e.what(); } - // Issue from Pool + // Issue from Pool with implicit Creation of objDrop + try { + (*pool)(objDrop); + } catch (std::runtime_error e) { + FAIL() << e.what(); + } + + // Return to Pool try { - (*pool)(obj); + objDrop.reset(); } catch (std::runtime_error e) { FAIL() << e.what(); } - // Return & Destroy + // Destroy Pool with implicit Destruction of objDrop try { pool.reset(); } catch (std::runtime_error e) { FAIL() << e.what(); } + + // Return to Pool redirected to Destruction of objHold + try { + objHold.reset(); + } catch (std::runtime_error e) { + FAIL() << e.what(); + } } TEST_F(ObjectPoolTest, VerifyAsynchronousUsage) {