56 #include "unity_fixture.h"
58 #include "Mock_rkhtrc_record.h"
59 #include "Mock_rkhtrc_filter.h"
60 #include "Mock_rkhmempool.h"
61 #include "Mock_rkhassert.h"
70 static rui8_t *stoStart;
71 static rui16_t stoSize;
77 MockAssertCallback(
const char*
const file,
int line,
int cmock_num_calls)
83 MockMemPoolInitCallback(
RKH_MEMPOOL_T *mp,
void* sstart, rui16_t ssize,
92 Mock_rkhmempool_Init();
93 Mock_rkhassert_Init();
94 rkh_trc_isoff__IgnoreAndReturn(
RKH_FALSE);
96 rkh_assert_StubWithCallback(MockAssertCallback);
97 rkh_memPool_init_StubWithCallback(MockMemPoolInitCallback);
99 stoStart = (
void *)0xdeadbeaf;
104 TEST_TEAR_DOWN(evtpool)
106 Mock_rkhmempool_Verify();
107 Mock_rkhmempool_Destroy();
108 Mock_rkhassert_Verify();
109 Mock_rkhassert_Destroy();
118 TEST(evtpool, AfterInitAllEvtPoolAvailable)
125 rkh_memPool_init_Expect(0, stoStart, stoSize, (
RKH_MPBS_T)evtSize);
126 rkh_memPool_init_IgnoreArg_mp();
129 TEST_ASSERT_NOT_NULL(ep);
131 TEST_ASSERT_EQUAL(RKH_CFG_FWK_MAX_EVT_POOL, i);
134 TEST(evtpool, GetOneEvtPool)
138 rkh_memPool_init_Expect(0, stoStart, stoSize, (
RKH_MPBS_T)evtSize);
139 rkh_memPool_init_IgnoreArg_mp();
142 TEST_ASSERT_NOT_NULL(ep);
145 TEST(evtpool, GetMultipleEvtPool)
152 rkh_memPool_init_Expect(0, stoStart + (stoSize * i),
153 stoSize, (
RKH_MPBS_T)evtSize * (2 * (i + 1)));
154 rkh_memPool_init_IgnoreArg_mp();
156 evtSize * (2 * (i + 1)));
157 TEST_ASSERT_NOT_NULL(ep[i]);
160 TEST_ASSERT_TRUE((ep[0] != ep[1]) && (ep[0] != ep[2]));
161 TEST_ASSERT_TRUE(ep[1] != ep[2]);
164 TEST(evtpool, Fails_ExceedsMaxAvailableEvtPool)
171 rkh_memPool_init_Expect(0, stoStart, stoSize, (
RKH_MPBS_T)evtSize);
172 rkh_memPool_init_IgnoreArg_mp();
174 TEST_ASSERT_NOT_NULL(ep);
177 TEST_ASSERT_NULL(ep);
180 TEST(evtpool, GetBlockSize)
184 rkh_memPool_init_Expect(0, stoStart, stoSize, (
RKH_MPBS_T)evtSize);
185 rkh_memPool_init_IgnoreArg_mp();
191 TEST(evtpool, Fails_GetBlockSizeInvalidInstance)
193 rkh_assert_Expect(
"rkhfwk_evtpool", 0);
194 rkh_assert_IgnoreArg_line();
199 TEST(evtpool, GetBlock)
204 rkh_memPool_init_Expect(0, stoStart, stoSize, (
RKH_MPBS_T)evtSize);
205 rkh_memPool_init_IgnoreArg_mp();
206 rkh_memPool_get_ExpectAndReturn(0, (
void *)0xdead);
207 rkh_memPool_get_IgnoreArg_mp();
212 TEST_ASSERT_EQUAL_PTR((
RKH_EVT_T *)0xdead, evt);
215 TEST(evtpool, Fails_GetBlockInvalidInstance)
217 rkh_assert_Expect(
"rkhfwk_evtpool", 0);
218 rkh_assert_IgnoreArg_line();
223 TEST(evtpool, PutBlock)
228 rkh_memPool_init_Expect(0, stoStart, stoSize, (
RKH_MPBS_T)evtSize);
229 rkh_memPool_init_IgnoreArg_mp();
230 rkh_memPool_put_Expect(0, evt);
231 rkh_memPool_put_IgnoreArg_mp();
237 TEST(evtpool, Fails_PutBlockInvalidInstance)
241 rkh_assert_Expect(
"rkhfwk_evtpool", 0);
242 rkh_assert_IgnoreArg_line();
247 TEST(evtpool, GetNumUsed)
251 rkh_memPool_init_Expect(0, stoStart, stoSize, (
RKH_MPBS_T)evtSize);
252 rkh_memPool_init_IgnoreArg_mp();
258 TEST(evtpool, Fails_GetNumUsedInvalidInstance)
260 rkh_assert_Expect(
"rkhfwk_evtpool", 0);
261 rkh_assert_IgnoreArg_line();
266 TEST(evtpool, GetNumMin)
270 rkh_memPool_init_Expect(0, stoStart, stoSize, (
RKH_MPBS_T)evtSize);
271 rkh_memPool_init_IgnoreArg_mp();
277 TEST(evtpool, Fails_GetNumMinInvalidInstance)
279 rkh_assert_Expect(
"rkhfwk_evtpool", 0);
280 rkh_assert_IgnoreArg_line();
285 TEST(evtpool, GetNumBlock)
289 rkh_memPool_init_Expect(0, stoStart, stoSize, (
RKH_MPBS_T)evtSize);
290 rkh_memPool_init_IgnoreArg_mp();
296 TEST(evtpool, Fails_GetNumBlockInvalidInstance)
298 rkh_assert_Expect(
"rkhfwk_evtpool", 0);
299 rkh_assert_IgnoreArg_line();
rui8_t rkh_evtPool_getBlockSize(RKHEvtPool *const me)
Encapsulates how RKH should obtain the block size of an event pool.
Defines the data structure used to memory block pool facility.
Specifies the event pool interface.
Represents events without parameters.
#define RKH_FALSE
Standard define.
RKHEvtPool * rkh_evtPool_getPool(void *stoStart, rui16_t stoSize, RKH_ES_T evtSize)
Encapsulates the creation of an event pool.
void rkh_evtPool_put(RKHEvtPool *const me, RKH_EVT_T *evt)
Encapsulates how RKH should return an event evt to the event pool me.
RKH_EVT_T * rkh_evtPool_get(RKHEvtPool *const me)
Encapsulates how RKH should obtain an event evt from the event pool me.
rui8_t rkh_evtPool_getNumMin(RKHEvtPool *const me)
Encapsulates how RKH should return the lowest number of free blocks ever present in the pool me...
rui8_t rkh_evtPool_getNumUsed(RKHEvtPool *const me)
Encapsulates how RKH should return the current number of memory blocks used in the pool me...
void rkh_evtPool_init()
Encapsulates the initialization of event pool manager.
rui8_t rkh_evtPool_getNumBlock(RKHEvtPool *const me)
Encapsulates how RKH should return the total number of blocks in the pool me.
RKH_MPNB_T nblocks
Total number of blocks in bytes.
#define RKH_CFG_FWK_MAX_EVT_POOL
If the dynamic event support is enabled (see RKH_CFG_FWK_DYN_EVT_EN) then the RKH_CFG_FWK_MAX_EVT_POO...