MySQL Utilities 1.5 Manual  /  MySQL Utilities Testing (MUT)  /  mut — MySQL Utilities Testing

7.1 mut — MySQL Utilities Testing

This utility executes predefined tests to test the MySQL Utilities. The tests are located under the /mysql-test directory and divided into suites (stored as folders). By default, all tests located in the /t folder are considered the 'main' suite.

You can select any number of tests to run, select one or more suites to restrict the tests, exclude suites and tests, and specify the location of the utilities and tests.

The utility requires the existence of at least one server to clone for testing purposes. You must specify at least one server, but you may specify multiple servers for tests designed to use additional servers.

The utility has a special test suite named 'performance' where performance-related tests are placed. This suite is not included by default and must be specified with the --suite option to execute the performance tests.


mut accepts the following command-line options:

  • --help

    Display a help message and exit.

  • --do-tests=<prefix>

    Execute all tests that begin with prefix.

  • --force

    Do not abort when a test fails.

  • --record

    Record the output of the specified test if successful. With this option, you must specify exactly one test to run.

  • --server=<server>

    Connection information for the server to use in the tests. Use this option multiple times to specify multiple servers.

    To connect to a server, it is necessary to specify connection parameters such as user name, host name, password, and either a port or socket. MySQL Utilities provides a number of ways to provide this information. All of the methods require specifying your choice via a command-line option such as --server, --master, --slave, etc. The methods include the following in order of most secure to least secure.

    • Use login-paths from your .mylogin.cnf file (encrypted, not visible). Example : <login-path>[:<port>][:<socket>]

    • Use a configuration file (unencrypted, not visible) Note: available in release-1.5.0. Example : <configuration-file-path>[:<section>]

    • Specify the data on the command-line (unencrypted, visible). Example : <user>[:<passwd>]@<host>[:<port>][:<socket>]

  • --skip-long

    Exclude tests that require greater resources or take a long time to run.

  • --skip-suite=<name>

    Exclude the named test suite. Use this option multiple times to specify multiple suites.

  • --skip-test=<name>

    Exclude the named test. Use this option multiple times to specify multiple tests.

  • --skip-tests=<prefix>

    Exclude all tests that begin with prefix.

  • --sort

    Execute tests sorted by either ascending (asc) or descending (desc). Default is ascending (asc).

  • --start-port=<port>

    The first port to use for spawned servers. If you run the entire test suite, you may see up to 12 new instances created. The default is to use ports 3310 to 3321.

  • --start-test=<prefix>

    Start executing tests that begin with prefix.

  • --stop-test=<prefix>

    Stop executing tests at the first test that begins with prefix.

  • --suite=<name>

    Execute the named test suite. Use this option multiple times to specify multiple suites.

  • --testdir=<path>

    The path to the test directory.

  • --utildir=<path>

    The location of the utilities.

  • --verbose, -v

    Specify how much information to display. Use this option multiple times to increase the amount of information. For example, -v = verbose, -vv = more verbose, -vvv = debug. To diagnose test execution problems, use -vvv to display the actual results of test cases and ignore result processing.

  • --version

    Display version information and exit.

  • --width=<number>

    Specify the display width. The default is 75 characters.


The connection specifier must name a valid account for the server.

Any test named ??? is skipped. This enables the developer to create a base class to import for a collection of tests based on a common code base.


The following example demonstrates how to invoke mut to execute a subset of the tests using an existing server which is cloned. The example displays the test name, status, and relative time:

shell> mut --server=root@localhost --do-tests=clone_user --width=70

MySQL Utilities Testing - MUT

Parameters used:
  Display Width       = 70
  Sorted              = True
  Force               = False
  Test directory      = './t'
  Utilities directory = '../scripts'
  Starting port       = 3310
  Test wildcard       = 'clone_user%'

  Connecting to localhost as user root on port 3306: CONNECTED

TEST NAME                                                STATUS   TIME
main.clone_user                                          [pass]     54
main.clone_user_errors                                   [pass]     27
main.clone_user_parameters                               [pass]     17
Testing completed: Friday 03 December 2010 09:50:06

All 3 tests passed.


There are no special permissions required to run mysqluc however, you must have the necessary privileges to execute the desired utilities in the tests. Generally, MUT is run with a root user.

Download this Manual
PDF (US Ltr) - 1.2Mb
PDF (A4) - 1.2Mb
EPUB - 365.4Kb
HTML Download (TGZ) - 287.5Kb
HTML Download (Zip) - 298.6Kb
User Comments
Sign Up Login You must be logged in to post a comment.