You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-08 14:22:09 +03:00
chore(tests): make local mtr runnner smarter
This commit is contained in:
committed by
Aleksei Bukhalov
parent
d4d87ad07f
commit
2e2b4b3f82
@@ -1,77 +0,0 @@
|
||||
#!/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}/plugin/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)
|
||||
|
||||
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
|
||||
echo ' ・ Adding symlink for columnstore tests to ${COLUMSNTORE_MTR_INSTALLED} from ${COLUMNSTORE_MTR_SOURCE} '
|
||||
ln -s ${COLUMNSTORE_MTR_SOURCE} ${COLUMSNTORE_MTR_INSTALLED}
|
||||
fi
|
||||
|
||||
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=${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
|
||||
ls /core >$CURRENT_DIR/mtr.$1.cores-after
|
||||
echo "reports or coredumps:"
|
||||
diff -u $CURRENT_DIR/mtr.$1.cores-before $CURRENT_DIR/mtr.$1.cores-after && echo "no new reports or coredumps"
|
||||
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
|
||||
fi
|
||||
|
||||
if (($# == 1)); then
|
||||
run_suite $1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run_suite basic
|
||||
run_suite bugfixes
|
||||
run_suite setup
|
||||
run_suite devregression
|
||||
run_suite autopilot
|
||||
run_suite extended
|
||||
run_suite multinode
|
||||
run_suite oracle
|
||||
run_suite 1pmonly
|
||||
|
||||
cd -
|
107
tests/scripts/run_mtr.sh
Executable file
107
tests/scripts/run_mtr.sh
Executable file
@@ -0,0 +1,107 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
SCRIPT_LOCATION=$(dirname "$0")
|
||||
COLUMNSTORE_SOURCE_PATH=$(realpath $SCRIPT_LOCATION/../../)
|
||||
MARIADB_SOURCE_PATH=$(realpath $SCRIPT_LOCATION/../../../../../)
|
||||
COLUMNSTORE_MTR_SOURCE=$(realpath $COLUMNSTORE_SOURCE_PATH/mysql-test/columnstore)
|
||||
INSTALLED_MTR_PATH='/usr/share/mysql/mysql-test/'
|
||||
PATCHNAME=$(realpath $SCRIPT_LOCATION)/mtr_warn.patch
|
||||
CURRENT_DIR=$(pwd)
|
||||
|
||||
source $COLUMNSTORE_SOURCE_PATH/build/utils.sh
|
||||
|
||||
|
||||
optparse.define short=s long=suite desc="whole suite to run" variable=SUITE_NAME
|
||||
optparse.define short=t long=test_full_name desc="Testname with suite as like bugfixes.mcol-4899" variable=TEST_FULL_NAME default=""
|
||||
optparse.define short=f long=full desc="Run full MTR" variable=RUN_FULL default=false value=true
|
||||
optparse.define short=r long=record desc="Record the result" variable=RECORD default=false value=true
|
||||
optparse.define short=e long=no-extern desc="Run without --extern" variable=EXTERN default=true value=false
|
||||
|
||||
source $(optparse.build)
|
||||
|
||||
mariadb -e "create database if not exists test;"
|
||||
SOCKET=$(mariadb -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() {
|
||||
message "Adding mtr warnings functions..."
|
||||
cd /tmp
|
||||
mariadb -e "drop database if exists mtr"
|
||||
cp ${MARIADB_SOURCE_PATH}/mysql-test/include/mtr_warnings.sql mtr_warnings.sql
|
||||
patch -p1 <${PATCHNAME}
|
||||
mariadb -e "create database if not exists mtr;"
|
||||
mariadb mtr <mtr_warnings.sql
|
||||
rm mtr_warnings.sql
|
||||
cd -
|
||||
echo "MTR Warnings function added"
|
||||
}
|
||||
|
||||
cd ${INSTALLED_MTR_PATH}
|
||||
|
||||
if [[ ! -d ${INSTALLED_MTR_PATH}/suite/columnstore ]]; then
|
||||
message " ・ Adding symlink for columnstore tests to ${INSTALLED_MTR_PATH}/suite/columnstore from ${COLUMNSTORE_MTR_SOURCE}"
|
||||
ln -s ${COLUMNSTORE_MTR_SOURCE} ${INSTALLED_MTR_PATH}/suite
|
||||
fi
|
||||
|
||||
if [[ ! -d '/data/qa/source/dbt3/' || ! -d '/data/qa/source/ssb/' ]]; then
|
||||
message ' ・ 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
|
||||
|
||||
if [[ -n $TEST_FULL_NAME ]]; then
|
||||
SUITE_NAME="${TEST_FULL_NAME%%.*}"
|
||||
TEST_NAME="${TEST_FULL_NAME#*.}"
|
||||
fi
|
||||
|
||||
|
||||
run_suite() {
|
||||
ls /core >$CURRENT_DIR/mtr.$1.cores-before
|
||||
|
||||
if [[ $EXTERN == true ]]; then
|
||||
EXTERN_FLAG="--extern=socket=${SOCKET}"
|
||||
else
|
||||
EXTERN_FLAG=""
|
||||
fi
|
||||
|
||||
if [[ $RECORD == true ]]; then
|
||||
RECORD_FLAG="--record"
|
||||
else
|
||||
RECORD_FLAG=""
|
||||
fi
|
||||
|
||||
./mtr --force $EXTERN_FLAG $RECORD_FLAG --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
|
||||
ls /core >$CURRENT_DIR/mtr.$1.cores-after
|
||||
message "reports or coredumps:"
|
||||
diff -u $CURRENT_DIR/mtr.$1.cores-before $CURRENT_DIR/mtr.$1.cores-after && echo "no new reports or coredumps"
|
||||
rm $CURRENT_DIR/mtr.$1.cores-before $CURRENT_DIR/mtr.$1.cores-after
|
||||
}
|
||||
|
||||
add_mtr_warn_functions
|
||||
|
||||
|
||||
if [[ $RUN_FULL == true ]]; then
|
||||
message "Running FULL MTR"
|
||||
run_suite basic
|
||||
run_suite bugfixes
|
||||
run_suite setup
|
||||
run_suite devregression
|
||||
run_suite autopilot
|
||||
run_suite extended
|
||||
run_suite multinode
|
||||
run_suite oracle
|
||||
run_suite 1pmonly
|
||||
else
|
||||
message "Running suite $SUITE_NAME with test $TEST_NAME"
|
||||
run_suite $SUITE_NAME $TEST_NAME
|
||||
fi
|
||||
|
||||
cd -
|
Reference in New Issue
Block a user