deb-migrate/debian/test.sh

65 lines
2.1 KiB
Bash
Executable File

#!/bin/sh
set -e
MYTEMP_DIR=`mktemp -d`
ME=`whoami`
MYSQL_VERSION=/usr/sbin/mysqld --version 2>/dev/null | grep Ver | awk '{print $3}' | cut -d- -f1
MYSQL_VERSION_MAJ=$(echo $MYSQL_VERSION) | cut -d. -f1
MYSQL_VERSION=/usr/sbin/mysqld --version 2>/dev/null | grep Ver | awk '{print $3}' | cut -d- -f1
MYSQL_VERSION_MID=$(echo $MYSQL_VERSION) | cut -d. -f2
MYSQL_VERSION=/usr/sbin/mysqld --version 2>/dev/null | grep Ver | awk '{print $3}' | cut -d- -f1
MYSQL_VERSION_MIN=$(echo $MYSQL_VERSION) | cut -d. -f3
if [ "${MYSQL_VERSION_MAJ}" -le 5 ] && [ "${MYSQL_VERSION_MID}" -lt 7 ] ; then
MYSQL_INSTALL_DB_OPT="--force --skip-name-resolve"
else
MYSQL_INSTALL_DB_OPT="--basedir=/usr"
fi
# --force is needed because buildd's can't resolve their own hostnames to ips
echo "===> Preparing MySQL temp folder"
mysql_install_db --no-defaults --datadir=${MYTEMP_DIR} ${MYSQL_INSTALL_DB_OPT} --user=${ME}
chown -R ${ME} ${MYTEMP_DIR}
echo "===> Starting MySQL"
/usr/sbin/mysqld --no-defaults --skip-grant-tables --user=${ME} --socket=${MYTEMP_DIR}/mysql.sock --datadir=${MYTEMP_DIR} --skip-networking &
echo "===> Sleeping 3 seconds after starting MySQL"
sleep 3
# This sets the path of the MySQL socket for any libmysql-client users
export MYSQL_UNIX_PORT=${MYTEMP_DIR}/mysql.sock
echo "===> Attempting to connect"
echo -n "pinging mysqld: "
attempts=0
while ! /usr/bin/mysqladmin --socket=${MYTEMP_DIR}/mysql.sock ping ; do
sleep 3
attempts=$((attempts+1))
if [ ${attempts} -gt 10 ] ; then
exit 1
fi
done
echo "===> Creating the db"
/usr/bin/mysql --socket=${MYTEMP_DIR}/mysql.sock --execute="CREATE DATABASE openstack_citest"
echo "===> Doing the unit tests"
# We set `pwd`/debian/bin in the path to have
# our "migrate" binary accessible
rm -rf .testrepository
testr init
TEMP_REZ=`mktemp -t`
PATH=$PATH:`pwd`/debian/bin PYTHONPATH=. testr run --subunit | tee $TEMP_REZ | subunit2pyunit || true
cat $TEMP_REZ | subunit-filter -s --no-passthrough | subunit-stats || true
rm -f $TEMP_REZ
testr slowest
echo "===> Shutting down MySQL"
/usr/bin/mysqladmin --socket=${MYTEMP_DIR}/mysql.sock shutdown
echo "===> Removing temp folder"
rm -rf ${MYTEMP_DIR}
exit 0