fix the memory leak bug in the unit test module(abts)

This commit is contained in:
Sukchan Lee 2017-02-12 19:26:11 +09:00
parent 084c256bbe
commit aa31d54b2f
3 changed files with 37 additions and 15 deletions

View File

@ -6,8 +6,8 @@
#include "core_debug.h"
#include "core_pool.h"
#define MAX_NUM_OF_CLBUF 32
#define MAX_NUM_OF_PKBUF 32
#define MAX_NUM_OF_CLBUF 64
#define MAX_NUM_OF_PKBUF 64
pool_declare(clbuf_pool, clbuf_t, MAX_NUM_OF_CLBUF);
pool_declare(pkbuf_pool, pkbuf_t, MAX_NUM_OF_PKBUF);
@ -22,7 +22,7 @@ pool_declare(pkbuf_pool, pkbuf_t, MAX_NUM_OF_PKBUF);
#define SIZEOF_CLUSTER_2048 CORE_ALIGN(2048+MAX_SIZEOF_HEADROOM, BOUNDARY)
#define SIZEOF_CLUSTER_8192 CORE_ALIGN(8192+MAX_SIZEOF_HEADROOM, BOUNDARY)
#define MAX_NUM_OF_CLUSTER_128 32
#define MAX_NUM_OF_CLUSTER_128 64
#define MAX_NUM_OF_CLUSTER_256 32
#define MAX_NUM_OF_CLUSTER_512 32
#define MAX_NUM_OF_CLUSTER_1024 32

View File

@ -17,6 +17,7 @@
#include "abts.h"
#include "abts_tests.h"
#include "testutil.h"
#include "core_pkbuf.h"
#define ABTS_STAT_SIZE 6
static char status[ABTS_STAT_SIZE] = {'|', '/', '-', '|', '\\', '-'};
@ -99,7 +100,7 @@ abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full)
end_suite(suite);
}
subsuite = malloc(sizeof(*subsuite));
subsuite = core_malloc(sizeof(*subsuite));
subsuite->num_test = 0;
subsuite->failed = 0;
subsuite->next = NULL;
@ -113,7 +114,7 @@ abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full)
}
p = strrchr(suite_name, '.');
if (p) {
subsuite->name = memcpy(calloc(p - suite_name + 1, 1),
subsuite->name = memcpy(core_calloc(p - suite_name + 1, 1),
suite_name, p - suite_name);
}
else {
@ -127,7 +128,7 @@ abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full)
subsuite->not_run = 0;
if (suite == NULL) {
suite = malloc(sizeof(*suite));
suite = core_malloc(sizeof(*suite));
suite->head = subsuite;
suite->tail = subsuite;
}
@ -208,6 +209,22 @@ static int report(abts_suite *suite)
return 1;
}
static void abts_free(abts_suite *suite)
{
sub_suite *ptr = NULL, *next_ptr = NULL;
ptr = suite->head;
while (ptr != NULL) {
next_ptr = ptr->next;
core_free((void*)ptr->name);
core_free(ptr);
ptr = next_ptr;
}
core_free(suite);
}
void abts_log_message(const char *fmt, ...)
{
va_list args;
@ -442,7 +459,7 @@ int main(int argc, const char *const argv[]) {
/* Waste a little space here, because it is easier than counting the
* number of tests listed. Besides it is at most three char *.
*/
testlist = calloc(argc + 1, sizeof(char *));
testlist = core_calloc(argc + 1, sizeof(char *));
for (i = 1; i < argc; i++) {
testlist[i - 1] = argv[i];
}
@ -453,6 +470,10 @@ int main(int argc, const char *const argv[]) {
}
rv = report(suite);
abts_free(suite);
core_free(testlist);
return rv;
}

View File

@ -17,6 +17,7 @@
#include "abts.h"
#include "abts_tests.h"
#include "testutil.h"
#include "core_pkbuf.h"
#define ABTS_STAT_SIZE 6
static char status[ABTS_STAT_SIZE] = {'|', '/', '-', '|', '\\', '-'};
@ -99,7 +100,7 @@ abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full)
end_suite(suite);
}
subsuite = malloc(sizeof(*subsuite));
subsuite = core_malloc(sizeof(*subsuite));
subsuite->num_test = 0;
subsuite->failed = 0;
subsuite->next = NULL;
@ -113,7 +114,7 @@ abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full)
}
p = strrchr(suite_name, '.');
if (p) {
subsuite->name = memcpy(calloc(p - suite_name + 1, 1),
subsuite->name = memcpy(core_calloc(p - suite_name + 1, 1),
suite_name, p - suite_name);
}
else {
@ -127,7 +128,7 @@ abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full)
subsuite->not_run = 0;
if (suite == NULL) {
suite = malloc(sizeof(*suite));
suite = core_malloc(sizeof(*suite));
suite->head = subsuite;
suite->tail = subsuite;
}
@ -216,12 +217,12 @@ static void abts_free(abts_suite *suite)
while (ptr != NULL) {
next_ptr = ptr->next;
free((void*)ptr->name);
free(ptr);
core_free((void*)ptr->name);
core_free(ptr);
ptr = next_ptr;
}
free(suite);
core_free(suite);
}
void abts_log_message(const char *fmt, ...)
@ -458,7 +459,7 @@ int main(int argc, const char *const argv[]) {
/* Waste a little space here, because it is easier than counting the
* number of tests listed. Besides it is at most three char *.
*/
testlist = calloc(argc + 1, sizeof(char *));
testlist = core_calloc(argc + 1, sizeof(char *));
for (i = 1; i < argc; i++) {
testlist[i - 1] = argv[i];
}
@ -472,7 +473,7 @@ int main(int argc, const char *const argv[]) {
abts_free(suite);
free(testlist);
core_free(testlist);
return rv;
}