Files
Nim/tests/async/tasyncfile.nim
Emery Hemingway bc5c2d8414 getFileSize and setFileSize procedures for File and AsyncFile
Platform independent procedure to set a file length. Useful when
replacing file content.
2017-04-05 19:05:43 -05:00

38 lines
800 B
Nim

discard """
file: "tasyncfile.nim"
exitcode: 0
"""
import asyncfile, asyncdispatch, os
proc main() {.async.} =
let fn = getTempDir() / "foobar.txt"
removeFile(fn)
# Simple write/read test.
block:
var file = openAsync(fn, fmReadWrite)
await file.write("testing")
file.setFilePos(0)
await file.write("foo")
file.setFileSize(4)
file.setFilePos(0)
let data = await file.readAll()
doAssert data == "foot"
file.close()
# Append test
block:
var file = openAsync(fn, fmAppend)
await file.write("\ntest2")
let errorTest = file.readAll()
yield errorTest
doAssert errorTest.failed
file.close()
file = openAsync(fn, fmRead)
let data = await file.readAll()
doAssert data == "foot\ntest2"
file.close()
waitFor main()