The MariaDB servers are now started first. This will give them time to prepare while other parts of the tests are being prepared.
84 lines
2.2 KiB
Bash
Executable File
84 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script builds and installs MaxScale, starts a MaxScale instance, runs the
|
|
# tests use npm and stops MaxScale.
|
|
#
|
|
# This is definitely not the most efficient way to test the binaries but it's a
|
|
# guaranteed method of creating a consistent and "safe" testing environment.
|
|
#
|
|
# TODO: Install and start a local MariaDB server for testing purposes
|
|
|
|
|
|
srcdir=$1
|
|
maxscaledir=$PWD/maxscale_test/
|
|
testdir=$PWD/local_test/
|
|
|
|
mkdir -p $testdir && cd $testdir
|
|
|
|
# Currently all tests that use npm are for the REST API
|
|
cp -t $testdir -r $srcdir/maxctrl/test/*
|
|
|
|
# Bring MariaDB servers up, this is an asynchronous process
|
|
docker-compose up -d || exit 1
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
mkdir -p $maxscaledir && cd $maxscaledir
|
|
|
|
# Configure and install MaxScale
|
|
cmake $srcdir -DCMAKE_BUILD_TYPE=Debug \
|
|
-DCMAKE_INSTALL_PREFIX=$maxscaledir \
|
|
-DBUILD_TESTS=Y \
|
|
-DMAXSCALE_VARDIR=$maxscaledir \
|
|
-DCMAKE_BUILD_TYPE=Debug \
|
|
-DWITH_SCRIPTS=N \
|
|
-DWITH_MAXSCALE_CNF=N \
|
|
-DBUILD_CDC=Y \
|
|
-DTARGET_COMPONENT=all \
|
|
-DDEFAULT_MODULE_CONFIGDIR=$maxscaledir \
|
|
-DDEFAULT_ADMIN_USER=`whoami`
|
|
|
|
make install
|
|
|
|
# Create required directories (we could run the postinst script but it's a bit too invasive)
|
|
mkdir -p $maxscaledir/lib64/maxscale
|
|
mkdir -p $maxscaledir/bin
|
|
mkdir -p $maxscaledir/share/maxscale
|
|
mkdir -p $maxscaledir/share/doc/MaxScale/maxscale
|
|
mkdir -p $maxscaledir/log/maxscale
|
|
mkdir -p $maxscaledir/lib/maxscale
|
|
mkdir -p $maxscaledir/cache/maxscale
|
|
mkdir -p $maxscaledir/run/maxscale
|
|
chmod 0755 $maxscaledir/log/maxscale
|
|
chmod 0755 $maxscaledir/lib/maxscale
|
|
chmod 0755 $maxscaledir/cache/maxscale
|
|
chmod 0755 $maxscaledir/run/maxscale
|
|
|
|
# Go to the test directory
|
|
cd $testdir
|
|
|
|
# This variable is used to start and stop MaxScale before each test
|
|
export MAXSCALE_DIR=$maxscaledir
|
|
|
|
# Wait until the servers are up
|
|
for node in server1 server2 server3 server4
|
|
do
|
|
printf "Waiting for $node to start... "
|
|
for ((i=0; i<60; i++))
|
|
do
|
|
docker-compose exec $node mysql -umaxuser -pmaxpwd -e "select 1" >& /dev/null && break
|
|
sleep 1
|
|
done
|
|
echo "Done!"
|
|
done
|
|
|
|
# Run tests
|
|
npm test
|
|
rval=$?
|
|
|
|
# Stop MariaDB servers
|
|
docker-compose down -v
|
|
|
|
exit $rval
|