Documentation Home
MySQL Internals Manual

26.7 Notes on MTR2

MTR2 has brought some new utility that can improve testing, but also some elements that can be pitfalls. This section attempts to describe both.

  • Changes


  • 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`;

  • New options

  • 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.