diff --git a/tests/scripts/fullmtr.sh b/tests/scripts/fullmtr.sh index c8e5d4281..3f8d86adf 100644 --- a/tests/scripts/fullmtr.sh +++ b/tests/scripts/fullmtr.sh @@ -1,10 +1,11 @@ #!/bin/bash SCRIPT_LOCATION=$(dirname "$0") +MARIADB_SOURCE_PATH=$(realpath $SCRIPT_LOCATION/../../../../../) COLUMNSTORE_MTR_SOURCE=$(realpath $SCRIPT_LOCATION/../../mysql-test/columnstore) INSTALLED_MTR_PATH='/usr/share/mysql/mysql-test' COLUMSNTORE_MTR_INSTALLED=${INSTALLED_MTR_PATH}/suite/columnstore - +PATCHNAME=$(realpath $SCRIPT_LOCATION)/mtr_warn.patch CURRENT_DIR=`pwd` mysql -e "create database if not exists test;" SOCKET=`mysql -e "show variables like 'socket';" | grep socket | cut -f2` @@ -12,6 +13,24 @@ SOCKET=`mysql -e "show variables like 'socket';" | grep socket | cut -f2` export ASAN_OPTIONS=abort_on_error=1:disable_coredump=0,print_stats=false,detect_odr_violation=0,check_initialization_order=1,detect_stack_use_after_return=1,atexit=false,log_path=/core/asan.hz +# needed when run MTR tests locally, see mariadb-test-run.pl:417, mtr functions +# are added to the database mtr only when --extern is not specified + +add_mtr_warn_functions() +{ + echo "Adding mtr warnings functions..." + cd /tmp + mysql -e "drop database if exists mtr"; + cp ${MARIADB_SOURCE_PATH}/mysql-test/include/mtr_warnings.sql mtr_warnings.sql + patch -p1 < ${PATCHNAME} + mysql -e "create database if not exists mtr;" + mysql mtr < mtr_warnings.sql + rm mtr_warnings.sql + cd - + echo "MTR Warnings function added" +} + + cd ${INSTALLED_MTR_PATH} if [[ ! -d ${COLUMSNTORE_MTR_INSTALLED} ]]; then @@ -24,10 +43,11 @@ if [[ ! -d '/data/qa/source/dbt3/' || ! -d '/data/qa/source/ssb/' ]]; then echo ' ・ Downloading and extracting test data for full MTR to /data' bash -c "wget -qO- https://cspkg.s3.amazonaws.com/mtr-test-data.tar.lz4 | lz4 -dc - | tar xf - -C /" fi + run_suite() { ls /core >$CURRENT_DIR/mtr.$1.cores-before - ./mtr --force --extern=socket=/run/mysqld/mysqld.sock --max-test-fail=0 --testcase-timeout=60 --suite=columnstore/$1 $2 | tee $CURRENT_DIR/mtr.$1.log 2>&1 + ./mtr --force --extern=socket=${SOCKET} --max-test-fail=0 --testcase-timeout=60 --suite=columnstore/$1 $2 | tee $CURRENT_DIR/mtr.$1.log 2>&1 # dump analyses. systemctl stop mariadb systemctl start mariadb @@ -37,6 +57,9 @@ run_suite() rm $CURRENT_DIR/mtr.$1.cores-before $CURRENT_DIR/mtr.$1.cores-after } + +add_mtr_warn_functions + if (( $# == 2 )); then run_suite $1 $2 exit 1 @@ -47,7 +70,6 @@ if (( $# == 1 )); then exit 1 fi - run_suite basic run_suite bugfixes run_suite setup diff --git a/tests/scripts/mtr_warn.patch b/tests/scripts/mtr_warn.patch new file mode 100644 index 000000000..b347ffbdd --- /dev/null +++ b/tests/scripts/mtr_warn.patch @@ -0,0 +1,22 @@ +diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql +index 82c7aa8cd75..26fd2ee3bc5 100644 +--- a/mtr_warnings.sql ++++ b/mtr_warnings.sql +@@ -13,7 +13,7 @@ + -- along with this program; if not, write to the Free Software Foundation, + -- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +-delimiter ||; ++delimiter || + + use mtr|| + +@@ -271,7 +271,7 @@ BEGIN + IF @num_warnings > 0 THEN + SELECT line + FROM error_log WHERE suspicious=1; +- --SELECT * FROM test_suppressions; ++ -- SELECT * FROM test_suppressions; + -- Return 2 -> check failed + SELECT 2 INTO result; + ELSE