NIHTEST.CONF(5) File Formats Manual NIHTEST.CONF(5)

nihtest.conftesting 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, setenv, 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.
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.
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 setenv section contains variable and values that will be added as environment variables when the test program is run. If the test case contains a setenv directive, this section will be ignored.

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.

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

nihtest(1)

June 9, 2023 NiH