Skip to content

Commit 205f49b

Browse files
committedDec 15, 2015
fix framework leaks
1 parent c641a0b commit 205f49b

File tree

12 files changed

+43
-8
lines changed

12 files changed

+43
-8
lines changed
 

‎testframework/v3/includes/mt.h

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ typedef struct s_mt
1414
} t_mt;
1515

1616
t_mt *mt_create(char *name);
17+
void mt_del(t_mt *mt);
1718
int mt_exec(t_mt *mt);
1819
size_t mt_count_failed_suites(t_mt *mt);
1920
size_t mt_count_tests(t_mt *mt);

‎testframework/v3/includes/suite.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ typedef struct s_suite
1515
{
1616
char *name;
1717
t_suite_fn *fn;
18-
t_mt_lst *tests;
18+
t_mt_lst *tests;
1919
int x_success_count;
2020
int x_warning_count;
2121
} t_suite;
2222

2323
t_suite *suite_create(char *name, t_suite_fn *fn);
24+
void suite_del(t_suite *suite);
2425
void suite_add_test(t_suite *suite, t_test *test);
2526
void suite_exec(t_mt_lst_elem *elem);
2627
size_t suite_count_failed_tests(t_suite *suite);

‎testframework/v3/includes/test.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@ typedef struct s_test
2424
} t_test;
2525

2626
t_test *test_create(char *name, t_test_fn *fn, int timeout);
27+
void test_del(t_test *test);
2728
void test_print(t_mt_lst_elem *elem);
2829
void test_exec(t_mt_lst_elem *elem);
2930
void test_assert(t_test *test, int is_fail);
3031
void test_assert_prep(t_test *test, char *cond, char *msg, int expected_signum);
3132
int test_filter_failed(t_test *test);
3233
char *test_get_failure_type(t_test *test);
3334

34-
#endif
35+
#endif

‎testframework/v3/srcs/mt/mt_create.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
t_mt *mt_create(char *name)
99
{
10-
t_mt *mt;
10+
t_mt *mt;
1111

1212
mt = (t_mt *)malloc(sizeof(t_mt));
1313
mt->name = name;

‎testframework/v3/srcs/mt/mt_del.c

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#include <mt.h>
2+
#include <fw.h>
3+
#include <string.h>
4+
#include <stdlib.h>
5+
#include <stdio.h>
6+
#include <mt_lst.h>
7+
8+
void mt_del(t_mt *mt)
9+
{
10+
mt_lst_del(mt->suites, suite_del);
11+
free(mt);
12+
}

‎testframework/v3/srcs/mt_lst/mt_lst_create_elem.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ t_mt_lst_elem *mt_lst_create_elem(void *data)
1717
{
1818
t_mt_lst_elem *elem;
1919

20-
elem = (t_mt_lst_elem *)malloc(sizeof(t_mt_lst_elem));
20+
elem = malloc(sizeof(t_mt_lst_elem));
2121
elem->data = data;
2222
elem->next = NULL;
2323
elem->prev = NULL;

‎testframework/v3/srcs/mt_lst/mt_lst_del.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@
1616
void mt_lst_del(t_mt_lst *lst, void (*delfn)(void *))
1717
{
1818
t_mt_lst_elem *elem;
19+
t_mt_lst_elem *next;
1920

2021
elem = lst->elems;
2122
while (elem)
2223
{
24+
next = elem->next;
2325
mt_lstelem_del(elem, delfn);
24-
elem = elem->next;
26+
elem = next;
2527
}
2628
free(lst);
2729
}

‎testframework/v3/srcs/mt_lst/mt_lstelem_del.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515

1616
void mt_lstelem_del(t_mt_lst_elem *elem, void (*delfn)())
1717
{
18-
delfn(elem->data);
18+
if (delfn)
19+
delfn(elem->data);
20+
(void)delfn;
1921
if (elem->key)
2022
free(elem->key);
2123
elem->data = NULL;

‎testframework/v3/srcs/suite/suite_create.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ t_suite *suite_create(char *name, t_suite_fn *fn)
44
{
55
t_suite *suite;
66

7-
suite = (t_suite *)malloc(sizeof(t_suite));
7+
suite = malloc(sizeof(t_suite));
88
suite->name = strdup(name);
99

1010
suite->tests = mt_lst_init();
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include <suite.h>
2+
3+
void suite_del(t_suite *suite)
4+
{
5+
mt_lst_del(suite->tests, test_del);
6+
free(suite->name);
7+
free(suite);
8+
}

‎testframework/v3/srcs/test/test_del.c

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include <test.h>
2+
#include <stdio.h>
3+
4+
void test_del(t_test *test)
5+
{
6+
free(test->name);
7+
free(test);
8+
}

‎testframework/v3_templates/Makefile_template.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ ifneq ("$(wildcard $(RENDU_PATH)/Makefile)","")
7272
endif
7373
make -k -C $(FRAMEWORK_PATH)
7474
gcc $(CC_FLAGS) $(CC_DEBUG) $(CC_INCLUDES) $(CC_DEFINES) $(CC_SOURCE) $(RENDU_SOURCE) -o $(NAME) $(CC_FRAMEWORK_LIB) $(CC_LIBS)
75-
./$(NAME)
75+
$(shell pwd)/$(NAME)
7676

7777
clean:
7878
rm -f $(OBJECTS)

0 commit comments

Comments
 (0)
Please sign in to comment.