aboutsummaryrefslogtreecommitdiffstats
path: root/Source/testing/leak_detective_test.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2006-04-13 13:24:45 +0000
committerMartin Willi <martin@strongswan.org>2006-04-13 13:24:45 +0000
commit9d7597bb120e5e889f19038271f65455cda090f5 (patch)
tree19f73de2f1b3f3ddfede075f9d43bb44ef022fd5 /Source/testing/leak_detective_test.c
parent2cb7d3cab2b23f50bb406c99b8193a62ce4b8c00 (diff)
downloadstrongswan-9d7597bb120e5e889f19038271f65455cda090f5.tar.bz2
strongswan-9d7597bb120e5e889f19038271f65455cda090f5.tar.xz
- leak detective is usable, but does not show static function names
- a script which gets address via ldd and resolves address via addr2line would be nice - fixed a leak in child_sa with new detective ;-)
Diffstat (limited to 'Source/testing/leak_detective_test.c')
-rw-r--r--Source/testing/leak_detective_test.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/Source/testing/leak_detective_test.c b/Source/testing/leak_detective_test.c
index 193b81803..8d71d9f0f 100644
--- a/Source/testing/leak_detective_test.c
+++ b/Source/testing/leak_detective_test.c
@@ -23,21 +23,33 @@
#include "leak_detective_test.h"
+void *mem_a, *mem_b, *mem_c;
+
void a()
{
- malloc(4);
+ mem_a = malloc(4);
}
void b()
{
a();
- malloc(5);
+ mem_b = malloc(5);
}
void c()
{
b();
- malloc(6);
+ mem_c = malloc(6);
+}
+
+void recursive(int depth)
+{
+ void *tiny = malloc(1);
+ if (--depth > 0)
+ {
+ recursive(depth);
+ }
+ free(tiny);
}
@@ -59,5 +71,9 @@ void test_leak_detective(protected_tester_t *tester)
free(m3);
free(m1);
- //c();
+ c();
+ free(mem_a);
+ free(mem_c);
+ free(mem_b);
+ recursive(10000);
}