Added hint tests

Fixed readwritesplit tests looking for test input in the wrong directory
Updated the canonical query test expected output
This commit is contained in:
Markus Makela
2014-09-15 09:27:47 +03:00
parent 5d26cf6fd5
commit 0f07c9f08c
8 changed files with 59 additions and 55 deletions

View File

@ -42,4 +42,5 @@ macro(set_variables)
# Install init.d scripts and ldconf configuration files # Install init.d scripts and ldconf configuration files
set(INSTALL_SYSTEM_FILES TRUE CACHE BOOL "Install init.d scripts and ldconf configuration files") set(INSTALL_SYSTEM_FILES TRUE CACHE BOOL "Install init.d scripts and ldconf configuration files")
endmacro() endmacro()

View File

@ -1,7 +1,7 @@
select md5(?) =?, sleep(?), rand(?); select md5("?") =?, sleep(?), rand(?)
select * from my1 where md5(?) =?; select * from my1 where md5("?") =?
select md5(?) =?; select md5("?") =?
select * from my1 where md5(?) =?; select * from my1 where md5("?") =?
select sleep(?) select sleep(?)
select * from tst where lname='?' select * from tst where lname='?'
select ?,?,?,?,?,? from tst select ?,?,?,?,?,? from tst
@ -13,5 +13,5 @@ create table tst(fname varchar(30), lname varchar(30))
update tst set lname="?" where fname like '?' or lname like '?' update tst set lname="?" where fname like '?' or lname like '?'
delete from tst where lname like '?' and fname like '?' delete from tst where lname like '?' and fname like '?'
select ? from tst where fname='?' or lname like '?' select ? from tst where fname='?' or lname like '?'
select ?,?,?,? from tst where name='?' or name='?' or name='?' select ?,?,?,? from tst where name='?' or name='?' or name='?' or name='?'
select count(?),count(?),count(?),count(?),count (?),count(?) from tst select count(?),count(?),count(?),count(?),count (?),count(?) from tst

View File

@ -1,2 +1,3 @@
add_test(NAME ReadWriteSplitTest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/rwsplit.sh ${TEST_HOST} ${TEST_PORT_RW} ${TEST_MASTER_ID} ${TEST_USER} ${TEST_PASSWORD}) add_test(NAME ReadWriteSplitTest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/rwsplit.sh ${TEST_HOST} ${TEST_PORT_RW} ${TEST_MASTER_ID} ${TEST_USER} ${TEST_PASSWORD} ${CMAKE_CURRENT_SOURCE_DIR})
set_tests_properties(ReadWriteSplitTest PROPERTIES DEPENDS WaitForExecutable) set_tests_properties(ReadWriteSplitTest PROPERTIES DEPENDS RunExecutable)
add_subdirectory(test_hints)

View File

@ -1,10 +1,11 @@
#!/bin/sh #!/bin/sh
NARGS=5 NARGS=6
THOST=$1 THOST=$1
TPORT=$2 TPORT=$2
TMASTER_ID=$3 TMASTER_ID=$3
TUSER=$4 TUSER=$4
TPWD=$5 TPWD=$5
DIR=$6
if [ $# != $NARGS ] ; if [ $# != $NARGS ] ;
then then
@ -20,7 +21,7 @@ fi
RUNCMD=mysql\ --host=$THOST\ -P$TPORT\ -u$TUSER\ -p$TPWD\ --unbuffered=true\ --disable-reconnect\ --silent RUNCMD=mysql\ --host=$THOST\ -P$TPORT\ -u$TUSER\ -p$TPWD\ --unbuffered=true\ --disable-reconnect\ --silent
TINPUT=$PWD/test_transaction_routing2.sql TINPUT=$DIR/test_transaction_routing2.sql
TRETVAL=0 TRETVAL=0
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" != "$TRETVAL" ]; then if [ "$a" != "$TRETVAL" ]; then
@ -29,7 +30,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_transaction_routing2b.sql TINPUT=$DIR/test_transaction_routing2b.sql
TRETVAL=0 TRETVAL=0
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" != "$TRETVAL" ]; then if [ "$a" != "$TRETVAL" ]; then
@ -38,7 +39,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_transaction_routing3.sql TINPUT=$DIR/test_transaction_routing3.sql
TRETVAL=2 TRETVAL=2
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" = "$TMASTER_ID" ]; then if [ "$a" = "$TMASTER_ID" ]; then
@ -47,7 +48,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_transaction_routing3b.sql TINPUT=$DIR/test_transaction_routing3b.sql
TRETVAL=2 TRETVAL=2
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" = "$TMASTER_ID" ]; then if [ "$a" = "$TMASTER_ID" ]; then
@ -57,7 +58,7 @@ else
fi fi
# test implicit transaction, that is, not started explicitly, autocommit=0 # test implicit transaction, that is, not started explicitly, autocommit=0
TINPUT=$PWD/test_transaction_routing4.sql TINPUT=$DIR/test_transaction_routing4.sql
TRETVAL=0 TRETVAL=0
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" != "$TRETVAL" ]; then if [ "$a" != "$TRETVAL" ]; then
@ -66,7 +67,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_transaction_routing4b.sql TINPUT=$DIR/test_transaction_routing4b.sql
TRETVAL=0 TRETVAL=0
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" != "$TRETVAL" ]; then if [ "$a" != "$TRETVAL" ]; then
@ -76,7 +77,7 @@ else
fi fi
# set a var via SELECT INTO @, get data from master, returning server-id: put master server-id value in TRETVAL # set a var via SELECT INTO @, get data from master, returning server-id: put master server-id value in TRETVAL
TINPUT=$PWD/select_for_var_set.sql TINPUT=$DIR/select_for_var_set.sql
TRETVAL=$TMASTER_ID TRETVAL=$TMASTER_ID
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
@ -86,7 +87,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_implicit_commit1.sql TINPUT=$DIR/test_implicit_commit1.sql
TRETVAL=$TMASTER_ID TRETVAL=$TMASTER_ID
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
@ -96,7 +97,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_implicit_commit2.sql TINPUT=$DIR/test_implicit_commit2.sql
TRETVAL=$TMASTER_ID TRETVAL=$TMASTER_ID
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" = "$TRETVAL" ]; then if [ "$a" = "$TRETVAL" ]; then
@ -105,7 +106,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_implicit_commit3.sql TINPUT=$DIR/test_implicit_commit3.sql
TRETVAL=$TMASTER_ID TRETVAL=$TMASTER_ID
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" = "$TRETVAL" ]; then if [ "$a" = "$TRETVAL" ]; then
@ -114,7 +115,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_implicit_commit4.sql TINPUT=$DIR/test_implicit_commit4.sql
TRETVAL=$TMASTER_ID TRETVAL=$TMASTER_ID
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" != "$TRETVAL" ]; then if [ "$a" != "$TRETVAL" ]; then
@ -132,7 +133,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_implicit_commit6.sql TINPUT=$DIR/test_implicit_commit6.sql
TRETVAL=$TMASTER_ID TRETVAL=$TMASTER_ID
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" = "$TRETVAL" ]; then if [ "$a" = "$TRETVAL" ]; then
@ -141,7 +142,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_implicit_commit7.sql TINPUT=$DIR/test_implicit_commit7.sql
TRETVAL=$TMASTER_ID TRETVAL=$TMASTER_ID
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" = "$TRETVAL" ]; then if [ "$a" = "$TRETVAL" ]; then
@ -150,7 +151,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_autocommit_disabled1.sql TINPUT=$DIR/test_autocommit_disabled1.sql
TRETVAL=1 TRETVAL=1
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" != "$TRETVAL" ]; then if [ "$a" != "$TRETVAL" ]; then
@ -159,7 +160,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_autocommit_disabled1b.sql TINPUT=$DIR/test_autocommit_disabled1b.sql
TRETVAL=1 TRETVAL=1
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" != "$TRETVAL" ]; then if [ "$a" != "$TRETVAL" ]; then
@ -170,7 +171,7 @@ fi
# Disable autocommit in the first session and then test in new session that # Disable autocommit in the first session and then test in new session that
# it is again enabled. # it is again enabled.
TINPUT=$PWD/test_autocommit_disabled2.sql TINPUT=$DIR/test_autocommit_disabled2.sql
TRETVAL=1 TRETVAL=1
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" != "$TRETVAL" ]; then if [ "$a" != "$TRETVAL" ]; then
@ -179,7 +180,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/set_autocommit_disabled.sql TINPUT=$DIR/set_autocommit_disabled.sql
`$RUNCMD < $TINPUT` `$RUNCMD < $TINPUT`
TINPUT=test_after_autocommit_disabled.sql TINPUT=test_after_autocommit_disabled.sql
TRETVAL=$TMASTER_ID TRETVAL=$TMASTER_ID
@ -191,7 +192,7 @@ else
fi fi
TINPUT=$PWD/test_sescmd.sql TINPUT=$DIR/test_sescmd.sql
TRETVAL=2 TRETVAL=2
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
if [ "$a" != "$TRETVAL" ]; then if [ "$a" != "$TRETVAL" ]; then
@ -230,7 +231,7 @@ else
echo "$TINPUT PASSED" ; echo "$TINPUT PASSED" ;
fi fi
TINPUT=$PWD/test_temporary_table.sql TINPUT=$DIR/test_temporary_table.sql
a=`$RUNCMD < $TINPUT` a=`$RUNCMD < $TINPUT`
TRETVAL=1 TRETVAL=1
if [ "$a" != "$TRETVAL" ]; then if [ "$a" != "$TRETVAL" ]; then
@ -244,13 +245,9 @@ echo "Session variables: Stress Test 1"
echo "-----------------------------------" echo "-----------------------------------"
RUNCMD=mysql\ --host=$THOST\ -P$TPORT\ -u$TUSER\ -p$TPWD\ --unbuffered=true\ --disable-reconnect\ -q\ -r RUNCMD=mysql\ --host=$THOST\ -P$TPORT\ -u$TUSER\ -p$TPWD\ --unbuffered=true\ --disable-reconnect\ -q\ -r
TINPUT=$PWD/test_sescmd2.sql TINPUT=$DIR/test_sescmd2.sql
for ((i = 0;i<1000;i++)) for ((i = 0;i<1000;i++))
do do
if [[ $(( i % 50 )) -eq 0 ]]
then
printf "."
fi
a=`$RUNCMD < $TINPUT 2>&1` a=`$RUNCMD < $TINPUT 2>&1`
if [[ "`echo "$a"|grep -i 'error'`" != "" ]] if [[ "`echo "$a"|grep -i 'error'`" != "" ]]
then then
@ -270,13 +267,9 @@ echo "Session variables: Stress Test 2"
echo "-----------------------------------" echo "-----------------------------------"
echo "" echo ""
err="" err=""
TINPUT=$PWD/test_sescmd3.sql TINPUT=$DIR/test_sescmd3.sql
for ((j = 0;j<1000;j++)) for ((j = 0;j<1000;j++))
do do
if [[ $(( j % 50 )) -eq 0 ]]
then
printf "."
fi
b=`$RUNCMD < $TINPUT 2>&1` b=`$RUNCMD < $TINPUT 2>&1`
if [[ "`echo "$b"|grep -i 'null\|error'`" != "" ]] if [[ "`echo "$b"|grep -i 'null\|error'`" != "" ]]
then then

View File

@ -0,0 +1,3 @@
add_test(NAME SimpleHintTest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/rwsplit_hints.sh ${TEST_HOST} ${TEST_PORT_RW_HINT} ${TEST_MASTER_ID} ${TEST_USER} ${TEST_PASSWORD} ${CMAKE_CURRENT_SOURCE_DIR}/simple_tests ${CMAKE_CURRENT_SOURCE_DIR})
add_test(NAME ComplexHintTest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/rwsplit_hints.sh ${TEST_HOST} ${TEST_PORT_RW_HINT} ${TEST_MASTER_ID} ${TEST_USER} ${TEST_PASSWORD} ${CMAKE_CURRENT_SOURCE_DIR}/complex_tests ${CMAKE_CURRENT_SOURCE_DIR})
add_test(NAME StackHintTest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/rwsplit_hints.sh ${TEST_HOST} ${TEST_PORT_RW_HINT} ${TEST_MASTER_ID} ${TEST_USER} ${TEST_PASSWORD} ${CMAKE_CURRENT_SOURCE_DIR}/stack_tests ${CMAKE_CURRENT_SOURCE_DIR})

View File

@ -1,12 +1,12 @@
#!/bin/bash #!/bin/bash
NARGS=7 NARGS=7
TLOG=$1 THOST=$1
THOST=$2 TPORT=$2
TPORT=$3 TMASTER_ID=$3
TMASTER_ID=$4 TUSER=$4
TUSER=$5 TPWD=$5
TPWD=$6 TESTINPUT=$6
TESTINPUT=$7 DIR=$7
if [ $# != $NARGS ] ; if [ $# != $NARGS ] ;
then then
@ -14,7 +14,7 @@ echo""
echo "Wrong number of arguments, gave "$#" but "$NARGS" is required" echo "Wrong number of arguments, gave "$#" but "$NARGS" is required"
echo "" echo ""
echo "Usage :" echo "Usage :"
echo " rwsplit_hints.sh <log filename> <host> <port> <master id> <user> <password> <test file>" echo " rwsplit_hints.sh <host> <port> <master id> <user> <password> <test file> <script directory>"
echo "" echo ""
exit 1 exit 1
fi fi
@ -43,7 +43,7 @@ crash=0
if [ "$TOUTPUT" != "${TRETVAL[x]}" -a "${TRETVAL[x]}" != "" ] if [ "$TOUTPUT" != "${TRETVAL[x]}" -a "${TRETVAL[x]}" != "" ]
then then
all_passed=0 all_passed=0
echo "$TESTINPUT:$((x + 1)): ${TINPUT[x]} FAILED, return value $TOUTPUT when ${TRETVAL[x]} was expected">>$TLOG; echo "$TESTINPUT:$((x + 1)): ${TINPUT[x]} FAILED, return value $TOUTPUT when ${TRETVAL[x]} was expected";
fi fi
x=$((x+1)) x=$((x+1))
done < $TESTINPUT.output done < $TESTINPUT.output
@ -53,13 +53,15 @@ then
all_passed=0 all_passed=0
for ((v=0;v<$i;v++)) for ((v=0;v<$i;v++))
do do
echo "${TINPUT[v]} FAILED, nothing was returned">>$TLOG; echo "${TINPUT[v]} FAILED, nothing was returned";
done done
fi fi
if [ $all_passed -eq 1 ] if [ $all_passed -eq 1 ]
then then
echo "Test set: PASSED">>$TLOG; echo "Test set: PASSED";
exit 0
else else
echo "Test set: FAILED">>$TLOG; echo "Test set: FAILED";
exit 1
fi fi

View File

@ -1,5 +1,5 @@
add_test(NAME RunExecutable COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/startmaxscale.sh $<TARGET_FILE:maxscale> "-c ${CMAKE_BINARY_DIR}/") file(COPY MaxScale_test.cnf DESTINATION ${CMAKE_BINARY_DIR}/etc)
add_test(NAME WaitForExecutable COMMAND sleep 5) file(RENAME ${CMAKE_BINARY_DIR}/etc/MaxScale_test.cnf ${CMAKE_BINARY_DIR}/etc/MaxScale.cnf)
add_test(NAME KillExecutable COMMAND killall maxscale) add_test(NAME RunExecutable COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/startmaxscale.sh "$<TARGET_FILE_DIR:maxscale>" "-c ${CMAKE_BINARY_DIR}")
set_tests_properties(WaitForExecutable PROPERTIES DEPENDS RunExecutable) set_tests_properties(RunExecutable PROPERTIES TIMEOUT 10)
set_tests_properties(KillExecutable PROPERTIES DEPENDS ReadWriteSplitTest) set_tests_properties(RunExecutable PROPERTIES WILL_FAIL TRUE)

6
server/test/startmaxscale.sh Normal file → Executable file
View File

@ -1,2 +1,6 @@
#!/bin/sh #!/bin/sh
$1 $2 & killall -KILL maxscale
sleep 1
nohup $1/maxscale $2 &
trap "echo trap triggered." SIGABRT
exit 0