summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2016-12-18 23:11:53 +0100
committerAraq <rumpf_a@web.de>2016-12-18 23:11:53 +0100
commit39ca8b8c8e55033d79b848be519fc4a8d34b337e (patch)
treee6fd28c086c40d11d2f37f4f31f50fe83ea4d3cb /tests
parent4561d706320e7afe0c4c943763e01aa9369be167 (diff)
downloadNim-39ca8b8c8e55033d79b848be519fc4a8d34b337e.tar.gz
fixes #4818
Diffstat (limited to 'tests')
-rw-r--r--tests/system/tdeepcopy.nim1
-rw-r--r--tests/system/trealloc.nim21
2 files changed, 21 insertions, 1 deletions
diff --git a/tests/system/tdeepcopy.nim b/tests/system/tdeepcopy.nim
index 5a582425a..f7a6e87fa 100644
--- a/tests/system/tdeepcopy.nim
+++ b/tests/system/tdeepcopy.nim
@@ -1,6 +1,5 @@
 discard """
   output: "ok"
-  disabled: "true"
 """
 
 import tables, lists
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"