summary refs log tree commit diff stats
path: root/tests/async/tasyncfile.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/async/tasyncfile.nim')
-rw-r--r--tests/async/tasyncfile.nim36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/async/tasyncfile.nim b/tests/async/tasyncfile.nim
new file mode 100644
index 000000000..78738de4e
--- /dev/null
+++ b/tests/async/tasyncfile.nim
@@ -0,0 +1,36 @@
+discard """
+  file: "tasyncexceptions.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("test")
+    file.setFilePos(0)
+    await file.write("foo")
+    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()
+    await errorTest
+    doAssert errorTest.failed
+    file.close()
+    file = openAsync(fn, fmRead)
+    let data = await file.readAll()
+    
+    doAssert data == "foot\ntest2"
+    file.close()
+  
+waitFor main()