mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Bug#19535 mysql-test-run cannot handle crashing test cases
- Make mysql-test-run.pl restart a crashed/stopped process if it was expected it should crash. - Added testcase for "crash_commit_before", which tests behaviour when server crashes just before commit. * The testcase first write a small var/tmp/master0.expect file indicating expected crash * Then sets "DEBUG" variable to for example "d,crash_commit_before" and then executes a commit. * The server will crash and be brought back up by mysql-test-run.pl * Test case will then wait for the process to come back online before continuing. client/mysqltest.c: Add "die" command used to abort a failing test case Remove unused "exit" command mysql-test/lib/mtr_process.pl: When a process crash during execution of mysqltest, check if it was expected and restart the process in that case. mysql-test/mysql-test-run.pl: Remmeber options used when ndbd's and mysqld's was started, to be used by restart code mysql-test/r/crash_commit_before.result: New BitKeeper file ``mysql-test/r/crash_commit_before.result'' mysql-test/include/wait_until_connected_again.inc: New BitKeeper file ``mysql-test/include/wait_until_connected_again.inc'' mysql-test/t/crash_commit_before.test: New BitKeeper file ``mysql-test/t/crash_commit_before.test''
This commit is contained in:
22
mysql-test/t/crash_commit_before.test
Normal file
22
mysql-test/t/crash_commit_before.test
Normal file
@ -0,0 +1,22 @@
|
||||
--source include/have_debug.inc
|
||||
|
||||
CREATE TABLE t1(a int) engine=innodb;
|
||||
START TRANSACTION;
|
||||
insert into t1 values(9);
|
||||
|
||||
# Setup the mysqld to crash at certain point
|
||||
SET SESSION debug="d,crash_commit_before";
|
||||
|
||||
# Write file to make mysql-test-run.pl expect crash and restart
|
||||
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/master0.expect
|
||||
|
||||
# Run the crashing query
|
||||
--error 2013
|
||||
COMMIT;
|
||||
|
||||
# Call script that will poll the server waiting for it to be back online again
|
||||
--source include/wait_until_connected_again.inc
|
||||
|
||||
SHOW CREATE TABLE t1;
|
||||
|
||||
SELECT * FROM t1;
|
Reference in New Issue
Block a user