diff --git a/myrocks-tests/myrocks-testsuite.sh b/myrocks-tests/myrocks-testsuite.sh index 294b6f31f..52807ebf4 100755 --- a/myrocks-tests/myrocks-testsuite.sh +++ b/myrocks-tests/myrocks-testsuite.sh @@ -39,6 +39,18 @@ function start_proxysql_servers() { } +function start_proxysql_servers_pxc() { + cd $1 + FILE="Percona-XtraDB-Cluster-5.7.19-rel17-29.22.1.Linux.x86_64.ssl101.tar.gz" + if [ -f $FILE ]; then + # Starting 3 PS servers with configured ProxySQL + ~/percona-qa/proxysql-pxc-config $1 3 "--plugin-load-add=tokudb=ha_tokudb.so --tokudb-check-jemalloc=0 --plugin-load-add=rocksdb=ha_rocksdb.so --default-storage-engine=rocksdb" + else + wget https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/Percona-XtraDB-Cluster-5.7.19-29.22/binary/tarball/Percona-XtraDB-Cluster-5.7.19-rel17-29.22.1.Linux.x86_64.ssl101.tar.gz + ~/percona-qa/proxysql-pxc-config $1 3 "--plugin-load-add=tokudb=ha_tokudb.so --tokudb-check-jemalloc=0 --plugin-load-add=rocksdb=ha_rocksdb.so --default-storage-engine=rocksdb" + fi +} + function execute_sql() { # General function to pass sql statement to mysql client conn_string="$(cat $1/cl_noprompt)" @@ -321,7 +333,7 @@ run_mysqldump_bats echo "################################################################" -echo "Starting ProxySQL tests" +echo "Starting ProxySQL tests with PS" start_proxysql_servers ${WORKDIR} ${BASEDIR} echo "Creating test database over ProxySQL" @@ -342,3 +354,6 @@ mysql --user=root --host=localhost --port=6033 --protocol=tcp -e "${INSRT}" echo "Running proxysql.bats" run_proxysql_bats + +echo "Starting ProxySQL tests with PXC" +start_proxysql_servers_pxc ${WORKDIR} diff --git a/myrocks-tests/proxysql.bats b/myrocks-tests/proxysql.bats index fe24de026..e3c3cd1d6 100644 --- a/myrocks-tests/proxysql.bats +++ b/myrocks-tests/proxysql.bats @@ -17,6 +17,8 @@ CONN1=$(cat ${WORKDIR}/${BASEDIR}/cl_ps1) [[ $result = "We are the warriors of true!" ]] } +BASEDIR=$(ls -1td Percona-XtraDB-Cluster-5.* | grep -v ".tar" | head -n1) + # @test "Running select on PS2" { # result="$(${CONN2} -e 'select pad from proxysql_test_db.sbtest1')" # echo $output diff --git a/proxysql-pxc-config b/proxysql-pxc-config index 3c93e1266..56f15e2df 100755 --- a/proxysql-pxc-config +++ b/proxysql-pxc-config @@ -46,11 +46,11 @@ function proxysql_setup(){ INTANCES=1 fi for i in `seq 1 $INTANCES`;do - STARTUP_OPTION="$2" + #STARTUP_OPTION="$2" RBASE1="$((RPORT + ( 100 * $i )))" LADDR1="$ADDR:$(( RBASE1 + 8 ))" WSREP_CLUSTER="${WSREP_CLUSTER}gcomm://$LADDR1," - if ps -ef | grep "\--port=${RBASE1}" | grep -qv grep ; then + if ps -ef | grep "\--port=${RBASE1}" | grep -qv grep ; then echo "INFO! Another mysqld server running on port: ${RBASE1}. Using different port" RBASE1="$(( (RPORT + ( 100 * $i )) + 10 ))" LADDR1="$ADDR:$(( RBASE1 + 8 ))" @@ -81,7 +81,7 @@ function proxysql_setup(){ --log-error=$WORKDIR/logs/pxcnode${i}.err --report-host=$ADDR --report-port=$RBASE1 \ --socket=/tmp/pxcnode${i}.sock --log-output=none \ --port=$RBASE1 --master-info-repository=TABLE --relay-log-info-repository=TABLE > $WORKDIR/logs/pxcnode${i}.err 2>&1 & - + for X in $(seq 0 ${PXC_START_TIMEOUT}); do sleep 1 if ${PXC_BASEDIR}/bin/mysqladmin -uroot -S/tmp/pxcnode${i}.sock ping > /dev/null 2>&1; then @@ -94,6 +94,7 @@ function proxysql_setup(){ fi done ${PXC_BASEDIR}/bin/mysql -uadmin -padmin -hlocalhost -P6032 --protocol=tcp -e "INSERT INTO mysql_servers (hostname,hostgroup_id,port,weight) VALUES ('$ADDR',100,$RBASE1,100000);" + echo "${PXC_BASEDIR}/bin/mysql -uroot -S/tmp/pxcnode${i}.sock" > ${PXC_BASEDIR}/cl_pxcnode${i} done ${PXC_BASEDIR}/bin/mysql -uroot -S/tmp/pxcnode${i}.sock -e "GRANT USAGE ON *.* TO monitor@'%' IDENTIFIED BY 'monitor';" ${PXC_BASEDIR}/bin/mysql -uadmin -padmin -hlocalhost -P6032 --protocol=tcp -e "update global_variables set variable_value='monitor' where variable_name='mysql-monitor_username'; update global_variables set variable_value='monitor' where variable_name='mysql-monitor_password';LOAD MYSQL VARIABLES TO RUNTIME;SAVE MYSQL VARIABLES TO DISK;" @@ -102,4 +103,4 @@ function proxysql_setup(){ echo "ProxySQL connection mysql --user=root --host=localhost --port=6033 --protocol=tcp" } -proxysql_setup \ No newline at end of file +proxysql_setup