diff options
Diffstat (limited to 'ndb/bin')
-rw-r--r-- | ndb/bin/.empty | 0 | ||||
-rwxr-xr-x | ndb/bin/check-regression.sh | 180 | ||||
-rwxr-xr-x | ndb/bin/makeTestPrograms_html.sh | 22 | ||||
-rwxr-xr-x | ndb/bin/mysqlcluster | 11 | ||||
-rwxr-xr-x | ndb/bin/mysqlcluster_install_db | 119 | ||||
-rwxr-xr-x | ndb/bin/mysqlclusterd | 34 | ||||
-rw-r--r-- | ndb/bin/regression.sh | 644 |
7 files changed, 1010 insertions, 0 deletions
diff --git a/ndb/bin/.empty b/ndb/bin/.empty new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/ndb/bin/.empty diff --git a/ndb/bin/check-regression.sh b/ndb/bin/check-regression.sh new file mode 100755 index 00000000000..93a31ccb39c --- /dev/null +++ b/ndb/bin/check-regression.sh @@ -0,0 +1,180 @@ +#!/bin/sh +# NAME +# check-regression.sh +# +# SYNOPSIS +# check-regression.sh +# +# DESCRIPTION +# +# This scrip must be run before any major cvs checkins are done. +# It will perform a number of regression tests to check that +# nothing is broken. +# +# OPTIONS +# +# EXAMPLES +# +# +# ENVIRONMENT +# NDB_PROJ_HOME Home dir for ndb +# verbose verbose printouts +# +# FILES +# $NDB_PROJ_HOME/lib/funcs.sh general shell script functions +# +# +# SEE ALSO +# +# DIAGNOSTICTS +# +# +# VERSION +# 1.0 +# +# AUTHOR +# +# + +. $NDB_PROJ_HOME/lib/funcs.sh # Load some good stuff + +synopsis="check-regression.sh" +progname=`basename $0` + +numOfTestsOK=0 +numOfTestsFailed=0 + +LOG=check-regression.`date '+%Y-%m-%d'` + +executeTest() +{ + eval "$@" | tee -a $LOG + + if [ $? -eq 0 ] + then + echo "SUCCESS: $@" + numOfTestsOK=`expr $numOfTestsOK + 1` + else + echo "FAILED: $@" + numOfTestsFailed=`expr $numOfTestsFailed + 1` + fi +} + +# +# INFO +# +trace "Starting: `date`" +trace "NDB_PROJ_HOME = $NDB_PROJ_HOME" +trace "NDB_TOP = $NDB_TOP" + +# +# THE TESTS TO EXECUTE +# + +# Testsuite: testDataBuffers +# Number of tests: 1 +executeTest 'drop_tab ' TB00 TB01 TB02 TB03 TB04 TB05 TB06 TB07 TB08 TB09 TB10 TB11 TB12 TB13 TB14 TB15 +executeTest 'testDataBuffers' +executeTest 'drop_tab ' TB00 TB01 TB02 TB03 TB04 TB05 TB06 TB07 TB08 TB09 TB10 TB11 TB12 TB13 TB14 TB15 + +TABLES="T9 T13" + +# Testsuite: testBasic +# Number of tests: 16 +executeTest 'testBasic -n PkInsert' $TABLES +executeTest 'testBasic -n PkRead' $TABLES +executeTest 'testBasic -n PkUpdate' $TABLES +executeTest 'testBasic -n PkDelete' $TABLES +#executeTest 'testBasic -n UpdateAndRead' +#executeTest 'testBasic -n PkReadAndLocker' +#executeTest 'testBasic -n PkReadAndLocker2' +#executeTest 'testBasic -n PkReadUpdateAndLocker' +#executeTest 'testBasic -n ReadWithLocksAndInserts' +#executeTest 'testBasic -n ReadConsistency' +#executeTest 'testBasic -n PkInsertTwice' +#executeTest 'testBasic -n Fill' +#executeTest 'testBasic -n FillTwice' +#executeTest 'testBasic -n NoCommitSleep' +#executeTest 'testBasic -n NoCommit626' +#executeTest 'testBasic -n NoCommitAndClose' + +# Testsuite: testBasicAsynch +# Number of tests: 4 +executeTest 'testBasicAsynch -n PkInsertAsynch' $TABLES +executeTest 'testBasicAsynch -n PkReadAsynch' $TABLES +executeTest 'testBasicAsynch -n PkUpdateAsynch' $TABLES +executeTest 'testBasicAsynch -n PkDeleteAsynch' $TABLES + +# Testsuite: testDict +# Number of tests: 6 +#executeTest 'testDict -n CreateAndDrop' +#executeTest 'testDict -n CreateAndDropWithData' +#executeTest 'testDict -n CreateAndDropDuring' +#executeTest 'testDict -n CreateInvalidTables' +#executeTest 'testDict -n CreateTableWhenDbIsFull' +#executeTest 'testDict -n CreateMaxTables' + +# Testsuite: testScan +# Number of tests: 34 +#executeTest 'testScan -n ScanRead' +#executeTest 'testScan -n ScanRead16' +executeTest 'testScan -n ScanRead240' $TABLES +executeTest 'testScan -n ScanUpdate' $TABLES +executeTest 'testScan -n ScanUpdate2' $TABLES +executeTest 'testScan -n ScanDelete' $TABLES +executeTest 'testScan -n ScanDelete2' $TABLES +#executeTest 'testScan -n ScanUpdateAndScanRead' +#executeTest 'testScan -n ScanReadAndLocker' +#executeTest 'testScan -n ScanReadAndPkRead' +#executeTest 'testScan -n ScanRead488' +#executeTest 'testScan -n ScanWithLocksAndInserts' +#executeTest 'testScan -n ScanReadAbort' +#executeTest 'testScan -n ScanReadAbort15' +#executeTest 'testScan -n ScanReadAbort16' +#executeTest 'testScan -n ScanUpdateAbort16' +#executeTest 'testScan -n ScanReadAbort240' +#executeTest 'testScan -n ScanReadRestart' +#executeTest 'testScan -n ScanReadRestart16' +#executeTest 'testScan -n ScanReadRestart32' +#executeTest 'testScan -n ScanUpdateRestart' +#executeTest 'testScan -n ScanUpdateRestart16' +#executeTest 'testScan -n CheckGetValue' +#executeTest 'testScan -n CloseWithoutStop' +#executeTest 'testScan -n NextScanWhenNoMore' +#executeTest 'testScan -n ExecuteScanWithoutOpenScan' +#executeTest 'testScan -n OnlyOpenScanOnce' +#executeTest 'testScan -n OnlyOneOpInScanTrans' +#executeTest 'testScan -n OnlyOneOpBeforeOpenScan' +#executeTest 'testScan -n OnlyOneScanPerTrans' +#executeTest 'testScan -n NoCloseTransaction' +#executeTest 'testScan -n CheckInactivityTimeOut' +#executeTest 'testScan -n CheckInactivityBeforeClose' +#executeTest 'testScan -n CheckAfterTerror' + +# Testsuite: testScanInterpreter +# Number of tests: 1 +#executeTest 'testScanInterpreter -n ScanLessThan' + +TABLES="T6 T13" + +# Testsuite: testSystemRestart +# Number of tests: 4 +executeTest 'testSystemRestart -l 1 -n SR1' $TABLES +executeTest 'testSystemRestart -l 1 -n SR2' $TABLES +#executeTest 'testSystemRestart -n SR_UNDO' +#executeTest 'testSystemRestart -n SR_FULLDB' + +# TESTS FINISHED +trace "Finished: `date`" + +# +# TEST SUMMARY +# +if [ $numOfTestsFailed -eq 0 ] +then + echo "-- REGRESSION TEST SUCCESSFUL --" +else + echo "-- REGRESSION TEST FAILED!! --" +fi +echo "Number of successful tests: $numOfTestsOK" +echo "Number of failed tests : $numOfTestsFailed" diff --git a/ndb/bin/makeTestPrograms_html.sh b/ndb/bin/makeTestPrograms_html.sh new file mode 100755 index 00000000000..ac31c8a6267 --- /dev/null +++ b/ndb/bin/makeTestPrograms_html.sh @@ -0,0 +1,22 @@ +#!/bin/sh +rm $1 +touch $1 +echo "<table border="1" width=640>" >> $1 +echo "<tr>" >> $1 +echo "<td><b>Name</b></td><td> </td><td width="70%"><b>Description</b></td>" >> $1 +echo "</tr>" >> $1 +testBasic --print_html >> $1 +testBackup --print_html >> $1 +testBasicAsynch --print_html >> $1 +testDict --print_html >> $1 +testBank --print_html >> $1 +testIndex --print_html >> $1 +testNdbApi --print_html >> $1 +testNodeRestart --print_html >> $1 +testOperations --print_html >> $1 +testRestartGci --print_html >> $1 +testScan --print_html >> $1 +testScanInterpreter --print_html >> $1 +testSystemRestart --print_html >> $1 +echo "</table>" >> $1 + diff --git a/ndb/bin/mysqlcluster b/ndb/bin/mysqlcluster new file mode 100755 index 00000000000..81fc7308942 --- /dev/null +++ b/ndb/bin/mysqlcluster @@ -0,0 +1,11 @@ +#!/bin/sh +if [ -z "$MYSQLCLUSTER_TOP" -o ! -d "$MYSQLCLUSTER_TOP" ]; then + echo "MYSQLCLUSTER_TOP not set or directory does not exist" + exit 1 +fi +if [ -z "$MYSQLCLUSTER_TOP" -o ! -d "$MYSQLCLUSTER_TOP/ndb" ]; then + echo "$MYSQLCLUSTER_TOP/ndb directory does not exist" + exit 1 +fi + +mysql --socket=$MYSQLCLUSTER_TOP/data/mysqlcluster.sock $* diff --git a/ndb/bin/mysqlcluster_install_db b/ndb/bin/mysqlcluster_install_db new file mode 100755 index 00000000000..6fe95ff105d --- /dev/null +++ b/ndb/bin/mysqlcluster_install_db @@ -0,0 +1,119 @@ +#!/bin/sh + +NDB_HOME= +export NDB_CONNECTSTRING +if [ -z "$MYSQLCLUSTER_TOP" ]; then + echo "MYSQLCLUSTER_TOP not set" + exit 1 +fi +if [ -d "$MYSQLCLUSTER_TOP" ]; then :; else + echo "$MYSQLCLUSTER_TOP directory does not exist" + exit 1 +fi +if [ -d "$MYSQLCLUSTER_TOP/ndb" ]; then :; else + echo "$MYSQLCLUSTER_TOP/ndb directory does not exist" + exit 1 +fi + +start_default_ndbcluster() { + +# configurable parameters, make sure to change in mysqlcluterd as well +MYSQLCLUSTER_FILESYSTEM=$MYSQLCLUSTER_TOP/data/mysqlclusterfs +MYSQLCLUSTER_PORT_BASE="22" # using ports MYSQLCLUSTER_PORT_BASE{"00","01", etc} +# end configurable parameters + +# do some checks + +NDB_CONNECTSTRING= + +[ -d "$MYSQLCLUSTER_FILESYSTEM" ] || mkdir "$MYSQLCLUSTER_FILESYSTEM" +if [ -d "$MYSQLCLUSTER_FILESYSTEM" ]; then :; else + echo "$MYSQLCLUSTER_FILESYSTEM filesystem directory does not exist" + exit 1 +fi + + +# set som help variables + +NDB_HOST="localhost" +NDB_PORT=$MYSQLCLUSTER_PORT_BASE"00" +NDB_CONNECTSTRING_BASE="host=$NDB_HOST:$NDB_PORT;nodeid=" + + +# Edit file system path and ports in config file + +cd $MYSQLCLUSTER_FILESYSTEM +sed \ + -e s,"WRITE_PATH_TO_FILESYSTEM_2_HERE",$MYSQLCLUSTER_FILESYSTEM,g \ + -e s,"CHOOSE_PORT_BASE",$MYSQLCLUSTER_PORT_BASE,g \ + < $MYSQLCLUSTER_TOP/ndb/demos/config-templates/config_template-install.ini \ + > config.ini + + +# Start management server as deamon + +NDB_ID="1" +NDB_CONNECTSTRING=$NDB_CONNECTSTRING_BASE$NDB_ID +#xterm -e mgmtsrvr -c $MYSQLCLUSTER_FILESYSTEM/config.ini & +if mgmtsrvr -d -c $MYSQLCLUSTER_FILESYSTEM/config.ini ; then :; else + echo "Unable to start mgmtsrvr" + exit 1 +fi + + +# Start database node + +cd $MYSQLCLUSTER_FILESYSTEM # the output from the database node gets where it starts +NDB_ID="2" +NDB_CONNECTSTRING=$NDB_CONNECTSTRING_BASE$NDB_ID +#xterm -T "NDB Cluster DB Node" -geometry 80x10 -xrm *.hold:true -e ndb -i & +ndb -d -i & + +# Start xterm for application programs + +NDB_ID="3" +NDB_CONNECTSTRING=$NDB_CONNECTSTRING_BASE$NDB_ID +#xterm -T "NDB Cluster API Node" -geometry 80x10 & +echo set before running ndbApi programs > export NDB_CONNECTSTRING=$NDB_CONNECTSTRING + +# Start management client + +#xterm -T "NDB Management Client" -geometry 80x10 -xrm *.hold:true -e mgmtclient $NDB_HOST $NDB_PORT & +echo "NDB Management Client starts with: mgmtclient $NDB_HOST $NDB_PORT" + +# test if Ndb Cluster starts properly + +NDB_ID="11" +NDB_CONNECTSTRING=$NDB_CONNECTSTRING_BASE$NDB_ID +if list_tables | grep "NDBT_ProgramExit: 0 - OK"; then :; else + echo "Ndbcluster startup failed" + exit 1 +fi +} + +start_mysql_install_db() { + # run install of regular MySQL Server + + cd $MYSQLCLUSTER_TOP + scripts/mysql_install_db --basedir=$MYSQLCLUSTER_TOP --datadir=$MYSQLCLUSTER_TOP/data --socket=$MYSQLCLUSTER_TOP/data/mysqlcluster.sock $* +} + +if test "$1" = "ndb_started" +then + shift + mgmt_host=$1 + shift + mgmt_port=$1 + shift + if [ -z "$mgmt_host" -o -z "$mgmt_port" ]; then + echo "syntax: ndb_started hostname port" + exit 1 + fi + NDB_CONNECTSTRING="host=$mgmt_host:$mgmt_port;nodeid=11" + echo using NDB_CONNECTSTRING=$NDB_CONNECTSTRING + start_mysql_install_db $* +else + start_default_ndbcluster + start_mysql_install_db +fi + diff --git a/ndb/bin/mysqlclusterd b/ndb/bin/mysqlclusterd new file mode 100755 index 00000000000..3b4deb3ed48 --- /dev/null +++ b/ndb/bin/mysqlclusterd @@ -0,0 +1,34 @@ +#!/bin/sh + +# configurable parameters +MYSQLCLUSTER_PORT_BASE="22" +# end configurable parameters + +if [ -z "$MYSQLCLUSTER_TOP" -o ! -d "$MYSQLCLUSTER_TOP" ]; then + echo "MYSQLCLUSTER_TOP not set or directory does not exist" + exit 1 +fi +if [ -z "$MYSQLCLUSTER_TOP" -o ! -d "$MYSQLCLUSTER_TOP/ndb" ]; then + echo "$MYSQLCLUSTER_TOP/ndb directory does not exist" + exit 1 +fi + +if test "$1" = "ndb_started" +then + shift + mgmt_host=$1 + shift + mgmt_port=$1 + shift + if [ -z "$mgmt_host" -o -z "$mgmt_port" ]; then + echo "syntax: ndb_started hostname port" + exit 1 + fi + NDB_CONNECTSTRING="host=$mgmt_host:$mgmt_port;nodeid=11" + echo using NDB_CONNECTSTRING=$NDB_CONNECTSTRING +else + NDB_CONNECTSTRING="host=localhost:"$MYSQLCLUSTER_PORT_BASE"00;nodeid=11" +fi +export NDB_CONNECTSTRING + +mysqld --default-table-type=ndbcluster --basedir=$MYSQLCLUSTER_TOP --datadir=$MYSQLCLUSTER_TOP/data --socket=$MYSQLCLUSTER_TOP/data/mysqlcluster.sock $* diff --git a/ndb/bin/regression.sh b/ndb/bin/regression.sh new file mode 100644 index 00000000000..5e3491af208 --- /dev/null +++ b/ndb/bin/regression.sh @@ -0,0 +1,644 @@ +#!/bin/sh +# NAME +# regression.sh +# +# SYNOPSIS +# regression.sh +# +# DESCRIPTION +# +# This script runs a number of regression tests to verify that nothing +# is broken. Currently it executes the same tests as in the autotest +# regression suite. +# +# OPTIONS +# +# EXAMPLES +# +# +# ENVIRONMENT +# verbose verbose printouts +# +# FILES +# +# +# SEE ALSO +# +# DIAGNOSTICTS +# +# +# VERSION +# 1.0 +# +# AUTHOR +# +# + + +# die prints the supplied message to stderr, +# prefixed with the program name, and exits +# with the exit code given by "-e num" or +# 1, if no -e option is present. +# +die () +{ + die_code__=1 + [ "X$1" = X-e ] && { die_code__=$2; shift 2; } + [ "X$1" = X-- ] && shift + errmsg "$@" + exit $die_code__ +} + + +# msg prints the supplied message to stderr, +# prefixed with the program name. +# +errmsg () +{ + echo "${progname:-<no program name set>}:" "$@" >&2 +} + +# rawdie prints the supplied message to stderr. +# It then exits with the exit code given with "-e num" +# or 1, if no -e option is present. +# +rawdie () +{ + rawdie_code__=1 + [ "X$1" = X-e ] && { rawdie_code__=$2; shift 2; } + [ "X$1" = X-- ] && shift + rawerrmsg "$@" + exit $rawdie_code__ +} + +# Syndie prints the supplied message (if present) to stderr, +# prefixed with the program name, on the first line. +# On the second line, it prints $synopsis. +# It then exits with the exit code given with "-e num" +# or 1, if no -e option is present. +# +syndie () +{ + syndie_code__=1 + [ "X$1" = X-e ] && { syndie_code__=$2; shift 2; } + [ "X$1" = X-- ] && shift + [ -n "$*" ] && msg "$*" + rawdie -e $syndie_code__ "Synopsis: $synopsis" +} + + + + +# msg prints the supplied message to stdout, +# prefixed with the program name. +# +msg () +{ + echo "${progname:-<no program name set>}:" "$@" +} + +rawmsg () { echo "$*"; } # print the supplied message to stdout +rawerrmsg () { echo "$*" >&2; } # print the supplied message to stderr + +# trace prints the supplied message to stdout if verbose is non-null +# +trace () +{ + [ -n "$verbose" ] && msg "$@" +} + + +# errtrace prints the supplied message to stderr if verbose is non-null +# +errtrace () +{ + [ -n "$verbose" ] && msg "$@" >&2 +} + + +synopsis="regression.sh" +progname=`basename $0` + +numOfTestsOK=0 +numOfTestsFailed=0 + +LOG=regression-$1.`date '+%Y-%m-%d'` + +executeTest() +{ + eval "$@" | tee -a $LOG + + if [ $? -eq 0 ] + then + echo "SUCCESS: $@" + numOfTestsOK=`expr $numOfTestsOK + 1` + else + echo "FAILED: $@" + numOfTestsFailed=`expr $numOfTestsFailed + 1` + fi +} + +# +# INFO +# +trace "Starting: `date`" +trace "NDB_TOP = $NDB_TOP" + +# +# THE TESTS TO EXECUTE +# + +# BASIC FUNCTIONALITY +if [ $1 = "basic" ] +then +executeTest 'testBasic -n PkRead' +executeTest 'drop_all_tabs' + +executeTest 'testBasic -n PkUpdate' +executeTest 'drop_all_tabs' + +executeTest 'testBasic -n PkDelete' +executeTest 'drop_all_tabs' + +executeTest 'testBasic -n PkInsert' +executeTest 'drop_all_tabs' + +executeTest 'testBasic -n UpdateAndRead' +executeTest 'drop_all_tabs' + +executeTest 'testBasic -n PkReadAndLocker' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n PkReadAndLocker2' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n PkReadUpdateAndLocker' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n ReadWithLocksAndInserts' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n PkInsertTwice' T1 T6 T10 +executeTest 'drop_tab' T1 T6 T10 + +executeTest 'testBasic -n PkDirtyRead' +executeTest 'drop_all_tabs' + +executeTest 'testBasic -n Fill' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n Fill' T1 +executeTest 'drop_tab' T1 + +executeTest 'testBasic -n NoCommitSleep' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n NoCommit626' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n NoCommitAndClose' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n Commit626' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n CommitTry626' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n CommitAsMuch626' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n NoCommit626' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n NoCommitRollback626' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n Commit630' T1 T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n CommitTry630' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n CommitAsMuch630' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n NoCommit630' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n NoCommitRollback630' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n NoCommitAndClose' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n RollbackUpdate' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n RollbackDeleteMultiple' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n ImplicitRollbackDelete' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n CommitDelete' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n RollbackNothing' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testBasic -n ReadConsistency' T6 +executeTest 'drop_tab' T6 + +executeTest 'testBasic -n PkRead' TPK_33 TPK_34 TPK_1003 TPK_2003 TPK_4092 +executeTest 'drop_tab' TPK_33 TPK_34 TPK_1003 TPK_2003 TPK_4092 + +executeTest 'testBasic -n PkUpdate' TPK_33 TPK_34 TPK_1003 TPK_2003 TPK_4092 +executeTest 'drop_tab' TPK_33 TPK_34 TPK_1003 TPK_2003 TPK_4092 + +executeTest 'testBasic -n PkDelete' TPK_33 TPK_34 TPK_1003 TPK_2003 TPK_4092 +executeTest 'drop_tab' TPK_33 TPK_34 TPK_1003 TPK_2003 TPK_4092 + +executeTest 'testBasic -n PkInsert' TPK_33 TPK_34 TPK_1003 TPK_2003 TPK_409 +executeTest 'drop_tab' TPK_33 TPK_34 TPK_1003 TPK_2003 TPK_4092 + +executeTest 'testBasic -n UpdateAndRead' TPK_33 TPK_34 TPK_1003 TPK_2003 TPK_4092 +#executeTest 'drop_tab' TPK_33 TPK_34 TPK_1003 TPK_2003 TPK_4092 + +executeTest 'testBasicAsynch -n PkInsertAsynch' +executeTest 'drop_all_tabs' + +executeTest 'testBasicAsynch -n PkReadAsynch' +executeTest 'drop_all_tabs' + +executeTest 'testBasicAsynch -n PkUpdateAsynch' +executeTest 'drop_all_tabs' + +executeTest 'testBasicAsynch -n PkDeleteAsynch' +executeTest 'drop_all_tabs' +fi + +# SCAN TESTS +if [ $1 = "scan" ] +then +executeTest 'testScan -n ScanRead16' +executeTest 'drop_all_tabs' + +executeTest 'testScan -n ScanRead240' +executeTest 'drop_all_tabs' + +executeTest 'testScan -n ScanUpdate' +executeTest 'drop_all_tabs' + +executeTest 'testScan -n ScanUpdate2' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanDelete' +executeTest 'drop_all_tab' + +executeTest 'testScan -n ScanDelete2' T10 +executeTest 'drop_tab' T10 + +executeTest 'testScan -n ScanUpdateAndScanRead' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanReadAndLocker' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanReadAndPkRead' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanRead488' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanWithLocksAndInserts' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanReadAbort' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanReadAbort15' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanReadAbort240' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanUpdateAbort16' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanReadRestart' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ScanUpdateRestart' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n CheckGetValue' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n CloseWithoutStop' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n NextScanWhenNoMore' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n ExecuteScanWithoutOpenScan' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n OnlyOpenScanOnce' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n OnlyOneOpInScanTrans' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n OnlyOneOpBeforeOpenScan' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n OnlyOneScanPerTrans' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n NoCloseTransaction' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n CheckInactivityTimeOut' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n CheckInactivityBeforeClose' T6 +executeTest 'drop_tab' T6 + +executeTest 'testScan -n CheckAfterTerror' T6 +executeTest 'drop_tab' T6 +fi + + +# DICT TESTS +if [ $1 = "dict" ] +then +executeTest 'testDict -n CreateAndDrop' +executeTest 'drop_all_tabs' + +executeTest 'testDict -n CreateAndDropWithData' +executeTest 'drop_all_tabs' + +executeTest 'testDict -n CreateAndDropDuring' T6 +executeTest 'drop_tab' T6 + +executeTest 'testDict -n CreateInvalidTables' +executeTest 'drop_all_tabs' + +executeTest 'testDict -n CreateTableWhenDbIsFull' T6 +executeTest 'drop_tab' T6 + +executeTest 'testDict -n CreateMaxTables' T6 +executeTest 'drop_tab' T6 + +executeTest 'testDict -n FragmentTypeAll' T1 T6 T7 T8 +executeTest 'drop_tab' T1 T6 T7 T8 + +executeTest 'testDict -n FragmentTypeAllLarge' T1 T6 T7 T8 +executeTest 'drop_tab' T1 T6 T7 T8 + +executeTest 'testDict -n TemporaryTables' T1 T6 T7 T8 +executeTest 'drop_tab' T1 T6 T7 T8 +fi + +# TEST NDBAPI +if [ $1 = "api" ] +then +executeTest 'testNdbApi -n MaxNdb' T6 +executeTest 'drop_tab' T6 + +executeTest 'testNdbApi -n MaxTransactions' T1 T6 T7 T8 T13 +executeTest 'drop_tab' T1 T6 T7 T8 T13 + +executeTest 'testNdbApi -n MaxOperations' T1 T6 T7 T8 T1 +executeTest 'drop_tab' T1 T6 T7 T8 T13 + +executeTest 'testNdbApi -n MaxGetValue' T1 T6 T7 T8 T13 +executeTest 'drop_tab' T1 T6 T7 T8 T13 + +executeTest 'testNdbApi -n MaxEqual' +executeTest 'drop_all_tabs' + +executeTest 'testNdbApi -n DeleteNdb' T1 T6 +executeTest 'drop_tab' T1 T6 + +executeTest 'testNdbApi -n WaitUntilReady' T1 T6 T7 T8 T13 +executeTest 'drop_tab' T1 T6 T7 T8 T13 + +executeTest 'testNdbApi -n GetOperationNoTab' T6 +executeTest 'drop_tab' T6 + +executeTest 'testNdbApi -n NdbErrorOperation' T6 +executeTest 'drop_tab' T6 + +executeTest 'testNdbApi -n MissingOperation' T6 +executeTest 'drop_tab' T6 + +executeTest 'testNdbApi -n GetValueInUpdate' T6 +executeTest 'drop_tab' T6 + +executeTest 'testNdbApi -n UpdateWithoutKeys' T6 +executeTest 'drop_tab' T6 + +executeTest 'testNdbApi -n UpdateWithoutValues' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n ReadRead' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n ReadReadEx' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n ReadInsert' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n ReadUpdate' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n ReadDelete' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n ReadExRead' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n ReadExReadEx' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n ReadExInsert' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n ReadExUpdate' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n ReadExDelete' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n InsertRead' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n InsertReadEx' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n InsertInsert' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n InsertUpdate' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n InsertDelete' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n UpdateRead' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n UpdateReadEx' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n UpdateInsert' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n UpdateUpdate' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n UpdateDelete' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n DeleteRead' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n DeleteReadEx' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n DeleteInsert' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n DeleteUpdate' T6 +executeTest 'drop_tab' T6 + +executeTest 'testOperations -n DeleteDelete' T6 +executeTest 'drop_tab' T6 + +executeTest 'testRestartGci' T6 +executeTest 'drop_tab' T6 + +executeTest 'testIndex -n CreateAll' +executeTest 'drop_all_tabs' + +executeTest 'testIndex -n InsertDeleteGentle' T1 T6 T8 T10 +executeTest 'drop_tab' T1 T6 T8 T10 + +executeTest 'testIndex -n InsertDelete' T1 T6 T8 T10 +executeTest 'drop_tab' T1 T6 T8 T10 + +executeTest 'testIndex -n CreateLoadDropGentle' T1 T6 T8 T10 +executeTest 'drop_tab' T1 T6 T8 T10 + +executeTest 'testIndex -n CreateLoadDrop' T1 T6 T8 T10 +executeTest 'drop_tab' T1 T6 T8 T10 + +executeTest 'testBackup' -n BackupOne + +executeTest 'testBackup' -n BackupBank T6 +executeTest 'drop_tab' T6 +fi + +# TEST SYSTEM RESTARTS +if [ $1 = "sr" ] +then +executeTest 'testSystemRestart -n SR1' T1 +executeTest 'testSystemRestart -n SR1' T6 +executeTest 'testSystemRestart -n SR1' T7 +executeTest 'testSystemRestart -n SR1' T8 +executeTest 'testSystemRestart -n SR1' T10 +executeTest 'testSystemRestart -n SR2' T1 +executeTest 'testSystemRestart -n SR2' T6 +executeTest 'testSystemRestart -n SR2' T7 +executeTest 'testSystemRestart -n SR2' T10 +executeTest 'testSystemRestart -n SR2' T13 +executeTest 'testSystemRestart -n SR3' T6 +executeTest 'testSystemRestart -n SR3' T10 +executeTest 'testSystemRestart -n SR4' T6 +executeTest 'testSystemRestart -n SR_UNDO' T1 +executeTest 'testSystemRestart -n SR_UNDO' T6 +executeTest 'testSystemRestart -n SR_UNDO' T7 +executeTest 'testSystemRestart -n SR_UNDO' T8 +executeTest 'testSystemRestart -n SR_UNDO' T10 +executeTest 'drop_tab' T1 T6 T7 T8 T10 +fi + +# TEST NODE RESTARTS +if [ $1 = "nr" ] +then +executeTest 'testNodeRestart -n NoLoad' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n PkRead' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n PkReadPkUpdate' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n ReadUpdateScan' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n Terror' T6 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n FullDb' T6 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n RestartRandomNode' T6 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n RestartRandomNodeError' T6 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n RestartRandomNodeInitial' T6 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n RestartNFDuringNR' T6 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n RestartNodeDuringLCP' T6 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n RestartMasterNodeError' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n TwoNodeFailure' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n TwoMasterNodeFailure' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n FiftyPercentFail' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n RestartAllNodes' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n RestartAllNodesAbort' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n RestartAllNodesError9999' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +executeTest 'testNodeRestart -n FiftyPercentStopAndWait' T6 T8 T13 +executeTest 'drop_tab' T6 T8 T13 + +fi + +# TESTS FINISHED +trace "Finished: `date`" + +# +# TEST SUMMARY +# +if [ $numOfTestsFailed -eq 0 ] +then + echo "-- REGRESSION TEST SUCCESSFUL --" +else + echo "-- REGRESSION TEST FAILED!! --" +fi +echo "Number of successful tests: $numOfTestsOK" +echo "Number of failed tests : $numOfTestsFailed" |