2017-10-09 00:43:31 +02:00
|
|
|
This directory contains test suites for the MariaDB server. To run
|
|
|
|
currently existing test cases, execute ./mysql-test-run in this directory.
|
2006-03-02 00:37:07 +01:00
|
|
|
|
2017-10-09 00:43:31 +02:00
|
|
|
Some tests are known to fail on some platforms or be otherwise unreliable.
|
2021-06-11 14:58:50 +02:00
|
|
|
In the file collections/smoke_test there is a list of tests that are
|
|
|
|
expected to be stable.
|
2000-12-14 02:23:55 +01:00
|
|
|
|
2024-08-13 12:04:44 +02:00
|
|
|
In general you do not have to do "make install", and you can have
|
2017-10-09 00:43:31 +02:00
|
|
|
a co-existing MariaDB installation, the tests will not conflict with it.
|
|
|
|
To run the tests in a source directory, you must do "make" first.
|
|
|
|
|
|
|
|
In Red Hat distributions, you should run the script as user "mysql".
|
|
|
|
The user is created with nologin shell, so the best bet is something like
|
|
|
|
# su -
|
2022-12-12 04:20:08 +01:00
|
|
|
# cd /usr/share/mariadb-test
|
2021-06-11 14:58:50 +02:00
|
|
|
# su -s /bin/bash mysql -c ./mysql-test-run
|
2017-10-09 00:43:31 +02:00
|
|
|
|
2017-10-09 01:49:50 +02:00
|
|
|
This will use the installed MariaDB executables, but will run a private
|
2022-12-12 04:20:08 +01:00
|
|
|
copy of the server process (using data files within /usr/share/mariadb-test),
|
2017-10-09 00:43:31 +02:00
|
|
|
so you need not start the mysqld service beforehand.
|
|
|
|
|
2017-10-09 01:49:50 +02:00
|
|
|
You can omit --skip-test-list option if you want to check whether
|
|
|
|
the listed failures occur for you.
|
2017-10-09 00:43:31 +02:00
|
|
|
|
|
|
|
To clean up afterwards, remove the created "var" subdirectory, e.g.
|
2022-12-12 04:20:08 +01:00
|
|
|
# su -s /bin/bash - mysql -c "rm -rf /usr/share/mariadb-test/var"
|
2017-10-09 00:43:31 +02:00
|
|
|
|
2021-06-11 14:58:50 +02:00
|
|
|
If tests fail on your system, please read the following manual section
|
2017-10-09 00:43:31 +02:00
|
|
|
for instructions on how to report the problem:
|
2001-03-10 16:05:10 +01:00
|
|
|
|
2016-03-08 14:24:01 +01:00
|
|
|
https://mariadb.com/kb/en/reporting-bugs
|
2001-03-10 16:05:10 +01:00
|
|
|
|
2006-03-02 01:37:41 +01:00
|
|
|
If you want to use an already running MySQL server for specific tests,
|
|
|
|
use the --extern option to mysql-test-run. Please note that in this mode,
|
2017-10-09 00:43:31 +02:00
|
|
|
you are expected to provide names of the tests to run.
|
|
|
|
|
2006-03-02 01:37:41 +01:00
|
|
|
For example, here is the command to run the "alias" and "analyze" tests
|
|
|
|
with an external server:
|
|
|
|
|
2022-12-12 04:20:08 +01:00
|
|
|
# mariadb-test-run --extern socket=/tmp/mysql.sock alias analyze
|
2006-03-02 01:37:41 +01:00
|
|
|
|
2017-10-09 00:43:31 +02:00
|
|
|
To match your setup, you might need to provide other relevant options.
|
2006-03-02 01:37:41 +01:00
|
|
|
|
2017-10-09 00:43:31 +02:00
|
|
|
With no test names on the command line, mysql-test-run will attempt
|
|
|
|
to execute the default set of tests, which will certainly fail, because
|
|
|
|
many tests cannot run with an external server (they need to control the
|
|
|
|
options with which the server is started, restart the server during
|
|
|
|
execution, etc.)
|
2006-03-02 01:37:41 +01:00
|
|
|
|
|
|
|
You can create your own test cases. To create a test case, create a new
|
2019-07-31 11:51:20 +02:00
|
|
|
file in the main subdirectory using a text editor. The file should have a .test
|
2006-03-02 01:37:41 +01:00
|
|
|
extension. For example:
|
2000-12-14 02:23:55 +01:00
|
|
|
|
2017-10-09 00:43:31 +02:00
|
|
|
# xemacs t/test_case_name.test
|
2000-12-14 02:23:55 +01:00
|
|
|
|
2017-10-09 00:43:31 +02:00
|
|
|
In the file, put a set of SQL statements that create some tables,
|
|
|
|
load test data, and run some queries to manipulate it.
|
2000-12-14 02:23:55 +01:00
|
|
|
|
2017-10-09 00:43:31 +02:00
|
|
|
Your test should begin by dropping the tables you are going to create and
|
2019-07-31 11:51:20 +02:00
|
|
|
end by dropping them again. This ensures that you can run the test over
|
2017-10-09 00:43:31 +02:00
|
|
|
and over again.
|
2001-01-04 01:56:38 +01:00
|
|
|
|
2017-10-09 00:43:31 +02:00
|
|
|
If you are using mysqltest commands in your test case, you should create
|
|
|
|
the result file as follows:
|
2000-12-15 15:12:31 +01:00
|
|
|
|
2022-12-12 04:20:08 +01:00
|
|
|
# mariadb-test-run --record test_case_name
|
2000-12-16 00:17:13 +01:00
|
|
|
|
2017-10-09 00:43:31 +02:00
|
|
|
or
|
2000-12-16 00:17:13 +01:00
|
|
|
|
2022-12-12 04:20:08 +01:00
|
|
|
# mariadb-test --record < t/test_case_name.test
|
2000-12-15 15:12:31 +01:00
|
|
|
|
2017-10-09 00:43:31 +02:00
|
|
|
If you only have a simple test case consisting of SQL statements and
|
|
|
|
comments, you can create the result file in one of the following ways:
|
2000-12-15 15:12:31 +01:00
|
|
|
|
2022-12-12 04:20:08 +01:00
|
|
|
# mariadb-test-run --record test_case_name
|
2000-12-16 00:17:13 +01:00
|
|
|
|
2022-12-12 04:20:08 +01:00
|
|
|
# mariadb test < t/test_case_name.test > r/test_case_name.result
|
2000-12-15 15:12:31 +01:00
|
|
|
|
2022-12-12 04:20:08 +01:00
|
|
|
# mariadb-test --record --database test --result-file=r/test_case_name.result < t/test_case_name.test
|
2000-12-15 15:12:31 +01:00
|
|
|
|
2019-07-31 11:51:20 +02:00
|
|
|
When this is done, take a look at r/test_case_name.result.
|
2017-10-09 00:43:31 +02:00
|
|
|
If the result is incorrect, you have found a bug. In this case, you should
|
|
|
|
edit the test result to the correct results so that we can verify that
|
|
|
|
the bug is corrected in future releases.
|
2000-12-14 02:23:55 +01:00
|
|
|
|
2020-04-05 12:13:54 +02:00
|
|
|
If you want to submit your test case you can send it
|
2023-11-27 14:31:45 +01:00
|
|
|
to developers@lists.mariadb.org or attach it to a bug report on
|
2012-06-18 23:29:05 +02:00
|
|
|
http://mariadb.org/jira/.
|
2011-01-04 14:47:21 +01:00
|
|
|
|
|
|
|
If the test case is really big or if it contains 'not public' data,
|
|
|
|
then put your .test file and .result file(s) into a tar.gz archive,
|
|
|
|
add a README that explains the problem, ftp the archive to
|
2022-12-12 06:23:30 +01:00
|
|
|
ftp://ftp.mariadb.org/private and submit a report to
|
2020-04-05 12:13:54 +02:00
|
|
|
https://mariadb.org/jira about it.
|
2017-01-05 13:36:44 +01:00
|
|
|
|
|
|
|
The latest information about mysql-test-run can be found at:
|
|
|
|
https://mariadb.com/kb/en/mariadb/mysqltest/
|
|
|
|
|
|
|
|
If you want to create .rdiff files, check
|
|
|
|
https://mariadb.com/kb/en/mariadb/mysql-test-auxiliary-files/
|