Files
Nim/tests
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
..
2017-07-25 09:28:23 +02:00
2021-08-21 08:22:00 +02:00
2022-07-06 13:06:41 +02:00
2022-09-01 18:10:00 +02:00
2019-05-25 07:33:33 +02:00
2014-01-13 02:10:03 +01:00
2021-01-21 17:31:47 +01:00
2020-12-28 14:13:21 +01:00
2022-07-06 13:06:41 +02:00
2018-12-11 21:23:22 +01:00
2021-04-06 16:20:01 +02:00
2021-09-04 17:49:27 +02:00
2022-07-06 13:06:41 +02:00
2019-09-16 12:12:44 +02:00
2022-07-06 13:06:41 +02:00
2021-03-28 00:57:22 -07:00
2021-06-03 17:12:45 +02:00
2020-11-07 08:00:41 +00:00
2021-04-24 18:33:29 +01:00
2020-11-18 00:14:14 +00:00
2022-09-11 08:33:24 +02:00
2021-04-06 16:20:01 +02:00
2013-03-16 23:53:07 +01:00
2020-12-28 14:13:21 +01:00
2022-02-03 11:15:46 +08:00

This directory contains the test cases.

Each test must have a filename of the form: t*.nim

Note: Testament is only aware of tests under a directory (eg tests/foo/) and will ignore top-level tests like tests/tbar.nim.

Specs

Each test can contain a spec in a discard """ ... """ block.

Check out the parseSpec procedure in the specs module for a full and reliable reference

action

Specifies what action this test should take.

Default: run

Options:

  • compile - compiles the module and fails the test if compilations fails.
  • run - compiles and runs the module, fails the test if compilation or execution of test code fails.
  • reject - compiles the module and fails the test if compilation succeeds.

There are certain spec keys that imply run, including output and outputsub.

Categories

Each folder under this directory represents a test category, which can be tested by running koch tests pcat <category> (or cat to avoid parallel testing, which is slower).

The folder dll contains simple DLL tests.

The folder realtimeGC contains a test for validating that the realtime GC can run properly without linking against the nimrtl.dll/so.