# mariadb-test

## NAME



           mariadb-test - program to run test cases (mariadb-test is now a
           symlink to mariadb-test)
           mariadb-test-embedded - program to run embedded test cases
    


## SYNOPSIS



    
           **mariadb-test [**_options_**] [**_db_name_**]**
    
           **mariadb-test-embedded [**_options_**] [**_db_name_**]**
    


## DESCRIPTION



           The **mariadb-test** program runs a test case against a MariaDB server
           and optionally compares the output with a result file. This
           program reads input written in a special test language. Typically,
           you invoke **mariadb-test** via **mariadb-test-run.pl** rather than
           invoking it directly.
    
           **mariadb-test-embedded** is similar but is built with support for the
           libmariadbd embedded server.
    
           Features of **mariadb-test** :
    
           •   Can send SQL statements to MariaDB servers for execution
    
           •   Can execute external shell commands
    
           •   Can test whether the result from an SQL statement or shell
               command is as expected
    
           •   Can connect to one or more standalone **mariadbd** servers and
               switch between connections
    
           •   Can connect to an embedded server (libmariadbd), if MariaDB is
               compiled with support for libmariadbd. (In this case, the
               executable is named **mariadb-test-embedded** rather than **mariadb-**
               **test**.)
    
           By default, **mariadb-test** reads the test case on the standard
           input. To run **mariadb-test** this way, you normally invoke it like
           this:
    
               shell> **mariadb-test [**_options_**] [**_db_name_**] < **_test_file_
    
           You can also name the test case file with a **--test-file=**_file_name_
           option.
    
           The exit value from **mariadb-test** is 0 for success, 1 for failure,
           and 62 if it skips the test case (for example, if after checking
           some preconditions it decides not to run the test).
    
           **mariadb-test** supports the following options:
    
           •   **--help** , **-?**
    
               Display a help message and exit.
    
           •   **--basedir=**_dir_name_ , **-b** _dir_name_
    
               The base directory for tests.
    
           •   **--character-sets-dir=**_path_
    
               The directory where character sets are installed.
    
           •   **--compress** , **-C**
    
               Compress all information sent between the client and the
               server if both support compression.
    
           •   **--connect-timeout=**_num_
    
               This can be used to set the MYSQL_OPT_CONNECT_TIMEOUT
               parameter of mysql_options to change the number of seconds
               before an unsuccessful connection attempt times out.
    
           •   **--continue-on-error**
    
               Continue test even if we got an error. This is mostly useful
               when testing a storage engine to see what from a test file it
               can execute, or to find all syntax errors in a newly created
               big test file.
    
           •   **--cursor-protocol**
    
               Use cursors for prepared statements.
    
           •   **--database=**_db_name_ , **-D** _db_name_
    
               The default database to use.
    
           •   **--debug[=**_debug_options_**]** , **-#[**_debug_options_**]**
    
               Write a debugging log if MariaDB is built with debugging
               support. The default _debug_options_ value is
               'd:t:S:i:O,/tmp/mariadb-test.trace'.
    
           •   **--debug-check**
    
               Print some debugging information when the program exits.
    
           •   **--debug-info**
    
               Print debugging information and memory and CPU usage
               statistics when the program exits.
    
           •   **--host=**_host_name_ , **-h** _host_name_
    
               Connect to the MariaDB server on the given host.
    
           •   **--logdir=**_dir_name_
    
               The directory to use for log files.
    
           •   **--mark-progress**
    
               Write the line number and elapsed time to _test_file_.progress.
    
           •   **--max-connect-retries=**_num_
    
               The maximum number of connection attempts when connecting to
               server.
    
           •   **--max-connections=**_num_
    
               The maximum number of simultaneous server connections per
               client (that is, per test). If not set, the maximum is 128.
               Minimum allowed limit is 8, maximum is 5120.
    
           •   **--no-defaults**
    
               Do not read default options from any option files. If used,
               this must be the first option.
    
           •   **--non-blocking-api**
    
               Use the non-blocking client API for communication.
    
           •   **--overlay-dir=**_dir_name_
    
               Overlay directory.
    
           •   **--password[=**_password_**]** , **-p[**_password_**]**
    
               The password to use when connecting to the server. If you use
               the short option form (**-p**), you _cannot_ have a space between
               the option and the password. If you omit the _password_ value
               following the **--password** or **-p** option on the command line, you
               are prompted for one.
    
           •   **--plugin-dir=**_dir_name_
    
               Directory for client-side plugins.
    
           •   **--port=**_port_num_ , **-P** _port_num_
    
               The TCP/IP port number to use for the connection or 0 for
               default to, in order of preference, my.cnf, $MYSQL_TCP_PORT,
               /etc/services, built-in default (3306).
    
           •   **--prologue=**_name_
    
               Include the contents of the given file before processing the
               contents of the test file. The included file should have the
               same format as other **mariadb-test** test files. This option has
               the same effect as putting a --source _file_name_ command as the
               first line of the test file.
    
           •   **--protocol={TCP|SOCKET|PIPE|MEMORY}**
    
               The connection protocol to use for connecting to the server.
               It is useful when the other connection parameters normally
               would cause a protocol to be used other than the one you want.
    
           •   **--ps-protocol**
    
               Use the prepared-statement protocol for communication.
    
           •   **--quiet**
    
               Suppress all normal output. This is a synonym for **--silent**.
    
           •   **--record** , **-r**
    
               Record the output that results from running the test file into
               the file named by the **--result-file** option, if that option is
               given. It is an error to use this option without also using
               **--result-file**.
    
           •   **--result-file=**_file_name_ , **-R** _file_name_
    
               This option specifies the file for test case expected results.
               **--result-file** , together with **--record** , determines how **mariadb-**
               **test** treats the test actual and expected results for a test
               case:
    
               •   If the test produces no results, **mariadb-test** exits with
                   an error message to that effect, unless **--result-file** is
                   given and the named file is an empty file.
    
               •   Otherwise, if **--result-file** is not given, **mariadb-test**
                   sends test results to the standard output.
    
               •   With **--result-file** but not **--record** , **mariadb-test** reads
                   the expected results from the given file and compares them
                   with the actual results. If the results do not match,
                   **mariadb-test** writes a .reject file in the same directory
                   as the result file, outputs a diff of the two files, and
                   exits with an error.
    
               •   With both **--result-file** and **--record** , **mariadb-test** updates
                   the given file by writing the actual test results to it.
    
           •   **--result-format-version=**_#_
    
               Version of the result file format to use.
    
           •   **--server-arg=**_value_ , **-A** _value_
    
               Pass the argument as an argument to the embedded server. For
               example, **--server-arg=--tmpdir=/tmp** or **--server-arg=--core**. Up
               to 64 arguments can be given.
    
           •   **--server-file=**_file_name_ , **-F** _file_name_
    
               Read arguments for the embedded server from the given file.
               The file should contain one argument per line.
    
           •   **--silent** , **-s**
    
               Suppress all normal output.
    
           •   **--sleep=**_num_ , **-T** _num_
    
               Cause all sleep commands in the test case file to sleep _num_
               seconds. This option does not affect real_sleep commands.
    
               An option value of 0 can be used, which effectively disables
               sleep commands in the test case.
    
           •   **--socket=**_path_ , **-S** _path_
    
               The socket file to use when connecting to localhost (which is
               the default host).
    
           •   **--sp-protocol**
    
               Execute DML statements within a stored procedure. For every
               DML statement, **mariadb-test** creates and invokes a stored
               procedure that executes the statement rather than executing
               the statement directly.
    
           •   **--ssl**
    
               Enable SSL for connection (automatically enabled with other
               flags). Disable with **--skip-ssl**.
    
           •   **--ssl-ca=**_name_
    
               CA file in PEM format (check OpenSSL docs, implies **--ssl**).
    
           •   **--ssl-capath=**_name_
    
               CA directory (check OpenSSL docs, implies **--ssl**).
    
           •   **--ssl-cert=**_name_
    
               X509 cert in PEM format (check OpenSSL docs, implies **--ssl**).
    
           •   **--ssl-cipher=**_name_
    
               SSL cipher to use (check OpenSSL docs, implies **--ssl**).
    
           •   **--ssl-key=**_name_
    
               X509 key in PEM format (check OpenSSL docs, implies **--ssl**).
    
           •   **--ssl-crl=**_name_
    
               Certificate revocation list (check OpenSSL docs, implies
               **--ssl**).
    
           •   **--ssl-crlpath=**_name_
    
               Certificate revocation list path (check OpenSSL docs, implies
               **--ssl**).
    
           •   **--ssl-verify-server-cert**
    
               Verify server's "Common Name" in its cert against hostname
               used when connecting. This option is disabled by default.
    
           •   **--suite-dir=**_dir_name_
    
               Suite directory.
    
           •   **--tail-lines=**_nn_
    
               Specify how many lines of the result to include in the output
               if the test fails because an SQL statement fails. The default
               is 0, meaning no lines of result printed.
    
           •   **--test-file=**_file_name_ , **-x** _file_name_
    
               Read test input from this file. The default is to read from
               the standard input.
    
           •   **--timer-file=**_file_name_ , **-m** _file_name_
    
               If given, the number of microseconds spent running the test
               will be written to this file. This is used by
               **mariadb-test-run.pl** for its reporting.
    
           •   **--tmpdir=**_dir_name_ , **-t** _dir_name_
    
               The temporary directory where socket files are created.
    
           •   **--user=**_user_name_ , **-u** _user_name_
    
               The MariaDB user name to use when connecting to the server.
    
           •   **--verbose** , **-v**
    
               Verbose mode. Print out more information about what the
               program does.
    
           •   **--version** , **-V**
    
               Display version information and exit.
    
           •   **--view-protocol**
    
               Every SELECT statement is wrapped inside a view.
    


* * *