diff options
Diffstat (limited to 'mysql-test')
20 files changed, 325 insertions, 140 deletions
diff --git a/mysql-test/suite/mariabackup/include/have_file_key_management.inc b/mysql-test/include/have_file_key_management.inc index 06fbb510d6b..06fbb510d6b 100644 --- a/mysql-test/suite/mariabackup/include/have_file_key_management.inc +++ b/mysql-test/include/have_file_key_management.inc diff --git a/mysql-test/suite/galera/include/have_mariabackup.inc b/mysql-test/include/have_garbd.inc index 0dd693f2c63..0dd693f2c63 100644 --- a/mysql-test/suite/galera/include/have_mariabackup.inc +++ b/mysql-test/include/have_garbd.inc diff --git a/mysql-test/include/have_mariabackup.inc b/mysql-test/include/have_mariabackup.inc new file mode 100644 index 00000000000..0dd693f2c63 --- /dev/null +++ b/mysql-test/include/have_mariabackup.inc @@ -0,0 +1,4 @@ +# +# suite.pm will make sure that all tests including this file +# will be skipped as needed +# diff --git a/mysql-test/lib/My/SafeProcess.pm b/mysql-test/lib/My/SafeProcess.pm index 19f2893ea51..de63218d441 100644 --- a/mysql-test/lib/My/SafeProcess.pm +++ b/mysql-test/lib/My/SafeProcess.pm @@ -100,6 +100,8 @@ else $bindir = getcwd(); } +our $wsrep_check_version; + # Find the safe process binary or script sub find_bin { if (IS_WIN32PERL or IS_CYGWIN) @@ -119,6 +121,10 @@ sub find_bin { "my_safe_process"); push(@safe_process_cmd, $exe); } + # Wsrep version check utility: + $wsrep_check_version= + my_find_bin($bindir, "lib/My/SafeProcess", "wsrep_check_version", + NOT_REQUIRED); } diff --git a/mysql-test/lib/My/SafeProcess/CMakeLists.txt b/mysql-test/lib/My/SafeProcess/CMakeLists.txt index a71f5d8ca36..28c6ebfaf93 100644 --- a/mysql-test/lib/My/SafeProcess/CMakeLists.txt +++ b/mysql-test/lib/My/SafeProcess/CMakeLists.txt @@ -14,7 +14,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA - IF (WIN32) +IF (WIN32) ADD_EXECUTABLE(my_safe_process safe_process_win.cc) ADD_EXECUTABLE(my_safe_kill safe_kill_win.cc) TARGET_LINK_LIBRARIES(my_safe_kill dbghelp psapi) @@ -22,6 +22,11 @@ ELSE() ADD_EXECUTABLE(my_safe_process safe_process.cc) ENDIF() +IF(WITH_WSREP) + ADD_EXECUTABLE(wsrep_check_version wsrep_check_version.c) + TARGET_LINK_LIBRARIES(wsrep_check_version ${LIBDL}) +ENDIF() + IF(NOT INSTALL_MYSQLTESTDIR) RETURN() ENDIF() diff --git a/mysql-test/lib/My/SafeProcess/wsrep_check_version.c b/mysql-test/lib/My/SafeProcess/wsrep_check_version.c new file mode 100644 index 00000000000..cec760738be --- /dev/null +++ b/mysql-test/lib/My/SafeProcess/wsrep_check_version.c @@ -0,0 +1,123 @@ +/* Copyright (c) 2009, 2019, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <errno.h> + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef _WIN32 +#include <windows.h> +#define dlsym(lib, name) GetProcAddress((HMODULE)lib, name) +#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0) +#define dlclose(lib) FreeLibrary((HMODULE)lib) +#elif defined(HAVE_DLFCN_H) +#include <dlfcn.h> +#else +#define NO_DLL +#endif + +#ifndef NO_DLL + +#include "../../../../wsrep/wsrep_api.h" + +/************************************************************************** + * Library loader + **************************************************************************/ + +static int wsrep_check_iface_version(const char *found, const char *iface_ver) +{ + if (strcmp(found, iface_ver)) { + return ERANGE; + } + return 0; +} + +typedef int (*wsrep_loader_fun)(wsrep_t*); + +static wsrep_loader_fun wsrep_dlf(void *dlh, const char *sym) +{ + union { + wsrep_loader_fun dlfun; + void *obj; + } alias; + alias.obj = dlsym(dlh, sym); + return alias.dlfun; +} + +static int wsrep_check_version_symbol(void *dlh) +{ + char** dlversion = NULL; + dlversion = (char**) dlsym(dlh, "wsrep_interface_version"); + if (dlversion == NULL) + return EINVAL; + return wsrep_check_iface_version(*dlversion, WSREP_INTERFACE_VERSION); +} + +static int wsrep_print_version(void *dlh) +{ + char** dlversion = NULL; + dlversion = (char**) dlsym(dlh, "wsrep_interface_version"); + if (dlversion == NULL) + return EINVAL; + printf("found: %s, need: %s\n", *dlversion, WSREP_INTERFACE_VERSION); + return 0; +} + +int main(int argc, char **argv) +{ + int rc = EINVAL; + void *dlh; + wsrep_loader_fun dlfun; + + if (!(dlh = dlopen(getenv("WSREP_PROVIDER"), RTLD_NOW | RTLD_LOCAL))) { + goto err; + } + + if (!(dlfun = wsrep_dlf(dlh, "wsrep_loader"))) { + goto err; + } + + if (argc < 2 || strcmp(argv[1], "-p")) { + rc = wsrep_check_version_symbol(dlh); + } + else { + rc = wsrep_print_version(dlh); + } + +err: + if (dlh) dlclose(dlh); + + if (rc == 0) + return 0; + else if (rc == ERANGE) + return 2; + else + return 1; +} + +#else + +int main(void) +{ + return 1; +} + +#endif diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 56398cde2bd..630eec67e3d 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -137,6 +137,10 @@ my $opt_start_dirty; my $opt_start_exit; my $start_only; my $file_wsrep_provider; +my $extra_path; +my $mariabackup_path; +my $mariabackup_exe; +my $garbd_exe; our @global_suppressions; @@ -369,6 +373,147 @@ $| = 1; # Automatically flush STDOUT main(); +sub have_wsrep() { + my $wsrep_on= $mysqld_variables{'wsrep-on'}; + return defined $wsrep_on +} + +sub have_wsrep_provider() { + return $file_wsrep_provider ne ""; +} + +sub have_mariabackup() { + return $mariabackup_path ne ""; +} + +sub have_garbd() { + return $garbd_exe ne ""; +} + +sub check_wsrep_version() { + if ($My::SafeProcess::wsrep_check_version ne "") { + system($My::SafeProcess::wsrep_check_version); + return ($? >> 8) == 0; + } + else { + return 0; + } +} + +sub wsrep_version_message() { + my $output= `$My::SafeProcess::wsrep_check_version -p`; + $output =~ s/\s+\z//; + return "Wsrep provider version mismatch (".$output.")"; +} + +sub which($) { return `sh -c "command -v $_[0]"` } + +sub check_garbd_support() { + if (defined $ENV{'MTR_GARBD_EXE'}) { + if (mtr_file_exists($ENV{'MTR_GARBD_EXE'}) ne "") { + $garbd_exe= $ENV{'MTR_GARBD_EXE'}; + } else { + mtr_error("MTR_GARBD_EXE env set to an invalid path"); + } + } + else { + my $wsrep_path= dirname($file_wsrep_provider); + $garbd_exe= + mtr_file_exists($wsrep_path."/garb/garbd", + $wsrep_path."/../../bin/garb/garbd"); + if ($garbd_exe ne "") { + $ENV{MTR_GARBD_EXE}= $garbd_exe; + } + } +} + +sub check_wsrep_support() { + if (have_wsrep()) { + mtr_report(" - binaries built with wsrep patch"); + + # ADD scripts to $PATH to that wsrep_sst_* can be found + my ($spath) = grep { -f "$_/wsrep_sst_rsync"; } "$bindir/scripts", $path_client_bindir; + mtr_error("No SST scripts") unless $spath; + $ENV{PATH}="$spath:$ENV{PATH}"; + + # ADD mysql client library path to path so that wsrep_notify_cmd can find mysql + # client for loading the tables. (Don't assume each machine has mysql install) + my ($cpath) = grep { -f "$_/mysql"; } "$bindir/scripts", $path_client_bindir; + mtr_error("No scritps") unless $cpath; + $ENV{PATH}="$cpath:$ENV{PATH}" unless $cpath eq $spath; + + # ADD my_print_defaults script path to path so that SST scripts can find it + my ($epath) = grep { -f "$_/my_print_defaults"; } "$bindir/extra", $path_client_bindir; + mtr_error("No my_print_defaults") unless $epath; + $ENV{PATH}="$epath:$ENV{PATH}" unless ($epath eq $spath) or + ($epath eq $cpath); + + $extra_path= $epath; + + if (which("socat")) { + $ENV{MTR_GALERA_TFMT}="socat"; + } elsif (which("nc")) { + $ENV{MTR_GALERA_TFMT}="nc"; + } + + # Check whether WSREP_PROVIDER environment variable is set. + if (defined $ENV{'WSREP_PROVIDER'}) { + $file_wsrep_provider= ""; + if ($ENV{'WSREP_PROVIDER'} ne "none") { + if (mtr_file_exists($ENV{'WSREP_PROVIDER'}) ne "") { + $file_wsrep_provider= $ENV{'WSREP_PROVIDER'}; + } else { + mtr_error("WSREP_PROVIDER env set to an invalid path"); + } + check_garbd_support(); + } + # WSREP_PROVIDER is valid; set to a valid path or "none"). + mtr_verbose("WSREP_PROVIDER env set to $ENV{'WSREP_PROVIDER'}"); + } else { + # WSREP_PROVIDER env not defined. Lets try to locate the wsrep provider + # library. + $file_wsrep_provider= + mtr_file_exists("/usr/lib64/galera-3/libgalera_smm.so", + "/usr/lib64/galera/libgalera_smm.so", + "/usr/lib/galera-3/libgalera_smm.so", + "/usr/lib/galera/libgalera_smm.so"); + if ($file_wsrep_provider ne "") { + # wsrep provider library found ! + mtr_verbose("wsrep provider library found : $file_wsrep_provider"); + $ENV{'WSREP_PROVIDER'}= $file_wsrep_provider; + check_garbd_support(); + } else { + mtr_verbose("Could not find wsrep provider library, setting it to 'none'"); + $ENV{'WSREP_PROVIDER'}= "none"; + } + } + } else { + $file_wsrep_provider= ""; + $extra_path= ""; + } +} + +sub check_mariabackup_support() { + $mariabackup_path= ""; + $mariabackup_exe= + mtr_exe_maybe_exists( + "$bindir/extra/mariabackup$opt_vs_config/mariabackup", + "$path_client_bindir/mariabackup"); + if ($mariabackup_exe ne "") { + my ($bpath) = grep { -f "$_/mariabackup"; } "$bindir/extra/mariabackup$opt_vs_config", $path_client_bindir; + $ENV{PATH}="$bpath:$ENV{PATH}" unless $bpath eq $extra_path; + + $mariabackup_path= $bpath; + + $ENV{XTRABACKUP}= $mariabackup_exe; + + $ENV{XBSTREAM}= mtr_exe_maybe_exists( + "$bindir/extra/mariabackup/$opt_vs_config/mbstream", + "$path_client_bindir/mbstream"); + + $ENV{INNOBACKUPEX}= "$mariabackup_exe --innobackupex"; + } +} sub main { $ENV{MTR_PERL}=$^X; @@ -414,6 +559,8 @@ sub main { } check_ssl_support(); check_debug_support(); + check_wsrep_support(); + check_mariabackup_support(); if (!$opt_suites) { $opt_suites= join ',', collect_default_suites(@DEFAULT_SUITES); diff --git a/mysql-test/suite.pm b/mysql-test/suite.pm index 76bfab714df..f027898579d 100644 --- a/mysql-test/suite.pm +++ b/mysql-test/suite.pm @@ -51,6 +51,21 @@ sub skip_combinations { $skip{'main/plugin_loaderr.test'} = 'needs compiled-in innodb' unless $::mysqld_variables{'innodb'} eq "ON"; + $skip{'include/have_mariabackup.inc'} = 'Need mariabackup' + unless ::have_mariabackup(); + + $skip{'include/have_mariabackup.inc'} = 'Need ss' + unless ::which("ss"); + + $skip{'include/have_mariabackup.inc'} = 'Need socat or nc' + unless $ENV{MTR_GALERA_TFMT}; + + $skip{'include/have_garbd.inc'} = 'Need garbd' + unless ::have_garbd(); + + $skip{'include/have_file_key_management.inc'} = 'Needs file_key_management plugin' + unless $ENV{FILE_KEY_MANAGEMENT_SO}; + # disable tests that use ipv6, if unsupported sub ipv6_ok() { use Socket; diff --git a/mysql-test/suite/galera/include/have_filekeymanagement.inc b/mysql-test/suite/galera/include/have_filekeymanagement.inc deleted file mode 100644 index f5507ca4548..00000000000 --- a/mysql-test/suite/galera/include/have_filekeymanagement.inc +++ /dev/null @@ -1,3 +0,0 @@ -# -# Used in galera/suite.pm to check file key management plugin -# diff --git a/mysql-test/suite/galera/suite.pm b/mysql-test/suite/galera/suite.pm index faea228b6b0..f3c04979705 100644 --- a/mysql-test/suite/galera/suite.pm +++ b/mysql-test/suite/galera/suite.pm @@ -6,30 +6,11 @@ use My::Find; return "Not run for embedded server" if $::opt_embedded_server; -return "WSREP is not compiled in" unless defined $::mysqld_variables{'wsrep-on'}; +return "WSREP is not compiled in" if not ::have_wsrep(); -my ($provider) = grep { -f $_ } $ENV{WSREP_PROVIDER}, - "/usr/lib64/galera-3/libgalera_smm.so", - "/usr/lib64/galera/libgalera_smm.so", - "/usr/lib/galera-3/libgalera_smm.so", - "/usr/lib/galera/libgalera_smm.so"; +return "No wsrep provider library" unless ::have_wsrep_provider(); -return "No wsrep provider library" unless -f $provider; - -$ENV{WSREP_PROVIDER} = $provider; - -my ($spath) = grep { -f "$_/wsrep_sst_rsync"; } "$::bindir/scripts", $::path_client_bindir; -return "No SST scripts" unless $spath; - -my ($cpath) = grep { -f "$_/mysql"; } "$::bindir/scripts", $::path_client_bindir; -return "No scritps" unless $cpath; - -my ($epath) = grep { -f "$_/my_print_defaults"; } "$::bindir/extra", $::path_client_bindir; -return "No my_print_defaults" unless $epath; - -my ($bpath) = grep { -f "$_/mariabackup"; } "$::bindir/extra/mariabackup", $::path_client_bindir; - -sub which($) { return `sh -c "command -v $_[0]"` } +return ::wsrep_version_message() unless ::check_wsrep_version(); push @::global_suppressions, ( @@ -86,28 +67,4 @@ push @::global_suppressions, qr(WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to .*), ); -$ENV{PATH}="$epath:$ENV{PATH}"; -$ENV{PATH}="$spath:$ENV{PATH}" unless $epath eq $spath; -$ENV{PATH}="$cpath:$ENV{PATH}" unless $cpath eq $spath; -$ENV{PATH}="$bpath:$ENV{PATH}" unless $bpath eq $spath; - -if (which(socat)) { - $ENV{MTR_GALERA_TFMT}='socat'; -} elsif (which(nc)) { - $ENV{MTR_GALERA_TFMT}='nc'; -} - -sub skip_combinations { - my %skip = (); - $skip{'include/have_filekeymanagement.inc'} = 'needs file_key_management plugin' - unless $ENV{FILE_KEY_MANAGEMENT_SO}; - $skip{'include/have_mariabackup.inc'} = 'Need mariabackup' - unless which(mariabackup); - $skip{'include/have_mariabackup.inc'} = 'Need ss' - unless which(ss); - $skip{'include/have_mariabackup.inc'} = 'Need socat or nc' - unless $ENV{MTR_GALERA_TFMT}; - %skip; -} - bless { }; diff --git a/mysql-test/suite/galera/t/galera_sst_mariabackup_table_options.test b/mysql-test/suite/galera/t/galera_sst_mariabackup_table_options.test index 9d4f50f66ee..953a1635559 100644 --- a/mysql-test/suite/galera/t/galera_sst_mariabackup_table_options.test +++ b/mysql-test/suite/galera/t/galera_sst_mariabackup_table_options.test @@ -1,6 +1,6 @@ --source include/big_test.inc --source include/galera_cluster.inc ---source include/have_filekeymanagement.inc +--source include/have_file_key_management.inc --source include/innodb_encrypt_tables.inc --source include/innodb_page_size_small.inc --source include/have_mariabackup.inc diff --git a/mysql-test/suite/galera_3nodes/r/galera_ipv6_mariabackup_section.result b/mysql-test/suite/galera_3nodes/r/galera_ipv6_mariabackup_section.result index 53e35939a79..5a844537327 100644 --- a/mysql-test/suite/galera_3nodes/r/galera_ipv6_mariabackup_section.result +++ b/mysql-test/suite/galera_3nodes/r/galera_ipv6_mariabackup_section.result @@ -4,15 +4,20 @@ VARIABLE_VALUE LIKE '%[::1]%' SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 3 1 +connection node_2; SET GLOBAL wsrep_provider_options='gmcast.isolate=1'; +connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; SET GLOBAL wsrep_provider_options='gmcast.isolate=0'; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 DROP TABLE t1; +connection node_1; include/assert_grep.inc [Streaming the backup to joiner at \[::1\]] include/assert_grep.inc [async IST sender starting to serve tcp://\[::1\]:] +connection node_2; include/assert_grep.inc [IST receiver addr using tcp://\[::1\]] include/assert_grep.inc [Prepared IST receiver, listening at: tcp://\[::1\]] diff --git a/mysql-test/suite/galera_3nodes/r/galera_ipv6_rsync_section.result b/mysql-test/suite/galera_3nodes/r/galera_ipv6_rsync_section.result index a2bf5f4d98c..bcf74142144 100644 --- a/mysql-test/suite/galera_3nodes/r/galera_ipv6_rsync_section.result +++ b/mysql-test/suite/galera_3nodes/r/galera_ipv6_rsync_section.result @@ -4,9 +4,12 @@ VARIABLE_VALUE LIKE '%[::1]%' SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 3 1 +connection node_2; SET GLOBAL wsrep_provider_options='gmcast.isolate=1'; +connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; SET GLOBAL wsrep_provider_options='gmcast.isolate=0'; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 diff --git a/mysql-test/suite/galera_3nodes/suite.pm b/mysql-test/suite/galera_3nodes/suite.pm index a7c1bf79c06..4a861f3b9fa 100644 --- a/mysql-test/suite/galera_3nodes/suite.pm +++ b/mysql-test/suite/galera_3nodes/suite.pm @@ -6,30 +6,11 @@ use My::Find; return "Not run for embedded server" if $::opt_embedded_server; -return "WSREP is not compiled in" unless defined $::mysqld_variables{'wsrep-on'}; +return "WSREP is not compiled in" if not ::have_wsrep(); -my ($provider) = grep { -f $_ } $ENV{WSREP_PROVIDER}, - "/usr/lib64/galera-3/libgalera_smm.so", - "/usr/lib64/galera/libgalera_smm.so", - "/usr/lib/galera-3/libgalera_smm.so", - "/usr/lib/galera/libgalera_smm.so"; +return "No wsrep provider library" unless ::have_wsrep_provider(); -return "No wsrep provider library" unless -f $provider; - -$ENV{WSREP_PROVIDER} = $provider; - -my ($spath) = grep { -f "$_/wsrep_sst_rsync"; } "$::bindir/scripts", $::path_client_bindir; -return "No SST scripts" unless $spath; - -my ($cpath) = grep { -f "$_/mysql"; } "$::bindir/scripts", $::path_client_bindir; -return "No scritps" unless $cpath; - -my ($epath) = grep { -f "$_/my_print_defaults"; } "$::bindir/extra", $::path_client_bindir; -return "No my_print_defaults" unless $epath; - -my ($bpath) = grep { -f "$_/mariabackup"; } "$::bindir/extra/mariabackup", $::path_client_bindir; - -sub which($) { return `sh -c "command -v $_[0]"` } +return ::wsrep_version_message() unless ::check_wsrep_version(); push @::global_suppressions, ( @@ -65,30 +46,4 @@ push @::global_suppressions, qr(WSREP: JOIN message from member .* in non-primary configuration. Ignored.), ); - -$ENV{PATH}="$epath:$ENV{PATH}"; -$ENV{PATH}="$spath:$ENV{PATH}" unless $epath eq $spath; -$ENV{PATH}="$cpath:$ENV{PATH}" unless $cpath eq $spath; -$ENV{PATH}="$bpath:$ENV{PATH}" unless $bpath eq $spath; - -if (which(socat)) { - $ENV{MTR_GALERA_TFMT}='socat'; -} elsif (which(nc)) { - $ENV{MTR_GALERA_TFMT}='nc'; -} - -sub skip_combinations { - my %skip = (); - $skip{'include/have_filekeymanagement.inc'} = 'needs file_key_management plugin' - unless $ENV{FILE_KEY_MANAGEMENT_SO}; - $skip{'suite/galera/include/have_mariabackup.inc'} = 'Need mariabackup' - unless which(mariabackup); - $skip{'suite/galera/include/have_mariabackup.inc'} = 'Need ss' - unless which(ss); - $skip{'suite/galera/include/have_mariabackup.inc'} = 'Need socat or nc' - unless $ENV{MTR_GALERA_TFMT}; - %skip; -} - bless { }; - diff --git a/mysql-test/suite/galera_3nodes/t/galera_garbd.test b/mysql-test/suite/galera_3nodes/t/galera_garbd.test index 2d03e8897b9..3992259c732 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_garbd.test +++ b/mysql-test/suite/galera_3nodes/t/galera_garbd.test @@ -5,6 +5,7 @@ --source include/galera_cluster.inc --source include/have_innodb.inc +--source include/have_garbd.inc --source include/big_test.inc --let $galera_connection_name = node_3 @@ -30,7 +31,7 @@ --echo Starting garbd ... --let $gp1 = `SELECT SUBSTR(@@wsrep_provider_options, LOCATE('base_port =', @@wsrep_provider_options) + LENGTH('base_port = '))` --let $galera_port_1 = `SELECT SUBSTR('$gp1', 1, LOCATE(';', '$gp1') - 1)` ---exec `dirname $WSREP_PROVIDER`/../../bin/garb/garbd --address "gcomm://127.0.0.1:$galera_port_1" --group my_wsrep_cluster --options 'base_port=$galera_port_3' > $MYSQL_TMP_DIR/garbd.log 2>&1 & +--exec $MTR_GARBD_EXE --address "gcomm://127.0.0.1:$galera_port_1" --group my_wsrep_cluster --options 'base_port=$galera_port_3' > $MYSQL_TMP_DIR/garbd.log 2>&1 & --sleep 5 diff --git a/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test b/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test index cd5c020ae38..8dfb4660f3e 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test +++ b/mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test @@ -4,7 +4,7 @@ --source include/galera_cluster.inc --source include/have_innodb.inc ---source suite/galera/include/have_mariabackup.inc +--source include/have_mariabackup.inc --let $galera_connection_name = node_3 --let $galera_server_number = 3 diff --git a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test index 84c33251c98..8cbd8cf2454 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test +++ b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup.test @@ -1,6 +1,6 @@ --source include/galera_cluster.inc --source include/check_ipv6.inc ---source suite/galera/include/have_mariabackup.inc +--source include/have_mariabackup.inc # Confirm that initial handshake happened over ipv6 diff --git a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test index 95cd1a5bea5..88c399ddb99 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test +++ b/mysql-test/suite/galera_3nodes/t/galera_ipv6_mariabackup_section.test @@ -1,6 +1,6 @@ --source include/galera_cluster.inc --source include/check_ipv6.inc ---source suite/galera/include/have_mariabackup.inc +--source include/have_mariabackup.inc # Confirm that initial handshake happened over ipv6 diff --git a/mysql-test/suite/mariabackup/suite.pm b/mysql-test/suite/mariabackup/suite.pm index 9242bbc051f..14e38d16158 100644 --- a/mysql-test/suite/mariabackup/suite.pm +++ b/mysql-test/suite/mariabackup/suite.pm @@ -7,31 +7,14 @@ use strict; return "Not run for embedded server" if $::opt_embedded_server; -my $mariabackup_exe= -::mtr_exe_maybe_exists( - "$::bindir/extra/mariabackup$::opt_vs_config/mariabackup", - "$::path_client_bindir/mariabackup"); - -return "No mariabackup" if !$mariabackup_exe; - - -$ENV{XTRABACKUP}= $mariabackup_exe; - -$ENV{XBSTREAM}= ::mtr_exe_maybe_exists( - "$::bindir/extra/mariabackup/$::opt_vs_config/mbstream", - "$::path_client_bindir/mbstream"); - -$ENV{INNOBACKUPEX}= "$mariabackup_exe --innobackupex"; +return "No mariabackup" unless ::have_mariabackup(); my $have_qpress = index(`qpress 2>&1`,"Compression") > 0; - sub skip_combinations { my %skip; - $skip{'include/have_file_key_management.inc'} = 'needs file_key_management plugin' unless $ENV{FILE_KEY_MANAGEMENT_SO}; $skip{'compress_qpress.test'}= 'needs qpress executable in PATH' unless $have_qpress; %skip; } bless { }; - diff --git a/mysql-test/suite/wsrep/suite.pm b/mysql-test/suite/wsrep/suite.pm index 03e23b8d7cb..7b3dae7c8c3 100644 --- a/mysql-test/suite/wsrep/suite.pm +++ b/mysql-test/suite/wsrep/suite.pm @@ -6,23 +6,11 @@ use My::Find; return "Not run for embedded server" if $::opt_embedded_server; -return "WSREP is not compiled in" unless defined $::mysqld_variables{'wsrep-on'}; +return "WSREP is not compiled in" unless ::have_wsrep(); -my ($provider) = grep { -f $_ } $ENV{WSREP_PROVIDER}, - "/usr/lib64/galera-3/libgalera_smm.so", - "/usr/lib64/galera/libgalera_smm.so", - "/usr/lib/galera-3/libgalera_smm.so", - "/usr/lib/galera/libgalera_smm.so"; +return "No wsrep provider library" unless ::have_wsrep_provider(); -return "No wsrep provider library" unless -f $provider; - -$ENV{WSREP_PROVIDER} = $provider; - -my ($spath) = grep { -f "$_/wsrep_sst_rsync"; } "$::bindir/scripts", $::path_client_bindir; -return "No SST scripts" unless $spath; - -my ($epath) = grep { -f "$_/my_print_defaults"; } "$::bindir/extra", $::path_client_bindir; -return "No my_print_defaults" unless $epath; +return ::wsrep_version_message() unless ::check_wsrep_version(); push @::global_suppressions, ( @@ -31,8 +19,4 @@ push @::global_suppressions, qr|WSREP: access file\(.*gvwstate.dat\) failed\(No such file or directory\)|, ); -$ENV{PATH}="$epath:$ENV{PATH}"; -$ENV{PATH}="$spath:$ENV{PATH}" unless $epath eq $spath; - bless { }; - |