aboutsummaryrefslogtreecommitdiff
path: root/tests/programs/growheap.zc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/programs/growheap.zc')
-rw-r--r--tests/programs/growheap.zc21
1 files changed, 12 insertions, 9 deletions
diff --git a/tests/programs/growheap.zc b/tests/programs/growheap.zc
index 07e10a6..ebb3f8b 100644
--- a/tests/programs/growheap.zc
+++ b/tests/programs/growheap.zc
@@ -1,10 +1,13 @@
+namespace;
+include rt;
+
// the heap grows past its initial size: eight live blocks of 300000 words
// don't fit in the 393216-word start, so the allocator takes more memory from
// the host, and a block bigger than the start fits once they are freed
let keep[8];
unchecked fn fill(n) {
let i = 0, a;
- while (i < n) { a = new(300000); a[0] = i + 1; a[299999] = (i + 1) * 3; keep[i] = a; i++; }
+ while (i < n) { a = rt.new(300000); a[0] = i + 1; a[299999] = (i + 1) * 3; keep[i] = a; i++; }
return 0;
}
unchecked fn total(n) {
@@ -14,19 +17,19 @@ unchecked fn total(n) {
}
unchecked fn drop(n) {
let i = 0;
- while (i < n) { free(keep[i]); keep[i] = 0; i++; }
+ while (i < n) { rt.free(keep[i]); keep[i] = 0; i++; }
return 0;
}
fn main() {
- let a, start = heap_size();
+ let a, start = rt.heap_size();
fill(8);
- put_n(total(8)); put_c(' ');
- put_n(heap_size() > start); put_c(' ');
+ rt.put_n(total(8)); rt.put_c(' ');
+ rt.put_n(rt.heap_size() > start); rt.put_c(' ');
drop(8);
- scrub(); gc();
- a = new(3000000);
+ rt.scrub(); rt.gc();
+ a = rt.new(3000000);
a[2999999] = 7;
- put_n(a[2999999]); put_c(' ');
- put_n(heap_size() >= 3000000); put_c(10);
+ rt.put_n(a[2999999]); rt.put_c(' ');
+ rt.put_n(rt.heap_size() >= 3000000); rt.put_c(10);
return 0;
}