summaryrefslogtreecommitdiff
path: root/ndb/bin/regression.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ndb/bin/regression.sh')
-rw-r--r--ndb/bin/regression.sh644
1 files changed, 644 insertions, 0 deletions
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"