Run REST API and MaxCtrl unit tests

Install Docker when building on CentOS 7. This allows the REST API and
MaxCtrl unit tests to be run.
This commit is contained in:
Markus Mäkelä 2018-08-11 22:42:22 +03:00
parent f90b8cdafb
commit 1572e088bf
No known key found for this signature in database
GPG Key ID: 72D48FCE664F7B19
5 changed files with 50 additions and 14 deletions

View File

@ -16,6 +16,22 @@ if [[ "$cmake_flags" =~ "BUILD_TESTS" ]]
then
# All tests must pass otherwise the build is considered a failure
ctest --output-on-failure || exit 1
# See if docker is installed and run REST API and MaxCtrl tests if it is
command -v docker
if [ $? -eq 0 ]
then
export SKIP_SHUTDOWN=Y
make test_rest_api && make test_maxctrl
rc=$?
#docker ps -aq|xargs docker rm -vf
if [ $rc -ne 0 ]
then
cat maxscale_test/*.output maxscale_test/log/maxscale/*.log
exit 1
fi
fi
fi
# Never strip binaries

View File

@ -86,6 +86,14 @@ else
# Enable it by default
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc
else
# Installed for REST API and MaxCtrl unit tests
sudo yum -y install docker epel-release
sudo yum -y install docker-compose
sudo groupadd docker
sudo usermod -a -G docker `whoami`
sudo sed -i 's/--selinux-enabled/--selinux-enabled=false/' /etc/sysconfig/docker
sudo systemctl start docker
fi
fi

View File

@ -84,7 +84,17 @@ do
docker exec -i $node mysql -umaxuser -pmaxpwd -e "select 1" >& /dev/null && break
sleep 1
done
echo "Done!"
docker exec -i $node mysql -umaxuser -pmaxpwd -e "select 1" >& /dev/null
if [ $? -ne 0 ]
then
echo "failed to start $node, error is:"
docker exec -i $node mysql -umaxuser -pmaxpwd -e "select 1"
exit 1
else
echo "Done!"
fi
done
# Go to the test directory

View File

@ -35,21 +35,20 @@ then
fi
# Start MaxScale
$maxscaledir/bin/maxscale $user_opt -f $maxscaledir/maxscale.cnf &>> $maxscaledir/maxscale1.output
# Wait for the first MaxScale to start
for ((i=0;i<150;i++))
do
$maxscaledir/bin/maxctrl list servers >& /dev/null && break
sleep 0.1
done
$maxscaledir/bin/maxscale $user_opt -f $maxscaledir/maxscale.cnf &>> $maxscaledir/maxscale1.output || exit 1
# Start a second maxscale
$maxscaledir/bin/maxscale $user_opt -f $maxscaledir/maxscale_secondary.cnf &>> $maxscaledir/maxscale2.output
$maxscaledir/bin/maxscale $user_opt -f $maxscaledir/maxscale_secondary.cnf &>> $maxscaledir/maxscale2.output || exit 1
# Wait for the MaxScales to start
# Wait for the second MaxScale to start
for ((i=0;i<150;i++))
do
$maxscaledir/bin/maxctrl --hosts 127.0.0.1:8990 list servers >& /dev/null && break
$maxscaledir/bin/maxctrl list servers >& /dev/null && \
$maxscaledir/bin/maxctrl --hosts 127.0.0.1:8990 list servers >& /dev/null && \
exit 0
sleep 0.1
done
# MaxScales failed to start, exit with an error
exit 1

View File

@ -25,11 +25,14 @@ then
fi
# Start MaxScale
$maxscaledir/bin/maxscale $user_opt -f $maxscaledir/maxscale.cnf &>> $maxscaledir/maxscale.output
$maxscaledir/bin/maxscale $user_opt -f $maxscaledir/maxscale.cnf &>> $maxscaledir/maxscale.output || exit 1
# Wait for MaxScale to start
for ((i=0;i<150;i++))
do
$maxscaledir/bin/maxctrl list servers >& /dev/null && break
$maxscaledir/bin/maxctrl list servers >& /dev/null && exit 0
sleep 0.1
done
# MaxScale failed to start, exit with an error
exit 1