Backport NPM test fixes

Backported to 2.2.
This commit is contained in:
Markus Mäkelä
2018-09-18 21:13:12 +03:00
parent f29d3d5588
commit 800c9e1c9e
8 changed files with 99 additions and 86 deletions

View File

@ -3,6 +3,7 @@ services:
server1:
image: mariadb:10.2
network_mode: "host"
container_name: server1
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: Y
volumes:
@ -11,6 +12,7 @@ services:
server2:
image: mariadb:10.2
container_name: server2
network_mode: "host"
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: Y
@ -20,6 +22,7 @@ services:
server3:
image: mariadb:10.2
container_name: server3
network_mode: "host"
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: Y
@ -29,6 +32,7 @@ services:
server4:
image: mariadb:10.2
container_name: server4
network_mode: "host"
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: Y

View File

@ -1,6 +1,5 @@
[maxscale]
threads=4
log_info=1
libdir=@CMAKE_INSTALL_PREFIX@/@MAXSCALE_LIBDIR@
logdir=@CMAKE_INSTALL_PREFIX@/log/maxscale/
datadir=@CMAKE_INSTALL_PREFIX@/lib/maxscale
@ -14,7 +13,7 @@ type=monitor
module=mariadbmon
servers=server1,server2,server3,server4
user=maxuser
passwd=maxpwd
password=maxpwd
monitor_interval=10000
[RW-Split-Router]
@ -22,7 +21,7 @@ type=service
router=readwritesplit
servers=server1,server2,server3,server4
user=maxuser
passwd=maxpwd
password=maxpwd
max_slave_connections=100%
[SchemaRouter-Router]
@ -30,7 +29,7 @@ type=service
router=schemarouter
servers=server1,server2,server3,server4
user=maxuser
passwd=maxpwd
password=maxpwd
auth_all_servers=1
[RW-Split-Hint-Router]
@ -38,7 +37,7 @@ type=service
router=readwritesplit
servers=server1,server2,server3,server4
user=maxuser
passwd=maxpwd
password=maxpwd
max_slave_connections=100%
filters=Hint
@ -48,7 +47,7 @@ router=readconnroute
router_options=master
servers=server1
user=maxuser
passwd=maxpwd
password=maxpwd
filters=QLA
[Hint]

View File

@ -1,13 +1,12 @@
[maxscale]
threads=4
log_info=1
libdir=@CMAKE_INSTALL_PREFIX@/@MAXSCALE_LIBDIR@
logdir=@CMAKE_INSTALL_PREFIX@/secondary/log/maxscale/
datadir=@CMAKE_INSTALL_PREFIX@/secondary/lib/maxscale
cachedir=@CMAKE_INSTALL_PREFIX@/secondary/cache/maxscale
language=@CMAKE_INSTALL_PREFIX@/secondary/lib/maxscale/
piddir=@CMAKE_INSTALL_PREFIX@/secondary/run/maxscale
config_persistdir=@CMAKE_INSTALL_PREFIX@/secondary/lib/maxscale/
persistdir=@CMAKE_INSTALL_PREFIX@/secondary/lib/maxscale/maxscale.cnf.d/
admin_auth=false
admin_port=8990
@ -16,7 +15,7 @@ type=monitor
module=mariadbmon
servers=server1,server2,server3,server4
user=maxuser
passwd=maxpwd
password=maxpwd
monitor_interval=10000
[RW-Split-Router]
@ -24,7 +23,7 @@ type=service
router=readwritesplit
servers=server1,server2,server3,server4
user=maxuser
passwd=maxpwd
password=maxpwd
max_slave_connections=100%
[SchemaRouter-Router]
@ -32,7 +31,7 @@ type=service
router=schemarouter
servers=server1,server2,server3,server4
user=maxuser
passwd=maxpwd
password=maxpwd
auth_all_servers=1
[RW-Split-Hint-Router]
@ -40,7 +39,7 @@ type=service
router=readwritesplit
servers=server1,server2,server3,server4
user=maxuser
passwd=maxpwd
password=maxpwd
max_slave_connections=100%
filters=Hint
@ -50,7 +49,8 @@ router=readconnroute
router_options=master
servers=server1
user=maxuser
passwd=maxpwd
password=maxpwd
filters=QLA
[Hint]
type=filter
@ -71,6 +71,14 @@ type=filter
module=tee
service=RW-Split-Hint-Router
[QLA]
type=filter
module=qlafilter
log_type=unified
append=false
flush=true
filebase=/tmp/qla2.log
[CLI]
type=service
router=cli

View File

@ -18,6 +18,8 @@ testdir=$3
maxscaledir=$PWD/maxscale_test/
rm -f $maxscaledir/maxscale{,1,2}.output $maxscaledir/{,secondary/}log/maxscale/maxscale.log
# Create the test directories
mkdir -p $maxscaledir $testdir
@ -30,6 +32,9 @@ cp -t $testdir -r $testsrc/*
# Required by MaxCtrl (not super pretty)
cp -t $testdir/.. $srcdir/VERSION*.cmake
# This avoids running npm as root if we're executing the tests as root (MaxCtrl specific)
(cd $testdir && test -f configure_version.cmake && cmake -P configure_version.cmake)
# Copy required docker-compose files to the MaxScale directory and bring MariaDB
# servers up. This is an asynchronous process.
cd $maxscaledir
@ -44,17 +49,13 @@ npm install || exit 1
cd $maxscaledir
cmake $srcdir -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$maxscaledir \
-DBUILD_TESTS=Y \
-DBUILD_TESTS=N \
-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` || exit 1
-DBUILD_CDC=N || exit 1
make install || exit 1
make -j $(grep -c processor /proc/cpuinfo) install || exit 1
# Create required directories (we could run the postinst script but it's a bit too invasive)
mkdir -p $maxscaledir/lib64/maxscale
@ -80,10 +81,20 @@ 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
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

@ -9,37 +9,46 @@ maxscaledir=$MAXSCALE_DIR
test -z "$MAXSCALE_DIR" && exit 1
# Create directories for the secondary MaxScale
# Create directories for both MaxScales
rm -r $maxscaledir/lib/maxscale
rm -r $maxscaledir/cache/maxscale
rm -r $maxscaledir/run/maxscale
rm -r $maxscaledir/secondary/lib/maxscale
rm -r $maxscaledir/secondary/cache/maxscale
rm -r $maxscaledir/secondary/run/maxscale
rm -r $maxscaledir/secondary/log/maxscale
test -f /tmp/maxadmin.sock && rm /tmp/maxadmin.sock
test -f /tmp/maxadmin2.sock && rm /tmp/maxadmin2.sock
mkdir -m 0755 -p $maxscaledir/secondary/lib/maxscale
mkdir -m 0755 -p $maxscaledir/lib/maxscale/maxscale.cnf.d
mkdir -m 0755 -p $maxscaledir/cache/maxscale
mkdir -m 0755 -p $maxscaledir/run/maxscale
mkdir -m 0755 -p $maxscaledir/log/maxscale
mkdir -m 0755 -p $maxscaledir/secondary/lib/maxscale/maxscale.cnf.d
mkdir -m 0755 -p $maxscaledir/secondary/cache/maxscale
mkdir -m 0755 -p $maxscaledir/secondary/run/maxscale
mkdir -m 0755 -p $maxscaledir/secondary/log/maxscale
# Start MaxScale
$maxscaledir/bin/maxscale -lstdout -df $maxscaledir/maxscale.cnf >& $maxscaledir/maxscale1.output &
if [ "`whoami`" == "root" ]
then
user_opt="-U root"
fi
# Wait for the first MaxScale to start
for ((i=0;i<60;i++))
do
$maxscaledir/bin/maxadmin help >& /dev/null && break
sleep 0.1
done
# Start MaxScale
$maxscaledir/bin/maxscale $user_opt -f $maxscaledir/maxscale.cnf &>> $maxscaledir/maxscale1.output || exit 1
# Start a second maxscale
$maxscaledir/bin/maxscale -lstdout -df $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 second MaxScale to start
for ((i=0;i<60;i++))
# Wait for the MaxScales to start
for ((i=0;i<150;i++))
do
$maxscaledir/bin/maxadmin -S /tmp/maxadmin2.sock help >& /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
# Give MaxScale some time to settle
sleep 1
# MaxScales failed to start, exit with an error
exit 1

View File

@ -9,16 +9,30 @@ maxscaledir=$MAXSCALE_DIR
test -z "$MAXSCALE_DIR" && exit 1
rm -r $maxscaledir/lib/maxscale
rm -r $maxscaledir/cache/maxscale
rm -r $maxscaledir/run/maxscale
test -f /tmp/maxadmin.sock && rm /tmp/maxadmin.sock
mkdir -m 0755 -p $maxscaledir/lib/maxscale/maxscale.cnf.d
mkdir -m 0755 -p $maxscaledir/cache/maxscale
mkdir -m 0755 -p $maxscaledir/run/maxscale
mkdir -m 0755 -p $maxscaledir/log/maxscale
if [ "`whoami`" == "root" ]
then
user_opt="-U root"
fi
# Start MaxScale
$maxscaledir/bin/maxscale -df $maxscaledir/maxscale.cnf >& $maxscaledir/maxscale.output &
pid=$!
$maxscaledir/bin/maxscale $user_opt -f $maxscaledir/maxscale.cnf &>> $maxscaledir/maxscale.output || exit 1
# Wait for MaxScale to start
for ((i=0;i<60;i++))
for ((i=0;i<150;i++))
do
$maxscaledir/bin/maxadmin help >& /dev/null && break
$maxscaledir/bin/maxctrl list servers >& /dev/null && exit 0
sleep 0.1
done
# Give MaxScale some time to settle
sleep 1
# MaxScale failed to start, exit with an error
exit 1

View File

@ -1,29 +1,3 @@
#!/bin/bash
#
# This script is run after each test block. It kills the two MaxScale processes
# and cleans up the directories that contain generated files.
#
maxscaledir=$MAXSCALE_DIR
test -z "$MAXSCALE_DIR" && exit 1
for ((i=0;i<20;i++))
do
pkill '^maxscale$' || break
sleep 0.5
done
# If it wasn't dead before, now it is
pkill -9 '^maxscale$'
rm -r $maxscaledir/lib/maxscale
rm -r $maxscaledir/cache/maxscale
rm -r $maxscaledir/run/maxscale
test -f /tmp/maxadmin.sock && rm /tmp/maxadmin.sock
test -f /tmp/maxadmin2.sock && rm /tmp/maxadmin2.sock
mkdir -m 0755 -p $maxscaledir/lib/maxscale
mkdir -m 0755 -p $maxscaledir/cache/maxscale
mkdir -m 0755 -p $maxscaledir/run/maxscale
./stop_maxscale.sh

View File

@ -1,28 +1,22 @@
#!/bin/bash
#
# This script is run after each test block. It kills the MaxScale process
# and cleans up the directories that contain generated files.
# This script is run after each test block. It kills the MaxScale process.
#
maxscaledir=$MAXSCALE_DIR
test -z "$MAXSCALE_DIR" && exit 1
for ((i=0;i<20;i++))
pkill '^maxscale$'
for ((i=0;i<100;i++))
do
pkill '^maxscale$' || break
sleep 0.5
pgrep '^maxscale$' &> /dev/null || break
sleep 0.1
done
# If it wasn't dead before, now it is
pkill -9 '^maxscale$'
pgrep '^maxscale$' &> /dev/null && pkill -11 '^maxscale$'
rm -r $maxscaledir/lib/maxscale
rm -r $maxscaledir/cache/maxscale
rm -r $maxscaledir/run/maxscale
test -f /tmp/maxadmin.sock && rm /tmp/maxadmin.sock
mkdir -m 0755 -p $maxscaledir/lib/maxscale
mkdir -m 0755 -p $maxscaledir/cache/maxscale
mkdir -m 0755 -p $maxscaledir/run/maxscale
exit 0