Files
Nim/tests/readme.md
quantimnot 6289b002b6 [Testament] Extend and document message testing aids (#19996)
* [Testament] Extend and document message testing aids

* Enable inline msgs when not reject action.
Eliminates the pain of changing the line and column numbers in `nimout`
or `output` while making changes to the test.
* Enable using inline msgs and nimout together.
Allows ease of inline msgs for the test as well as testing msgs from
other modules.
* Add path separator and test filename variable interpolation in
msgs.
Eases handling path separators in the msgs.
* Add some documentation.

* Fixed lots of broken tests

* Fixed more broken tests

* Support multiple inline messages per a line

* Fix a broken test

* Revert variable substitution in `output`

* Remove uneeded params

* Update doc/testament.md

Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>

* Update testament/specs.nim

Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>

* Update testament/specs.nim

Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>

* Fix indentation

Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
2022-09-01 17:52:13 +02:00

40 lines
1.3 KiB
Markdown

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](https://github.com/nim-lang/Nim/blob/devel/testament/specs.nim#L158) 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.