nihtest.conf - Man Page

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.

File Format

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:

default-program = program

Test program if no program directive is found in the test.

default-stderr-replace = 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.

environment-clear = true

If environment-clear is set to true, only variables explicitly set or passed through are included in the environment passed to the tested program.

environment-passthrough = variable ...

The named environment variables are passed through from the environment nihtest(1) is run in to the environment passed to the tested program.

environment-unset = variable ...

The named environment variables are removed from the environment passed to the tested program.

features-files = file ...

Specifies the files to search for feature defines. This is used in the features directive in test cases.

keep-sandbox = 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.

print-results = 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.

program-directories = directory ...

Specifies the directories programs are searched for. They are prepended to PATH.

sandbox-directories = 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.

test-input-directories = 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 = zipcmp -v

and the test case containing


the command

zipcmp -v

will be run to compare the files.


default-program = program_to_test
program-directories = bin
[comparators] = zipcmp -v

See Also


Referenced By


June 15, 2023 Linux 6.3.8-200.fc38.x86_64 File Formats Manual