summary refs log tree commit diff stats
path: root/tests/stdlib/tmemfiles2.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/stdlib/tmemfiles2.nim')
-rw-r--r--tests/stdlib/tmemfiles2.nim22
1 files changed, 13 insertions, 9 deletions
diff --git a/tests/stdlib/tmemfiles2.nim b/tests/stdlib/tmemfiles2.nim
index 026443e93..c79f85ebf 100644
--- a/tests/stdlib/tmemfiles2.nim
+++ b/tests/stdlib/tmemfiles2.nim
@@ -1,26 +1,30 @@
 discard """
-  file: "tmemfiles2.nim"
-  disabled: true
+  disabled: "Windows"
   output: '''Full read size: 20
 Half read size: 10 Data: Hello'''
 """
-# doesn't work on windows. fmReadWrite doesn't create a file.
 import memfiles, os
+import std/syncio
+
+
+const
+  fn = "test.mmap"
 var
   mm, mm_full, mm_half: MemFile
-  fn = "test.mmap"
   p: pointer
 
 if fileExists(fn): removeFile(fn)
 
-# Create a new file, data all zeros
-mm = memfiles.open(fn, mode = fmReadWrite, newFileSize = 20)
+# Create a new file, data all zeros, starting at size 10
+mm = memfiles.open(fn, mode = fmReadWrite, newFileSize = 10, allowRemap=true)
+mm.resize 20  # resize up to 20
 mm.close()
 
 # read, change
-mm_full = memfiles.open(fn, mode = fmWrite, mappedSize = -1)
-echo "Full read size: ",mm_full.size
+mm_full = memfiles.open(fn, mode = fmWrite, mappedSize = -1, allowRemap = true)
+let size = mm_full.size
 p = mm_full.mapMem(fmReadWrite, 20, 0)
+echo "Full read size: ", size
 var p2 = cast[cstring](p)
 p2[0] = 'H'
 p2[1] = 'e'
@@ -33,7 +37,7 @@ mm_full.close()
 
 # read half, and verify data change
 mm_half = memfiles.open(fn, mode = fmRead, mappedSize = 10)
-echo "Half read size: ",mm_half.size, " Data: ", cast[cstring](mm_half.mem)
+echo "Half read size: ", mm_half.size, " Data: ", cast[cstring](mm_half.mem)
 mm_half.close()
 
 if fileExists(fn): removeFile(fn)