summaryrefslogtreecommitdiff
path: root/ndb/bin
diff options
context:
space:
mode:
Diffstat (limited to 'ndb/bin')
-rw-r--r--ndb/bin/.empty0
-rwxr-xr-xndb/bin/check-regression.sh180
-rwxr-xr-xndb/bin/makeTestPrograms_html.sh22
-rwxr-xr-xndb/bin/mysqlcluster11
-rwxr-xr-xndb/bin/mysqlcluster_install_db119
-rwxr-xr-xndb/bin/mysqlclusterd34
-rw-r--r--ndb/bin/regression.sh644
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>&nbsp;</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"