1This directory includes a set of three test suites aimed as testing
2functionality in an engine independent way, that is - the tests should
3work identically against different engines.
4
5If you are an engine writer and wants to test if your engine is compatible with
6other engines in MariaDB, you should instead of using this test suite use
7the storage_engine test suite which is more suitable for that purpose.
8
9
10The following suites are included:
11
121) 'funcs' suite
13   -------------
14   A collection of functional tests covering basic engine and server
15   functionality that can be run against any engine.
16
17   To run the test suite:
18      cd INSTALL_DIR/mysql-test
19      run: perl ./mysql-test-run.pl --suite=engines/funcs --mysqld=--default-storage-engine=<engine>
20
212) 'iuds' suite
22   ------------
23   Similar to the above focused on insert/update/delete operations of different data types.
24
25   To run the test suite:
26      cd INSTALL_DIR/mysql-test
27      run: perl ./mysql-test-run.pl --suite=engines/iuds --mysqld=--default-storage-engine=<engine>
28
293) 'rr_trx' suite (transactional engines only)
30   --------------
31   A scenario of multiple client connections verifying transactions with repeatable read isolation level
32
33   To run the test suite with innodb:
34      cd INSTALL_DIR/mysql-test
35      run: perl ./suite/engines/rr_trx/run_stress_tx_rr.pl --engine=<engine> [--duration=<nn>]
36                                                          [--threads=<nn>] [--try] [--help]
37
38   This test is can be run against any transactional engine. However scripts need to be modified in order
39   to support such engines (current scripts support only InnoDB).
40   In order to add support for a new engine, you will need to modify scripts as follows:
41   1) cd to INSTALL_DIR/mysql-test/suite/engines/rr_trx
42   2) Modify the 'run_stress_rr.pl' file by adding an 'elsif' section for your engine and have it
43      include specific values required to be passed as startup parameters to the MySQL server by
44      specifying them using "--mysqld" options (see InnoDB example).
45   3) Copy the 'init_innodb.txt' file to 'init_<engine>.txt file and change its content to be "init_<engine>".
46   4) In the 't' directory copy the "init_innodb.test" file to "init_<engine>.test" and change the value of
47      the '$engine' variable to <engine>.
48   5) In the 'r' directory copy "the init_innodb.result" file to "init_<engine>.result" and change references
49      to 'InnoDB' to <engine>.
50
51
52Known Issues
53------------
541) The following tests in the 'iuds' suite:
55     - delete_decimal
56     - insert_decimal
57     - update_decimal
58   will return a 'Warning 1264 - Out of range value...' warning if run in a 32-bit environment.
59   Add the '--force' option to prevent the test run from aborting.
60
612) The following tests in the 'funcs' suite will fail when run against the innodb_plugin:
62   - crash_manycolumns_string (bug 50495)
63   - ix_unique_lob (bug 52056, masked by an 'Out of memory error' on some 32-bit platforms)
64   - ix_unique_string_length (bug 52056, masked by an 'Out of memory error' on some 32-bit platforms)
65   Add the '--force' option to prevent the test run from aborting.
66
673) Some of the rpl_xxx tests in the 'funcs' suite require a specific
68   binlog_format setting and will be skipped otherwise.
69
704) Some of the rpl_xxx tests in the 'funcs' suite will report a
71   'Statement unsafe for replication' warning when run against a
72   server configured to use statement based replication.
73