Files
Nim/tests/stdlib
havardjohn 68f92af17c Fix cannot create Windows directory in root (#20311)
* Fix cannot create Windows directory in root

Fixes #20306, a regression bug with `createDir` caused by
`23e0160af283bb0bb573a86145e6c1c792780d49`.

The issue is that, if the path consists only of a drive and a single
directory (e.g. "Y:\nimcache2" in the original issue), then no
directories will be created. This works fine if there are multiple
directories (e.g. "Y:\nimcache2\test").

In the case of "Y:\nimcache2", `omitNext` in `createDir` is `false` on
the last condition in `createDir`. This means that the "nimcache2"
directory will not be created, and no exception will be raised.

Fixed by refactoring to use `parentDirs` iterator instead of iterating
over the string characters. Motivation is reduced code complexity.

Will not test the specific "C:\test" `createDir` case, since there is no
standard Windows drive with write permissions in the root. Creating a
custom drive-mapping to Windows Temp is a non-option. That could mess
up some users running the test.

Added `parentDirs` tests since they are lacking on for POSIX paths.

* Fix `createDir("")` causing error

The change to `createDir` caused `createDir("")` to raise an error,
where it previously didn't. Fixed so `createDir("")` does not fail, and
added test case.
2022-09-11 16:51:39 -04:00
..
2020-10-29 18:12:14 +01:00
2020-11-13 16:15:13 +08:00
2020-12-28 14:13:21 +01:00
2020-11-05 14:00:49 +01:00
2021-01-07 19:16:26 +01:00
2020-12-28 14:13:21 +01:00
2020-12-28 14:13:21 +01:00
2021-01-05 20:51:51 +01:00
2021-07-27 09:36:19 +02:00
2021-07-17 07:54:47 +02:00
2020-12-28 14:13:21 +01:00
2020-12-28 14:13:21 +01:00
2021-03-26 13:05:51 +01:00
2021-04-06 16:21:58 +02:00
2021-10-24 11:51:57 +02:00
2021-07-05 10:12:58 -07:00
2020-11-23 19:53:57 +01:00
2020-12-27 14:45:57 +01:00
2019-05-16 21:06:04 +02:00
2020-11-24 19:06:41 +01:00
2020-12-28 14:13:21 +01:00
2021-01-22 19:51:11 +01:00
2021-02-06 17:33:11 +01:00
2020-10-18 12:57:13 -04:00
2021-02-22 19:58:37 +01:00
2021-03-08 10:39:39 +01:00
2021-06-16 11:31:20 +02:00
2018-12-11 21:23:21 +01:00
2022-08-23 21:44:50 +02:00
2021-08-23 00:13:39 +02:00
2021-09-02 12:10:14 +02:00
2020-11-24 19:06:41 +01:00
2021-07-19 12:43:31 +02:00
2020-12-28 14:13:21 +01:00
2021-02-09 13:04:36 +01:00
2020-12-28 14:13:21 +01:00
2020-12-28 14:13:21 +01:00
2022-07-06 13:06:41 +02:00
2020-07-12 03:31:03 -04:00
2022-05-30 12:09:18 +02:00
2018-04-30 11:16:56 +02:00
2020-12-28 14:13:21 +01:00