1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +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:
Aleksey Midenkov
2022-12-27 00:02:01 +03:00
parent 5d506ac201
commit 68c437bad6
2 changed files with 43 additions and 6 deletions

View File

@ -1963,7 +1963,7 @@ sub collect_mysqld_features_from_running_server ()
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",
"mysqld-nt");
@ -1974,7 +1974,7 @@ sub find_mysqld {
unshift(@mysqld_names, "mysqld-debug");
}
return my_find_bin($bindir,
return my_find_bin($mysqld_basedir,
["sql", "libexec", "sbin", "bin"],
[@mysqld_names]);
}
@ -4789,6 +4789,7 @@ sub check_expected_crash_and_restart {
mtr_verbose("Test says wait before restart") if $waits == 0;
next;
}
delete $ENV{MTR_BINDIR_FORCED};
# Ignore any partial or unknown command
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.
# Anything other than 'wait' or 'restart:' (with a colon) will
# 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);
$mysqld->{'restart_opts'}= \@rest_opt;
} else {