summaryrefslogtreecommitdiff
path: root/tests/middle.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/middle.c')
-rw-r--r--tests/middle.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/middle.c b/tests/middle.c
new file mode 100644
index 0000000..5d9360a
--- /dev/null
+++ b/tests/middle.c
@@ -0,0 +1,25 @@
+/*
+ * Test at the boundary between small and large objects.
+ * Inspired by a test case from Zoltan Varga.
+ */
+#include <gc.h>
+#include <stdio.h>
+
+int main ()
+{
+ int i;
+
+ GC_all_interior_pointers = 0;
+
+ for (i = 0; i < 20000; ++i) {
+ GC_malloc_atomic (4096);
+ GC_malloc (4096);
+ }
+ for (i = 0; i < 20000; ++i) {
+ GC_malloc_atomic (2048);
+ GC_malloc (2048);
+ }
+ printf("Final heap size is %ld\n", GC_get_heap_size());
+ return 0;
+}
+