76 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
NARGS=8
 | 
						|
TLOG=$1
 | 
						|
THOST=$2
 | 
						|
TPORT=$3
 | 
						|
TMASTER_ID=$4
 | 
						|
TUSER=$5
 | 
						|
TPWD=$6
 | 
						|
TESTINPUT=$7
 | 
						|
TESTFILE=$PWD/$(basename -z $TESTINPUT)
 | 
						|
if [ $# -lt $(( NARGS - 1 )) ] ;
 | 
						|
then
 | 
						|
    echo""
 | 
						|
    echo "Wrong number of arguments, gave "$#" but "$(( NARGS - 1 ))" is required"
 | 
						|
    echo "" 
 | 
						|
    echo "Usage :" 
 | 
						|
    echo "        rwsplit_hints.sh <log filename> <host> <port> <master id> <user> <password> <test file>"
 | 
						|
    echo ""
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
if [ $# -eq $NARGS  ]
 | 
						|
then
 | 
						|
    TDIR=$8
 | 
						|
else
 | 
						|
    TDIR=.
 | 
						|
fi
 | 
						|
 | 
						|
RUNCMD=mysql\ --host=$THOST\ -P$TPORT\ -u$TUSER\ -p$TPWD\ --unbuffered=true\ --disable-reconnect\ --silent\ --comment
 | 
						|
i=0
 | 
						|
 | 
						|
while read -r LINE
 | 
						|
do
 | 
						|
    TINPUT[$i]=`echo "$LINE"|awk '{split($0,a,":");print a[1]}'`
 | 
						|
    TRETVAL[$i]=`echo "$LINE"|awk '{split($0,a,":");print a[2]}'`
 | 
						|
    echo "${TINPUT[i]}" >> $TESTFILE.sql
 | 
						|
    i=$((i+1))
 | 
						|
done < $TESTINPUT
 | 
						|
 | 
						|
`$RUNCMD < $TESTFILE.sql > $TESTFILE.output`
 | 
						|
 | 
						|
x=0
 | 
						|
crash=1
 | 
						|
all_passed=1
 | 
						|
 | 
						|
while read -r TOUTPUT
 | 
						|
do
 | 
						|
    crash=0
 | 
						|
    if [ "$TOUTPUT" != "${TRETVAL[x]}" -a "${TRETVAL[x]}" != "" ]
 | 
						|
    then 
 | 
						|
        all_passed=0
 | 
						|
        echo "$TESTINPUT:$((x + 1)): ${TINPUT[x]} FAILED, return value $TOUTPUT when ${TRETVAL[x]} was expected">>$TLOG; 
 | 
						|
    fi
 | 
						|
    x=$((x+1))
 | 
						|
done < $TESTFILE.output
 | 
						|
 | 
						|
if [ $crash -eq 1 ]
 | 
						|
then
 | 
						|
    all_passed=0
 | 
						|
    for ((v=0;v<$i;v++))
 | 
						|
    do
 | 
						|
	    echo "${TINPUT[v]} FAILED, nothing was returned">>$TLOG; 
 | 
						|
    done
 | 
						|
fi
 | 
						|
 | 
						|
if [ $all_passed -eq 1 ]
 | 
						|
then
 | 
						|
    echo "Test set: PASSED">>$TLOG;
 | 
						|
    cat $TLOG
 | 
						|
    exit 0
 | 
						|
else
 | 
						|
    echo "Test set: FAILED">>$TLOG;
 | 
						|
    cat $TLOG
 | 
						|
    exit 1
 | 
						|
fi
 |