nihtest.conf
testing tool configuration file format

nihtest(1) is a testing tool. It reads a configuration file to get its default settings. The default path for the file is nihtest.conf in the current directory; this can be overridden with nihtest(1)'s -C flag. This man page describes the format of this configuration file.

The configuration file consists of multiple sections, which are started with [section-name]. The supported sections are settings, environment, and comparators.

Each section consists of variable assignments in the format name = value, one per line.

Multiple values for the same variable can be specified, one per line, where subsequent lines must be indented with spaces.

In the settings section, the following variables are recognized:
program
Test program if no program directive is found in the test.
pattern replacement ...
Each line consists of two values, pattern is a regular expression and replacement the corresponding replacement string. These are used for test cases without stderr-replace directives. See nihtest-case(5) for details on stderr-replace.
directory
Use directory as the working directory if no working-directory directive is found in the test.
If environment-clear is set to true, only variables explicitly set or passed through are included in the environment passed to the tested program.
variable ...
The named environment variables are passed through from the environment nihtest(1) is run in to the environment passed to the tested program.
variable ...
The named environment variables are removed from the environment passed to the tested program.
file ...
Specifies the files to search for feature defines. This is used in the features directive in test cases.
when
Describe when to keep the sandbox (i.e., not delete it) after running the test. The following values are supported:
Never keep the sandbox.
Keep the sandbox when the test failed.
Always keep the sandbox.
This can be overridden with the nihtest(1) flags - -keep-broken -= when or --no-cleanup. The default is never.
when
Describe when to print the test results verbosely. The following values are supported:
Quiet mode.
Print details when the test failed.
Verbose mode.
This can be overridden with the nihtest(1) flags - -quiet or --verbose. The default is failed.
directory ...
Specifies the directories programs are searched for. They are prepended to PATH.
directory ...
Create sandboxes in directory. By default, the sandboxes will be created in the current directory. A random directory of the pattern sandbox_* will be used.
directory ...
nihtest(1) searches the current directory and directory for test cases, input and output files.

The environment section contains variable and values that will be added as environment variables when the test program is run.

The comparators section specifies programs to use to compare files of certain types. The variable names have the format got-extension. expected-extension, the value specifies the command line to use to compare these files. The command will be run with the two files as arguments, the file in the sandbox first and the expected last.

The command is expected to exit with code 0 if the two files are considered equal, any other exit code if not. The command output will be displayed if verbose test results are enabled (see print-results above).

For example, with comparators containing

zip.zip = zipcmp -v
and the test case containing
file got.zip expected.zip
the command
zipcmp -v got.zip expected.zip
will be run to compare the files.

The comparator-preprocessors section specifies programs to use to preprocess certain file types for comparison. The variable names have the format got-extension. expected-extension, the value specifies the command line to use to preprocess the file in the sandbox. The command will be run with the file in the sandbox first as argument. The command's output will be compared to the expected file.

If the command doesn't exit with code 0, the test will fail.

The copiers section specifies programs to use to copy certain file types into the sandbox. The variable names have the format sandbox-extension. source-extension, the value specifies the command line to use to copy the file into the sandbox. The command will be run with the two files as arguments, the source file first and the file in the sandbox last.

If the command doesn't exit with code 0, the test will fail.

[settings]
default-program = program_to_test
program-directories = bin
    tests
[environment]
LC_ALL=en_US.UTF-8
[comparators]
zip.zip = zipcmp -v

nihtest(1)