Make sure CMock releases its dynamically allocated memory at the end of the entire suite.

This commit is contained in:
Mark VanderVoord
2014-05-21 19:23:18 -04:00
parent e835ad9c9d
commit efcd13d3aa
4 changed files with 22 additions and 3 deletions
+18 -2
View File
@@ -78,7 +78,7 @@ CMOCK_MEM_INDEX_TYPE CMock_Guts_MemChain(CMOCK_MEM_INDEX_TYPE root_index, CMOCK_
{
return CMOCK_GUTS_NONE;
}
root = (void*)(&CMock_Guts_Buffer[root_index]);
obj = (void*)(&CMock_Guts_Buffer[obj_index]);
@@ -125,7 +125,7 @@ CMOCK_MEM_INDEX_TYPE CMock_Guts_MemEndOfChain(CMOCK_MEM_INDEX_TYPE root_index)
{
CMOCK_MEM_INDEX_TYPE index = root_index;
CMOCK_MEM_INDEX_TYPE next_index;
for (next_index = root_index;
next_index != CMOCK_GUTS_NONE;
next_index = CMock_Guts_MemNext(index))
@@ -174,3 +174,19 @@ void CMock_Guts_MemFreeAll(void)
{
CMock_Guts_FreePtr = CMOCK_MEM_ALIGN_SIZE; //skip the very beginning
}
//-------------------------------------------------------
// CMock_Guts_MemFreeFinal
//-------------------------------------------------------
void CMock_Guts_MemFreeFinal(void)
{
CMock_Guts_FreePtr = CMOCK_MEM_ALIGN_SIZE;
#ifdef CMOCK_MEM_DYNAMIC
if (CMock_Guts_Buffer)
{
free(CMock_Guts_Buffer);
CMock_Guts_Buffer = NULL;
}
#endif
}
+1
View File
@@ -31,5 +31,6 @@ void* CMock_Guts_GetAddressFor(CMOCK_MEM_INDEX_TYPE index);
CMOCK_MEM_INDEX_TYPE CMock_Guts_MemBytesFree(void);
CMOCK_MEM_INDEX_TYPE CMock_Guts_MemBytesUsed(void);
void CMock_Guts_MemFreeAll(void);
void CMock_Guts_MemFreeFinal(void);
#endif //CMOCK_FRAMEWORK
+2
View File
@@ -5,6 +5,7 @@
========================================== */
#include "unity.h"
#include "cmock.h"
#include <setjmp.h>
#include <stdio.h>
@@ -31,5 +32,6 @@ int main(void)
RUN_TEST(test_ThatWeCanAskForAllSortsOfSizes, 152);
UnityEnd();
CMock_Guts_MemFreeFinal();
return 0;
}
+1 -1