diff options
Diffstat (limited to 'mysql-test/suite/galera_3nodes/t/galera_garbd.test')
-rw-r--r-- | mysql-test/suite/galera_3nodes/t/galera_garbd.test | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/mysql-test/suite/galera_3nodes/t/galera_garbd.test b/mysql-test/suite/galera_3nodes/t/galera_garbd.test index 2d03e8897b9..fa3cba0ab16 100644 --- a/mysql-test/suite/galera_3nodes/t/galera_garbd.test +++ b/mysql-test/suite/galera_3nodes/t/galera_garbd.test @@ -7,9 +7,20 @@ --source include/have_innodb.inc --source include/big_test.inc +# Save galera ports +--connection node_1 +--source suite/galera/include/galera_base_port.inc +--let $NODE_GALERAPORT_1 = $_NODE_GALERAPORT + +--connection node_2 +--source suite/galera/include/galera_base_port.inc +--let $NODE_GALERAPORT_2 = $_NODE_GALERAPORT + --let $galera_connection_name = node_3 --let $galera_server_number = 3 --source include/galera_connect.inc +--source suite/galera/include/galera_base_port.inc +--let $NODE_GALERAPORT_3 = $_NODE_GALERAPORT # Save original auto_increment_offset values. --let $node_1=node_1 @@ -28,9 +39,33 @@ --source include/wait_condition.inc --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 & +--perl +use strict; +use File::Basename; +my $provider_dirname = dirname($ENV{WSREP_PROVIDER}); +# Array of possible garbd executable paths to be checked +# base is $provider_dirname +my @garbd_executable_search = ( + # WSREP_PROVIDER is set in galera repository + ${provider_dirname}."/garb/garbd", + # MariaDB (PR #1147) + ${provider_dirname}."/../../bin/garb/garbd" +); +my $garbd_executable = ''; +foreach my $garbd (@garbd_executable_search) { + if (-f $garbd) { + $garbd_executable= $garbd; + } +} +if ($garbd_executable eq '') { + die("Didn't locate garbd\n"); +} +die unless open(FILE, ">$ENV{MYSQLTEST_VARDIR}/tmp/garbd.inc"); +print FILE "--exec $garbd_executable --address \"gcomm://127.0.0.1:\$NODE_GALERAPORT_1\" --group my_wsrep_cluster --options 'base_port=\$NODE_GALERAPORT_3' > \$MYSQL_TMP_DIR/garbd.log 2>&1 &\n"; +close(FILE); +EOF +--source $MYSQLTEST_VARDIR/tmp/garbd.inc +--remove_file $MYSQLTEST_VARDIR/tmp/garbd.inc --sleep 5 @@ -44,7 +79,10 @@ INSERT INTO t1 VALUES (1); SELECT COUNT(*) = 1 FROM t1; --echo Killing garbd ... ---exec pkill --oldest --full garbd.*$galera_port_3 +# FreeBSD's /bin/pkill only supports short versions of the options: +# -o Select only the oldest (least recently started) +# -f Match against full argument lists +--exec pkill -o -f garbd.*$NODE_GALERAPORT_3 --sleep 5 @@ -61,6 +99,7 @@ DROP TABLE t1; --echo Restarting node #3 to satisfy MTR's end-of-test checks --connection node_3 +let $restart_noprint=2; --source include/start_mysqld.inc # Restore original auto_increment_offset values. |