summary refs log tree commit diff stats
path: root/tests/fragmentation/tfragment_alloc.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/fragmentation/tfragment_alloc.nim')
-rw-r--r--tests/fragmentation/tfragment_alloc.nim27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/fragmentation/tfragment_alloc.nim b/tests/fragmentation/tfragment_alloc.nim
new file mode 100644
index 000000000..031588d27
--- /dev/null
+++ b/tests/fragmentation/tfragment_alloc.nim
@@ -0,0 +1,27 @@
+
+discard """
+  output: '''occupied ok: true
+total ok: true'''
+"""
+
+import strutils, data
+
+proc main =
+  var m = 0
+  for i in 0..1000_000:
+    let size = sizes[i mod sizes.len]
+    let p = alloc(size)
+    if p == nil:
+      quit "could not serve request!"
+    dealloc p
+ #   c_fprintf(stdout, "iteration: %ld size: %ld\n", i, size)
+
+main()
+
+let occ = getOccupiedMem()
+let total = getTotalMem()
+
+# Current values on Win64: 824KiB / 106.191MiB
+
+echo "occupied ok: ", occ < 2 * 1024 * 1024
+echo "total ok: ", total < 120 * 1024 * 1024