tasyncfile.nim 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. discard """
  2. output: '''13
  3. hello humans!
  4. 13
  5. '''
  6. file: "tasyncfile.nim"
  7. exitcode: 0
  8. """
  9. import asyncfile, asyncdispatch, os
  10. proc main() {.async.} =
  11. let fn = getTempDir() / "foobar.txt"
  12. removeFile(fn)
  13. # Simple write/read test.
  14. block:
  15. var file = openAsync(fn, fmReadWrite)
  16. await file.write("testing")
  17. file.setFilePos(0)
  18. await file.write("foo")
  19. file.setFileSize(4)
  20. file.setFilePos(0)
  21. let data = await file.readAll()
  22. doAssert data == "foot"
  23. file.close()
  24. # Append test
  25. block:
  26. var file = openAsync(fn, fmAppend)
  27. await file.write("\ntest2")
  28. let errorTest = file.readAll()
  29. yield errorTest
  30. doAssert errorTest.failed
  31. file.close()
  32. file = openAsync(fn, fmRead)
  33. let data = await file.readAll()
  34. doAssert data == "foot\ntest2"
  35. file.close()
  36. # Issue #5531
  37. block:
  38. removeFile(fn)
  39. var file = openAsync(fn, fmWrite)
  40. await file.write("test2")
  41. file.close()
  42. file = openAsync(fn, fmWrite)
  43. await file.write("t3")
  44. file.close()
  45. file = openAsync(fn, fmRead)
  46. let data = await file.readAll()
  47. doAssert data == "t3"
  48. file.close()
  49. # Issue #7347
  50. block:
  51. let appDir = getAppDir()
  52. var file = openAsync(appDir & DirSep & "hello.txt")
  53. echo file.getFileSize()
  54. echo await file.readAll()
  55. echo file.getFilePos()
  56. waitFor main()