summary refs log tree commit diff stats
path: root/tests/system/trealloc.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/system/trealloc.nim')
-rw-r--r--tests/system/trealloc.nim21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/system/trealloc.nim b/tests/system/trealloc.nim
new file mode 100644
index 000000000..dc5f712d6
--- /dev/null
+++ b/tests/system/trealloc.nim
@@ -0,0 +1,21 @@
+discard """
+  output: '''success'''
+"""
+
+# bug #4818
+
+# Test that this completes without OOM.
+
+const BUFFER_SIZE = 5000
+var buffer = cast[ptr uint16](alloc(BUFFER_SIZE))
+
+var total_size: int64 = 0
+for i in 0 .. 4000:
+    let size = BUFFER_SIZE * i
+    #echo "requesting ", size
+    total_size += size.int64
+    buffer = cast[ptr uint16](realloc(buffer, size))
+    #echo totalSize, " total: ", getTotalMem(), " occupied: ", getOccupiedMem(), " free: ", getFreeMem()
+
+dealloc(buffer)
+echo "success"