Files
MaxScale/maxscale-system-test/mdbci/run_test_snapshot.sh
Timofey Turenko cd732ac14f MXS-2243 System tests brings VMs by themselves (#193)
maxscale-system-test changed in order to control test environment by itself.
Every test checks which machines are running, compare with list of needed machines
and start new VMs is they are missing in the running machines list.
Tests are executiong MDBCI commands, MDBCI executable should be in the PATH
2019-04-02 13:27:34 +03:00

90 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
function checkExitStatus {
returnCode=$1
errorMessage=$2
lockFilePath=$3
if [ "$returnCode" != 0 ]; then
echo "$errorMesage"
rm $lockFilePath
echo "Snapshot lock file was deleted due to an error"
exit 1
fi
}
set -x
export dir=`pwd`
# read the name of build scripts directory
export script_dir="$(dirname $(readlink -f $0))"
. ${script_dir}/set_run_test_variables.sh
export mdbci_config_name="$box-$product-$version-permanent"
export snapshot_name=${snapshot_name:-"clean"}
rm -rf LOGS
export target=`echo $target | sed "s/?//g"`
export mdbci_config_name=`echo ${mdbci_config_name} | sed "s/?//g"`
. ${script_dir}/configure_log_dir.sh
# Setting snapshot_lock
export snapshot_lock_file=${MDBCI_VM_PATH}/${mdbci_config_name}_snapshot_lock
if [ -f ${snapshot_lock_file} ]; then
echo "Snapshot is locked, waiting ..."
fi
while [ -f ${snapshot_lock_file} ]
do
sleep 5
done
touch ${snapshot_lock_file}
echo $JOB_NAME-$BUILD_NUMBER >> ${snapshot_lock_file}
mdbci snapshot revert --path-to-nodes ${mdbci_config_name} --snapshot-name ${snapshot_name}
if [ $? != 0 ]; then
mdbci destroy ${mdbci_config_name}
${MDBCI_VM_PATH}/scripts/clean_vms.sh ${mdbci_config_name}
new_config=true
fi
for maxscale_vm_name in ${maxscales_vm}
do
checkExitStatus $? "Error installing Maxscale" $snapshot_lock_file
done
cd ${script_dir}/../../
rm -rf build
mkdir build && cd build
cmake .. -DBUILDNAME=$JOB_NAME-$BUILD_NUMBER-$target -DBUILD_SYSTEM_TESTS=Y -DCMAKE_BUILD_TYPE=Debug
cd maxscale-system-test
make
./check_backend --restart-galera --reinstall-maxscale
checkExitStatus $? "Failed to check backends" $snapshot_lock_file
if [${new_config}] == "true" ; then
echo "Creating snapshot from new config"
mdbci snapshot take --path-to-nodes ${mdbci_config_name} --snapshot-name $snapshot_name
fi
ulimit -c unlimited
ctest $test_set -VV
cp core.* ${logs_publish_dir}
${script_dir}/copy_logs.sh
# Removing snapshot_lock
rm ${snapshot_lock_file}