diff options
Diffstat (limited to 'tests/stdlib/tmemfiles2.nim')
-rw-r--r-- | tests/stdlib/tmemfiles2.nim | 22 |
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) |