mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
Bug#43983 Support force restart of all servers after test ended
- Some tests need to modify the server(s) so much that a total restart of all servers are necessary after test. Make it possible for a test to signal it want mtr.pl to restart all servers.
This commit is contained in:
parent
e66ad2e8c6
commit
ce65f283a5
2 changed files with 35 additions and 1 deletions
|
@ -57,3 +57,13 @@ BEGIN
|
|||
mysql.user;
|
||||
|
||||
END||
|
||||
|
||||
--
|
||||
-- Procedure used by test case used to force all
|
||||
-- servers to restart after testcase and thus skipping
|
||||
-- check test case after test
|
||||
--
|
||||
CREATE DEFINER=root@localhost PROCEDURE force_restart()
|
||||
BEGIN
|
||||
SELECT 1 INTO OUTFILE 'force_restart';
|
||||
END||
|
||||
|
|
|
@ -3067,6 +3067,26 @@ sub find_analyze_request
|
|||
}
|
||||
|
||||
|
||||
# The test can leave a file in var/tmp/ to signal
|
||||
# that all servers should be restarted
|
||||
sub restart_forced_by_test
|
||||
{
|
||||
my $restart = 0;
|
||||
foreach my $mysqld ( mysqlds() )
|
||||
{
|
||||
my $datadir = $mysqld->value('datadir');
|
||||
my $force_restart_file = "$datadir/mtr/force_restart";
|
||||
if ( -f $force_restart_file )
|
||||
{
|
||||
mtr_verbose("Restart of servers forced by test");
|
||||
$restart = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
return $restart;
|
||||
}
|
||||
|
||||
|
||||
# Return timezone value of tinfo or default value
|
||||
sub timezone {
|
||||
my ($tinfo)= @_;
|
||||
|
@ -3235,7 +3255,11 @@ sub run_testcase ($) {
|
|||
if ( $res == 0 )
|
||||
{
|
||||
my $check_res;
|
||||
if ( $opt_check_testcases and
|
||||
if ( restart_forced_by_test() )
|
||||
{
|
||||
stop_all_servers();
|
||||
}
|
||||
elsif ( $opt_check_testcases and
|
||||
$check_res= check_testcase($tinfo, "after"))
|
||||
{
|
||||
if ($check_res == 1) {
|
||||
|
|
Loading…
Add table
Reference in a new issue