mirror of
https://github.com/waku-org/nwaku.git
synced 2025-01-15 17:35:45 +00:00
65 lines
2.3 KiB
Markdown
65 lines
2.3 KiB
Markdown
# Testrunner
|
|
## Usage
|
|
Command syntax:
|
|
```
|
|
testrunner [options] path
|
|
Run the test(s) specified at path. Will search recursively for test files
|
|
provided path is a directory.
|
|
Options:
|
|
--targets:"c c++ js objc" [Not implemented] Run tests for specified targets
|
|
--include:"test1 test2" Run only listed tests (space/comma seperated)
|
|
--exclude:"test1 test2" Skip listed tests (space/comma seperated)
|
|
--help Display this help and exit
|
|
```
|
|
|
|
The runner will look recursively for all `*.test` files at given path.
|
|
|
|
## Test file options
|
|
The test files follow the configuration file syntax (similar as `.ini`), see also
|
|
[nim parsecfg module](https://nim-lang.org/docs/parsecfg.html).
|
|
|
|
### Required
|
|
- **program**: A test file should have at minimum a program name. This is the name
|
|
of the nim source minus the `.nim` extension.
|
|
|
|
### Optional
|
|
- **max_size**: To check the maximum size of the binary, in bytes.
|
|
- **timestamp_peg**: If you don't want to use the default timestamps, you can define
|
|
your own timestamp peg here.
|
|
- **compile_error**: When expecting a compilation failure, the error message that
|
|
should be expected.
|
|
- **error_file**: When expecting a compilation failure, the source file where the
|
|
error should occur.
|
|
- **os**: Space and/or comma separated list of operating systems for which the
|
|
test should be run. Defaults to `"linux, macosx, windows"`. Tests meant for a
|
|
different OS than the host will be marked as `SKIPPED`.
|
|
- **--skip**: This will simply skip the test (will not be marked as failure).
|
|
|
|
### Forwarded Options
|
|
Any other options or key-value pairs will be forwarded to the nim compiler.
|
|
|
|
A **key-value** pair will become a conditional symbol + value (`-d:SYMBOL(:VAL)`)
|
|
for the nim compiler, e.g. for `-d:chronicles_timestamps="UnixTime"` the test
|
|
file requires:
|
|
```
|
|
chronicles_timestamps="UnixTime"
|
|
```
|
|
If only a key is given, an empty value will be forwarded.
|
|
|
|
An **option** will be forwarded as is to the nim compiler, e.g. this can be
|
|
added in a test file:
|
|
```
|
|
--opt:size
|
|
```
|
|
|
|
### Outputs
|
|
For outputs to be compared, the output string should be set to the output
|
|
name (stdout or filename) from within the "Output" section, e.g.:
|
|
```
|
|
[Output]
|
|
stdout="""expected stdout output"""
|
|
file.log="""expected file output"""
|
|
```
|
|
|
|
Triple quotes can be used for multiple lines.
|