4.1 Writing a Test Case: Quick Start

The basic principle of test case evaluation is that output
resulting from running a test case is compared to the expected
result. This is just a diff comparison between
the output and an expected-result file that the test writer
provides. This simplistic method of comparison does not by itself
provide any way to handle variation in the output that may occur
when a test is run at different times. However, the test language
provides commands for postprocessing result output before the
comparison occurs. This enables you to manage certain forms of
expected variation.

Use the following procedure to write a new test case. In the
examples, test_name represents the name
of the test case. It is assumed here that you'll be using a
development source tree, so that when you create a new test case,
you can commit the files associated with it to the source
repository for others to use.

Change location to the test directory
mysql-version/mysql-test:

shell> cd mysql-version/mysql-test

mysql-version
represents the root directory of your source tree, such as
mysql-5.0 or
mysql-5.1.

Assuming that the test case produces output, it should fail
because the output does not match the result file (which is
empty at this point). The failure results in creation of a
reject file named
r/test_name.reject.
Examine this file. If the reject file appears to contain the
output that you expect the test case to produce, copy its
content to the result file:

shell> cp r/test_name.reject r/test_name.result

Another way to create the result file is by invoking
mysql-test-run.pl with the
--record option to record the test output in
the result file:

shell> ./mysql-test-run.pl --record test_name

Run the test again. This time it should succeed:

shell> ./mysql-test-run.pl test_name

You can also run the newly created test case as part of the
entire suite: