mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03: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:
@ -57,3 +57,13 @@ BEGIN
|
|||||||
mysql.user;
|
mysql.user;
|
||||||
|
|
||||||
END||
|
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
|
# Return timezone value of tinfo or default value
|
||||||
sub timezone {
|
sub timezone {
|
||||||
my ($tinfo)= @_;
|
my ($tinfo)= @_;
|
||||||
@ -3235,7 +3255,11 @@ sub run_testcase ($) {
|
|||||||
if ( $res == 0 )
|
if ( $res == 0 )
|
||||||
{
|
{
|
||||||
my $check_res;
|
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"))
|
$check_res= check_testcase($tinfo, "after"))
|
||||||
{
|
{
|
||||||
if ($check_res == 1) {
|
if ($check_res == 1) {
|
||||||
|
Reference in New Issue
Block a user