# On production it worth to remove "new" and keep run "slow" to make sure heavy
# tests are run first and we do not wait for them at the end of a test suit.

# It makes sense on the staging server to run tests in "shuffle" mode. So the system
# being tested in unpredictable way (more chances to find bugs).
# Run the tests in random order.
# --shuffle

# Run the same tests as the last time the state was saved.
# --state=last


# Control prove's persistent state.
# https://metacpan.org/dist/Test-Harness/view/bin/prove#-state
# * fresh -- Run those test scripts that have been modified since the last test run.
# * hot   -- Run the tests that most recently failed first.
# * new   -- Run the tests in newest to oldest order based on the modification times of the test scripts.
# * slow  -- Run the tests in slowest to fastest order.
# * save  -- Save the state on exit.
--state=fresh,hot,new,slow,save

# Run N test jobs in parallel (try 9.)
--jobs=5

# Print elapsed time after each test.
# --timer

# Trap Ctrl-C and print summary on interrupt.
--trap

# Show failed tests.
--failures

# Colored test output (default).
--color

# Merge test scripts' STDERR with their STDOUT
--merge


# Library paths to include.
-Ilib
-Ilocal/lib/perl5
-It/lib


# Rules for parallel vs sequential processing.
# Config does not work without this PR: https://github.com/Perl-Toolchain-Gang/Test-Harness/pull/139/files
# All be done in the next order:
# * run 'smoke' tests first in parallel
# * run 'module' tests in parallel
# * run 'start' test alone
# * run 't*' tests in parallel
# * run 'finish' test alone
--rules=par=t/smoke/*.t
--rules=par=t/module/*.t
--rules=seq=t/example/start.t
--rules=par=t/example/t*
--rules=seq=t/example/finish.t
