Configuration Values

maelstrom-pytest supports the following configuration values:

ValueTypeDescriptionDefault
cache-sizestringtarget cache disk space usage"1 GB"
inline-limitstringmaximum amount of captured standard output error"1 MB"
slotsnumberjob slots available1 per CPU
container-image-depot-rootstringcontainer images cache directory$XDG_CACHE_HOME/maelstrom/containers
accept-invalid-remote-container-tls-certsbooleanallow invalid container registry certificatesfalse
brokerstringaddress of brokerstandalone mode
log-levelstringminimum log level"info"
quietbooleandon't output per-test informationfalse
uistringUI style to use"auto"
repeatnumberhow many times to run each test1
timeoutstringoverride timeout value testsdon't override
collect-from-modulestringcollect tests from the specified moduledon't override
extra-pytest-argslistpass arbitrary arguments to pytestno args
extra-pytest-collect-argslistpass arbitrary arguments to pytest when collectingno args
extra-pytest-test-argslistpass arbitrary arguments to pytest when running a testno args
stop-afternumberstop after given number of failuresnever stop

cache-size

This is a local-worker setting, common to all clients. See here for details.

inline-limit

This is a local-worker setting, common to all clients. See here for details.

slots

This is a local-worker setting, common to all clients. See here for details.

container-image-depot-root

This is a container-image setting, common to all clients. See here for details.

accept-invalid-remote-container-tls-certs

This is a container-image setting, common to all clients. See here for details.

broker

The broker configuration value specifies the socket address of the broker. This configuration value is optional. If not provided, maelstrom-pytest will run in standalone mode.

Here are some example value socket addresses:

  • broker.example.org:1234
  • 192.0.2.3:1234
  • [2001:db8::3]:1234

log-level

This is a setting common to all Maelstrom programs. See here for details.

maelstrom-pytest always prints log messages to stdout. It also passes the log level to maelstrom-client, which will log its output in a file named client-process.log in the state directory.

quiet

The quiet configuration value, if set to true, causes maelstrom-pytest to be more more succinct with its output. If maelstrom-pytest is outputting to a terminal, it will display a single-line progress bar indicating all test state, then print a summary at the end. If not outputting to a terminal, it will only print a summary at the end.

ui

The ui configuration value controls the UI style used. It must be one of auto, fancy, quiet, or simple. The default value is auto.

StyleDescription
simpleThis is our original UI. It prints one line per test result (unless quiet is true), and will display some progress bars if standard output is a TTY.
fancyThis is our new UI. It has a rich TTY experience with a lot of status updates. It is incompatible with quiet or with non-TTY standard output.
quietMinimal UI with only a single progress bar
autoWill choose fancy if standard output is a TTY and quiet isn't true. Otherwise, it will choose simple.

repeat

The repeat configuration value specifies how many times each test will be run. It must be a nonnegative integer. On the command line, --loop can be used as an alias for --repeat.

timeout

The optional timeout configuration value provides the timeout value to use for all tests. This will override any value set in maelstrom-pytest.toml.

collect-from-module

Collect tests from the provided module instead of using pytest's default collection algorithm. This will pass the provided module to pytest along with the --pyargs flag.

extra-pytest-args

This allows passing of arbitrary command-line arguments to pytest when collecting tests and running a test. These arguments are added in to both extra-pytest-collect-args and extra-pytest-test-args at the beginning. See those individual configuration values for details.

extra-pytest-collect-args

This allows passing of arbitrary command-line arguments to pytest when collecting tests. See pytest --help for what arguments are accepted normally. Since these arguments are passed directly and not interpreted, this can be used to interact with arbitrary pytest plugins.

These arguments are added after --co and --pyargs.

extra-pytest-test-args

This allows passing of arbitrary command-line arguments to pytest when running a test. See pytest --help for what arguments are accepted normally. Since these arguments are passed directly and not interpreted, this can be used to interact with arbitrary pytest plugins.

These arguments are added after the --verbose but before we pass the nodeid of which test to run. It could be possible to use these flags to somehow not run the test maelstrom-pytest was intending to, producing confusing results.

When provided on the command-line these arguments are positional and come after any other arguments. They must always be preceded by -- like as follows:

maelstrom-pytest -- -n1

stop-after

This optional configuration value if provided gives a limit on the number of failure to tolerate. If the limit is reached, cargo-maelstrom exits prematurely.