Please, enlighten me on what being in a separate suite means! I
see there is a suite directory in mysql-test. Will the suites be
run by default when I use 'mtr' to run tests? Or do I have to add
them manually?
=========================================
The number of tests we have for MySQL Server are constantly
growing. There is a need to group them in different ways so we
can select what and where to run. We do this by using suites,
either the default suite that we call "main" in mysql-test/t or
one of the subdirs of mysql-test/suite.
As each test becomes more advanced it's also necessary to use
different configurations for a particular test or suite. For
example all the replication tests in suite/rpl need to be run
with the server started in three different ways(three different
configurations) to get full coverage. To avoid that the
individual developer or the "one" running tests have to remember
different …
There are now two ways how to do this:
1. Using "set debug=d,flag" and adding some
DBUG_EXECUTE_IF("flag", abort()) we can trigger the server to
crash at a specific place in the code. There is an example of
this in crash_commit_before.test
This requires a debug compiled server so you need to add a
"source include/have_debug.inc" at the beginning of the
test.
2. There is also a new way to do it without using DBUG_. By using
the new command in mysqltest called "shutdown_server"[1], we will
tell the server to stop, wait a while(60 seconds) and finally
kill it off. This way we get a reliable shutdown. The first
testcase that uses this is events_restart.test
In both of these methods, the testcase has to write a small file
before the "crash/shutdown", that file tells mysql-test-run.pl
that it was an expected crash/shutdown. The server will be
started up again with the same settings as before …