mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-25004 restart_bindir option to restart server from different location
Adds new parameter $restart_bindir for restart_mysqld.inc. Example: let $restart_bindir= /home/midenok/src/mariadb/10.3b/build; --source include/restart_mysqld.inc It is good to return back original server before check_mysqld will be run at the test end: let $restart_bindir=; --source include/restart_mysqld.inc
This commit is contained in:
@ -1,13 +1,44 @@
|
|||||||
# Include this script only after using shutdown_mysqld.inc
|
# Include this script only after using shutdown_mysqld.inc
|
||||||
# where $_expect_file_name was initialized.
|
# where $_expect_file_name was initialized.
|
||||||
# Write file to make mysql-test-run.pl start up the server again
|
# Write file to make mysql-test-run.pl start up the server again
|
||||||
|
|
||||||
|
# restart_noprint defines how much is printed to the .result file
|
||||||
|
# if 0 (default) then '# result' and restart_parameters are printed
|
||||||
|
# if 1 then print #result but not the content of restart_parameters
|
||||||
|
# if 2 then nothing is printed
|
||||||
|
|
||||||
|
if (!$restart_noprint)
|
||||||
|
{
|
||||||
|
--let $restart_noprint= 2
|
||||||
|
}
|
||||||
|
|
||||||
|
--let $restart_cmd= restart
|
||||||
|
|
||||||
|
if ($restart_bindir)
|
||||||
|
{
|
||||||
|
--let $restart_cmd= restart_bindir $restart_bindir
|
||||||
|
}
|
||||||
|
|
||||||
if ($restart_parameters)
|
if ($restart_parameters)
|
||||||
{
|
{
|
||||||
--exec echo "restart: $restart_parameters" > $_expect_file_name
|
--exec echo "$restart_cmd: $restart_parameters" > $_expect_file_name
|
||||||
|
if (!$restart_noprint)
|
||||||
|
{
|
||||||
|
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||||
|
--exec echo "# $restart_cmd: $restart_parameters"
|
||||||
|
}
|
||||||
|
if ($restart_noprint == 1)
|
||||||
|
{
|
||||||
|
--exec echo "# $restart_cmd: with restart_parameters"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!$restart_parameters)
|
if (!$restart_parameters)
|
||||||
{
|
{
|
||||||
--exec echo "restart" > $_expect_file_name
|
--exec echo "$restart_cmd" > $_expect_file_name
|
||||||
|
if ($restart_noprint < 2)
|
||||||
|
{
|
||||||
|
--exec echo "# $restart_cmd"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Turn on reconnect
|
# Turn on reconnect
|
||||||
@ -18,4 +49,3 @@ if (!$restart_parameters)
|
|||||||
|
|
||||||
# Turn off reconnect again
|
# Turn off reconnect again
|
||||||
--disable_reconnect
|
--disable_reconnect
|
||||||
|
|
||||||
|
@ -1963,7 +1963,7 @@ sub collect_mysqld_features_from_running_server ()
|
|||||||
|
|
||||||
sub find_mysqld {
|
sub find_mysqld {
|
||||||
|
|
||||||
my ($mysqld_basedir)= $ENV{MTR_BINDIR}|| @_;
|
my ($mysqld_basedir)= $ENV{MTR_BINDIR_FORCED} || $ENV{MTR_BINDIR} || @_;
|
||||||
|
|
||||||
my @mysqld_names= ("mysqld", "mysqld-max-nt", "mysqld-max",
|
my @mysqld_names= ("mysqld", "mysqld-max-nt", "mysqld-max",
|
||||||
"mysqld-nt");
|
"mysqld-nt");
|
||||||
@ -1974,7 +1974,7 @@ sub find_mysqld {
|
|||||||
unshift(@mysqld_names, "mysqld-debug");
|
unshift(@mysqld_names, "mysqld-debug");
|
||||||
}
|
}
|
||||||
|
|
||||||
return my_find_bin($bindir,
|
return my_find_bin($mysqld_basedir,
|
||||||
["sql", "libexec", "sbin", "bin"],
|
["sql", "libexec", "sbin", "bin"],
|
||||||
[@mysqld_names]);
|
[@mysqld_names]);
|
||||||
}
|
}
|
||||||
@ -4789,6 +4789,7 @@ sub check_expected_crash_and_restart {
|
|||||||
mtr_verbose("Test says wait before restart") if $waits == 0;
|
mtr_verbose("Test says wait before restart") if $waits == 0;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
delete $ENV{MTR_BINDIR_FORCED};
|
||||||
|
|
||||||
# Ignore any partial or unknown command
|
# Ignore any partial or unknown command
|
||||||
next unless $last_line =~ /^restart/;
|
next unless $last_line =~ /^restart/;
|
||||||
@ -4796,7 +4797,13 @@ sub check_expected_crash_and_restart {
|
|||||||
# extra command line options to add to the restarted mysqld.
|
# extra command line options to add to the restarted mysqld.
|
||||||
# Anything other than 'wait' or 'restart:' (with a colon) will
|
# Anything other than 'wait' or 'restart:' (with a colon) will
|
||||||
# result in a restart with original mysqld options.
|
# result in a restart with original mysqld options.
|
||||||
if ($last_line =~ /restart:(.+)/) {
|
if ($last_line =~ /restart_bindir\s+(\S+)(:.+)?/) {
|
||||||
|
$ENV{MTR_BINDIR_FORCED}= $1;
|
||||||
|
if ($2) {
|
||||||
|
my @rest_opt= split(' ', $2);
|
||||||
|
$mysqld->{'restart_opts'}= \@rest_opt;
|
||||||
|
}
|
||||||
|
} elsif ($last_line =~ /restart:(.+)/) {
|
||||||
my @rest_opt= split(' ', $1);
|
my @rest_opt= split(' ', $1);
|
||||||
$mysqld->{'restart_opts'}= \@rest_opt;
|
$mysqld->{'restart_opts'}= \@rest_opt;
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user