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.nim23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/system/trealloc.nim b/tests/system/trealloc.nim
new file mode 100644
index 000000000..1d3e00aff
--- /dev/null
+++ b/tests/system/trealloc.nim
@@ -0,0 +1,23 @@
+discard """
+  output: '''success'''
+  joinable: false
+  disabled: "openbsd"
+"""
+
+# 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 .. 1000:
+  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"