summaryrefslogtreecommitdiff
path: root/boehm_gc/tests/leak_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'boehm_gc/tests/leak_test.c')
-rw-r--r--boehm_gc/tests/leak_test.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/boehm_gc/tests/leak_test.c b/boehm_gc/tests/leak_test.c
new file mode 100644
index 0000000..d6a60d4
--- /dev/null
+++ b/boehm_gc/tests/leak_test.c
@@ -0,0 +1,25 @@
+#include "leak_detector.h"
+
+main() {
+ int *p[10];
+ int i;
+ GC_find_leak = 1; /* for new collect versions not compiled */
+ /* with -DFIND_LEAK. */
+
+ GC_INIT(); /* Needed if thread-local allocation is enabled. */
+ /* FIXME: This is not ideal. */
+ for (i = 0; i < 10; ++i) {
+ p[i] = malloc(sizeof(int)+i);
+ }
+ CHECK_LEAKS();
+ for (i = 1; i < 10; ++i) {
+ free(p[i]);
+ }
+ for (i = 0; i < 9; ++i) {
+ p[i] = malloc(sizeof(int)+i);
+ }
+ CHECK_LEAKS();
+ CHECK_LEAKS();
+ CHECK_LEAKS();
+ return 0;
+}