Back to home page

MySQL Cross Reference

 
 

    


0001 This directory contains a test suite for the MySQL daemon. To run
0002 the currently existing test cases, simply execute ./mysql-test-run in
0003 this directory. It will fire up the newly built mysqld and test it.
0004 
0005 Note that you do not have to have to do "make install", and you could
0006 actually have a co-existing MySQL installation. The tests will not
0007 conflict with it.
0008 
0009 All tests must pass. If one or more of them fail on your system, please
0010 read the following manual section for instructions on how to report the
0011 problem:
0012 
0013 http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html
0014 
0015 If you want to use an already running MySQL server for specific tests,
0016 use the --extern option to mysql-test-run. Please note that in this mode,
0017 the test suite expects you to provide the names of the tests to run.
0018 For example, here is the command to run the "alias" and "analyze" tests
0019 with an external server:
0020 
0021 mysql-test-run --extern alias analyze
0022 
0023 To match your setup, you might also need to provide --socket, --user, and
0024 other relevant options.
0025 
0026 With no test cases named on the command line, mysql-test-run falls back
0027 to the normal "non-extern" behavior. The reason for this is that some
0028 tests cannot run with an external server.
0029 
0030 
0031 You can create your own test cases. To create a test case, create a new
0032 file in the t subdirectory using a text editor. The file should have a .test
0033 extension. For example:
0034 
0035  xemacs t/test_case_name.test
0036 
0037  In the file, put a set of SQL statements that create some tables,
0038  load test data, and run some queries to manipulate it.
0039 
0040  We would appreciate it if you name your test tables t1, t2, t3 ... (to not
0041  conflict too much with existing tables).
0042 
0043  Your test should begin by dropping the tables you are going to create and
0044  end by dropping them again.  This ensures that you can run the test over
0045  and over again.
0046  
0047  If you are using mysqltest commands (like result file names) in your
0048  test case, you should create the result file as follows:
0049 
0050  mysql-test-run --record test_case_name
0051 
0052  or
0053 
0054  mysqltest --record < t/test_case_name.test
0055 
0056  If you only have a simple test cases consisting of SQL statements and
0057  comments, you can create the test case in one of the following ways:
0058 
0059  mysql-test-run --record test_case_name
0060 
0061  mysql test < t/test_case_name.test > r/test_case_name.result
0062 
0063  mysqltest --record --record-file=r/test_case_name.result < t/test_case_name.test
0064 
0065  When this is done, take a look at r/test_case_name.result
0066  - If the result is incorrect, you have found a bug. In this case, you should
0067    edit the test result to the correct results so that we can verify
0068    that the bug is corrected in future releases.
0069 
0070 To submit your test case, put your .test file and .result file(s) into
0071 a tar.gz archive, add a README that explains the problem, ftp the 
0072 archive to ftp://support.mysql.com/pub/mysql/secret/ and send a mail
0073 to bugs@lists.mysql.com