diff options
author | Timothee Cour <timothee.cour2@gmail.com> | 2021-05-11 07:35:43 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-11 16:35:43 +0200 |
commit | e60672141a971da878dac6781fb907b9c520c219 (patch) | |
tree | 9e9b521e71252d83c25af45c5245fc7ff967ca7b /tests/stdlib | |
parent | 2c2ec48bc493db39ff1c6aa30e93b227c8e2a096 (diff) | |
download | Nim-e60672141a971da878dac6781fb907b9c520c219.tar.gz |
improve std/tempfiles (#17920)
* improve std/tempfiles * fixup * fix windows * improve test * improve runnableExamples and tests * address comment
Diffstat (limited to 'tests/stdlib')
-rw-r--r-- | tests/stdlib/ttempfiles.nim | 52 |
1 files changed, 42 insertions, 10 deletions
diff --git a/tests/stdlib/ttempfiles.nim b/tests/stdlib/ttempfiles.nim index 29ef2fb2b..d740e1850 100644 --- a/tests/stdlib/ttempfiles.nim +++ b/tests/stdlib/ttempfiles.nim @@ -1,17 +1,49 @@ -import std/[os, tempfiles] +discard """ + joinable: false # not strictly necessary +""" +import std/tempfiles +import std/[os, nre] -doAssert createTempDir("nim", "tmp") != createTempDir("nim", "tmp") +const + prefix = "D20210502T100442" # safety precaution to only affect files/dirs with this prefix + suffix = ".tmp" block: - var t1 = createTempFile("nim", ".tmp") - var t2 = createTempFile("nim", ".tmp") + var t1 = createTempFile(prefix, suffix) + var t2 = createTempFile(prefix, suffix) + defer: + close(t1.cfile) + close(t2.cfile) + removeFile(t1.path) + removeFile(t2.path) + doAssert t1.path != t2.path - write(t1.fd, "1234") - doAssert readAll(t2.fd) == "" + let s = "1234" + write(t1.cfile, s) + doAssert readAll(t2.cfile) == "" + doAssert readAll(t1.cfile) == "" + t1.cfile.setFilePos 0 + doAssert readAll(t1.cfile) == s + +block: # createTempDir + doAssertRaises(OSError): discard createTempDir(prefix, suffix, "nonexistent") + + block: + let dir1 = createTempDir(prefix, suffix) + let dir2 = createTempDir(prefix, suffix) + defer: + removeDir(dir1) + removeDir(dir2) + doAssert dir1 != dir2 + + doAssert dirExists(dir1) + doAssert dir1.lastPathPart.contains(re"^D20210502T100442(\w+).tmp$") + doAssert dir1.parentDir == getTempDir() - close(t1.fd) - close(t2.fd) - removeFile(t1.path) - removeFile(t2.path) + block: + let dir3 = createTempDir(prefix, "_mytmp", ".") + doAssert dir3.lastPathPart.contains(re"^D20210502T100442(\w+)_mytmp$") + doAssert dir3.parentDir == "." # not getCurrentDir(): we honor the absolute/relative state of input `dir` + removeDir(dir3) |