tpathnorm.nim 979 B

123456789101112131415161718192021222324252627282930313233343536
  1. discard """
  2. """
  3. import std/os
  4. import std/assertions
  5. when doslikeFileSystem:
  6. import std/pathnorm
  7. template initVars =
  8. var state {.inject.} = 0
  9. var result {.inject.}: string
  10. block: # / -> /
  11. initVars
  12. addNormalizePath("//?/c:/./foo//bar/../baz", result, state, '/')
  13. doAssert result == "//?/c:/foo/baz"
  14. addNormalizePath("me", result, state, '/')
  15. doAssert result == "//?/c:/foo/baz/me"
  16. block: # / -> \
  17. initVars
  18. addNormalizePath(r"//?/c:/./foo//bar/../baz", result, state, '\\')
  19. doAssert result == r"\\?\c:\foo\baz"
  20. addNormalizePath("me", result, state, '\\')
  21. doAssert result == r"\\?\c:\foo\baz\me"
  22. block: # Append path component to UNC drive
  23. initVars
  24. addNormalizePath(r"//?/c:", result, state, '\\')
  25. doAssert result == r"\\?\c:"
  26. addNormalizePath("Users", result, state, '\\')
  27. doAssert result == r"\\?\c:\Users"
  28. addNormalizePath("me", result, state, '\\')
  29. doAssert result == r"\\?\c:\Users\me"