MTR2 has brought some new utility that can improve testing, but also some elements that can be pitfalls. This section attempts to describe both.
$MYSQLTEST_VARDIR/master-data -> $MYSQLD_DATADIR
This change was introduced to work with parallel. Since MTR2 can run several instances of itself, one path is needed for each instance.
You must also use let $MYSQLD_DATADIR= `SELECT @@datadir`;
max-test-fail: The number of test cases that can fail before the test run aborts. Default=10, set to 0 to continue the run regardless of failure count.
NOTE: --force alone is no longer sufficient to guarantee a full test suite run. If the number of failing tests == max-test-fail, then the test run will abort.
parallel: Set n number of workers to run tests in parallel. The current recommendation is 2x the number of processors on your machine.
NOTE: You can no longer be sure of executing test cases in a particular order due to this and other changes brought on by MTR2. *Do not* try to create multi-part tests (test_pt1.test, test_pt2.test, etc).
NOTE: Be cautious when using a high (>2) value for parallel and --mem in combination. It is possible to use vast amounts of resources on your system and cause problematic performance till a crash of the operating system while MTR2 is running.
repeat: Run the input test(s) n times in succession. Very good for diagnosing random failures - set a high value for 'n', create a high load on your machine, and see if you can duplicate the failure.