mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			100 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| This directory contains test suites for the MariaDB server. To run
 | |
| currently existing test cases, execute ./mysql-test-run in this directory.
 | |
| 
 | |
| Some tests are known to fail on some platforms or be otherwise unreliable.
 | |
| In the file collections/smoke_test there is a list of tests that are
 | |
| expected to be stable.
 | |
| 
 | |
| In general you do not have to have to do "make install", and you can have
 | |
| 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 -
 | |
|   # cd /usr/share/mysql-test
 | |
|   # su -s /bin/bash mysql -c ./mysql-test-run
 | |
| 
 | |
| This will use the installed MariaDB executables, but will run a private
 | |
| copy of the server process (using data files within /usr/share/mysql-test),
 | |
| so you need not start the mysqld service beforehand.
 | |
| 
 | |
| You can omit --skip-test-list option if you want to check whether
 | |
| the listed failures occur for you.
 | |
| 
 | |
| To clean up afterwards, remove the created "var" subdirectory, e.g.
 | |
|   # su -s /bin/bash - mysql -c "rm -rf /usr/share/mysql-test/var"
 | |
| 
 | |
| If tests fail on your system, please read the following manual section
 | |
| for instructions on how to report the problem:
 | |
| 
 | |
| https://mariadb.com/kb/en/reporting-bugs
 | |
| 
 | |
| 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,
 | |
| you are expected to provide names of the tests to run.
 | |
| 
 | |
| For example, here is the command to run the "alias" and "analyze" tests
 | |
| with an external server:
 | |
| 
 | |
|   # mysql-test-run --extern socket=/tmp/mysql.sock alias analyze
 | |
| 
 | |
| To match your setup, you might need to provide other relevant options.
 | |
| 
 | |
| 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.)
 | |
| 
 | |
| You can create your own test cases. To create a test case, create a new
 | |
| file in the main subdirectory using a text editor. The file should have a .test
 | |
| extension. For example:
 | |
| 
 | |
|   # xemacs t/test_case_name.test
 | |
| 
 | |
| In the file, put a set of SQL statements that create some tables,
 | |
| load test data, and run some queries to manipulate it.
 | |
| 
 | |
| Your test should begin by dropping the tables you are going to create and
 | |
| end by dropping them again. This ensures that you can run the test over
 | |
| and over again.
 | |
| 
 | |
| If you are using mysqltest commands in your test case, you should create
 | |
| the result file as follows:
 | |
| 
 | |
|   # mysql-test-run --record test_case_name
 | |
| 
 | |
|   or
 | |
| 
 | |
|   # mysqltest --record < t/test_case_name.test
 | |
| 
 | |
| 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:
 | |
| 
 | |
|   # mysql-test-run --record test_case_name
 | |
| 
 | |
|   # mysql test < t/test_case_name.test > r/test_case_name.result
 | |
| 
 | |
|   # mysqltest --record --database test --result-file=r/test_case_name.result < t/test_case_name.test
 | |
| 
 | |
| When this is done, take a look at r/test_case_name.result.
 | |
| 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.
 | |
| 
 | |
| If you want to submit your test case you can send it
 | |
| to developers@lists.mariadb.org or attach it to a bug report on
 | |
| http://mariadb.org/jira/.
 | |
| 
 | |
| 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
 | |
| ftp://ftp.mariadb.org/private and submit a report to
 | |
| https://mariadb.org/jira about it.
 | |
| 
 | |
| 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/
 | 
