summaryrefslogtreecommitdiffstats
path: root/systemtest/testjava.sh
diff options
context:
space:
mode:
authorConstantin Jucovschi <cj@ubuntu.localdomain>2009-04-24 07:20:22 -0400
committerConstantin Jucovschi <cj@ubuntu.localdomain>2009-04-24 07:20:22 -0400
commit8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 (patch)
treebd328a4dd4f92d32202241b5e3a7f36177792c5f /systemtest/testjava.sh
downloadrasdaman-upstream-8f27e65bddd7d4b8515ce620fb485fdd78fcdf89.tar.gz
rasdaman-upstream-8f27e65bddd7d4b8515ce620fb485fdd78fcdf89.tar.xz
rasdaman-upstream-8f27e65bddd7d4b8515ce620fb485fdd78fcdf89.zip
Initial commitv8.0
Diffstat (limited to 'systemtest/testjava.sh')
-rw-r--r--systemtest/testjava.sh353
1 files changed, 353 insertions, 0 deletions
diff --git a/systemtest/testjava.sh b/systemtest/testjava.sh
new file mode 100644
index 0000000..5e1cda7
--- /dev/null
+++ b/systemtest/testjava.sh
@@ -0,0 +1,353 @@
+#!/bin/ksh
+#
+# This file is part of rasdaman community.
+#
+# Rasdaman community is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Rasdaman community is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
+# rasdaman GmbH.
+#
+# For more information please see <http://www.rasdaman.org>
+# or contact Peter Baumann via <baumann@rasdaman.com>.
+######################### testcenter.sh header ###################
+#
+# testcenter.sh FOR:
+# Release of RASDAMAN
+#
+#
+# COMMENTS: needs class examples.TestQuery
+# This facility is not necessary because you can start manualy the server
+#
+##################################################################
+
+TESTER=$USER
+CLIENT=$HOSTNAME
+SERVER=$HOSTNAME
+BASENAME=RASBASE
+TESTDATE=$(date +"%d.%m.%Y_%H:%M:%S")
+LOGFILE=testjava.log
+LOGRCS=javasession.log
+INTERACTIVE="off"
+SCRIPTS="off"
+QUERIES="on"
+PRESERVERESULTS="off"
+DEBUGCOMMANDS="off"
+PROTOCOL=$RMANPROTOCOL
+
+if [[ $1 = "" ]]; then
+ TESTDIR="testdata"
+else
+ TESTDIR=$1
+fi
+
+showOptions()
+{
+ clear
+ echo "===================================================================="
+ echo " TEST JAVA OPTIONS:"
+ echo "===================================================================="
+ echo " Date...........................: " `date`
+ echo " (T)ester...............: " $TESTER
+ echo " (C)lient name..........: " $CLIENT
+ echo " (S)erver name..........: " $SERVER
+ echo " (B)ase name............: " $BASENAME
+ echo " (L)og file.............: " $LOGFILE
+ echo " (Q)uery dir............: " $TESTDIR
+ echo ""
+ echo " (I)nteractive..........: " $INTERACTIVE
+ echo " (P)reserve results.....: " $PRESERVERESULTS
+ echo " (D)ebug commands.......: " $DEBUGCOMMANDS
+ echo ""
+ echo " Phase (1) Test Queries.: " $QUERIES
+ echo " Phase (2) Test Scripts.: " $SCRIPTS
+ echo ""
+ echo " Protocol................: " $PROTOCOL
+}
+setParameters()
+{
+ option="*"
+
+ while [[ $option != "" ]]; do
+
+ showOptions
+
+ echo " \nEnter [tcsblqipd12] to change setting or <return> to continue! \c"
+ read option
+ echo "\n"
+
+ if [[ $option = t ]]; then
+ echo " Enter new name for tester: \c"
+ read TESTER
+ echo
+ elif [[ $option = c ]]; then
+ echo " Enter new client name: \c"
+ read CLIENT
+ echo
+ elif [[ $option = s ]]; then
+ echo " Enter new server name: \c"
+ read SERVER
+ echo
+ elif [[ $option = b ]]; then
+ echo " Enter new base name: \c"
+ read BASENAME
+ echo
+ elif [[ $option = l ]]; then
+ echo " Enter new name for the log file: \c"
+ read LOGFILE
+ echo
+ elif [[ $option = q ]]; then
+ echo " Enter new name for the query data directory: \c"
+ read TESTDIR
+ echo
+ elif [[ $option = i ]]; then
+ if [[ $INTERACTIVE = "off" ]]; then
+ INTERACTIVE="on"
+ else
+ INTERACTIVE="off"
+ fi
+ elif [[ $option = p ]]; then
+ if [[ $PRESERVERESULTS = "off" ]]; then
+ PRESERVERESULTS="on"
+ else
+ PRESERVERESULTS="off"
+ fi
+ elif [[ $option = d ]]; then
+ if [[ $DEBUGCOMMANDS = "off" ]]; then
+ DEBUGCOMMANDS="on"
+ else
+ DEBUGCOMMANDS="off"
+ fi
+ elif [[ $option = 1 ]]; then
+ if [[ $QUERIES = "off" ]]; then
+ QUERIES="on"
+ else
+ QUERIES="off"
+ fi
+ elif [[ $option = 2 ]]; then
+ if [[ $SCRIPTS = "off" ]]; then
+ SCRIPTS="on"
+ else
+ SCRIPTS="off"
+ fi
+ fi
+
+ done
+}
+
+
+
+testQuery()
+{
+ testFile=$1
+
+ echo $testCnt ". Test query: " $testFile "\c"
+
+ YesNo="y"
+ if [[ $INTERACTIVE = "on" ]]; then
+ echo " Test it (y/n) ? \c"
+ read YesNo
+ fi
+
+ if [[ $YesNo = "y" ]]; then
+ $query $testFile -testbed > testbedOutput
+ checkTestImage $testFile;
+ fi
+}
+
+
+
+testScript()
+{
+ testFile=$1
+
+ echo $testCnt ". Test script: " $testFile "\c"
+
+ YesNo="y"
+ if [[ $INTERACTIVE = "on" ]]; then
+ echo " Test it (y/n) ? \c"
+ read YesNo
+ fi
+
+ if [[ $YesNo = "y" ]]; then
+ $testFile $SERVER $BASENAME > testbedOutput
+ checkTestImage $testFile;
+ fi
+}
+
+
+
+checkTestImage()
+{
+ returnValue="EXECUTION OK"
+
+ # create info file
+ gawk -f testOutputGen.awk testbedOutput > testbedOutputInfo
+
+ # check for verification file
+ verificationFile=$testFile".out"
+
+ if [[ ! -a $verificationFile ]]; then
+ echo FAILED
+ echo " ERROR: verification file $verificationFile does not exist"
+
+ echo " Do you want to see the output (y/n) ? \c"
+ read YesNo
+ echo "\n"
+
+ if [[ $YesNo = y ]]; then
+ echo "I. TEST FILE"
+ cat $testFile
+ echo "\n\nII. OUTPUT"
+ cat testbedOutputInfo
+ echo "\n\n"
+ fi
+
+ echo " Do you want to create a verification file (y/n) ? \c"
+ read YesNo
+ echo "\n"
+
+ if [[ $YesNo = y ]]; then
+ cp testbedOutputInfo $verificationFile
+ echo " CREATED\n"
+ returnValue="VERIFICATION FILE CREATED"
+ else
+ echo " NOT CREATED\n"
+ returnValue="VERIFICATION FILE NOT FOUND"
+ fi
+
+ else
+
+ diff testbedOutputInfo $verificationFile
+
+ if [[ $? = 1 ]]; then
+ echo "FAILED"
+ echo "\nProgram output:"
+ cat testbedOutput
+ echo "\n\n"
+ returnValue="EXECUTION FAILED"
+
+ echo " Do you want to update the verification file (y/n) ? \c"
+ read YesNo
+ echo "\n"
+
+ if [[ $YesNo = y ]]; then
+ co -l $verificationFile
+ cp testbedOutputInfo $verificationFile
+ echo " UPDATED\n"
+ ci -u -m"testcenter update" $verificationFile
+ returnValue="VERIFICATION FILE UPDATED"
+ fi
+
+ else
+ echo "OK"
+ fi
+
+ fi
+
+ rm testbedOutput testbedOutputInfo
+}
+
+
+
+#
+# main
+#
+
+# test programs
+query="$RMANBASE/java/examples/TestQuery.class"
+images="$RMANBASE/systemtest/images"
+
+if [[ ! -a $query ]]; then
+ query="$RMANBASE/java/classes/examples/TestQuery.class"
+ if [[ ! -a $query ]]; then
+ echo "\nTest program $query not found"
+ echo "Please build the program and try again."
+ return
+ fi
+fi
+
+setParameters;
+query="$query -s $SERVER -d $BASENAME"
+YesNo=""
+
+if [[ -f $LOGFILE ]]; then
+ echo "\nDelete log file $LOGFILE (y/n) ? \c"
+ read YesNo
+ echo "\n\n"
+ if [[ $YesNo = y ]]; then
+ rm $LOGFILE
+ fi
+fi
+
+
+echo "----------------------------------JAVA TEST SESSION-------------------------" >> $LOGFILE
+echo "- Date........ : " $TESTDATE >> $LOGFILE
+echo "- Tester.......: " $TESTER >> $LOGFILE
+echo "- Directory....: " $PWD/$TESTDIR >> $LOGFILE
+echo "- Client name..: " $CLIENT >> $LOGFILE
+echo "- Server name..: " $SERVER >> $LOGFILE
+echo "- Base name....: " $BASENAME >> $LOGFILE
+echo "-------------------------------------START----------------------------------" >> $LOGFILE
+
+
+
+#
+# test query files
+#
+
+if [[ $QUERIES = "on" ]]; then
+ echo "\nPhase 1: Testing Query Files\n"
+
+ if [[ $PRESERVERESULTS = "on" ]]; then
+ if [[ $DEBUGCOMMANDS = "on" ]]; then
+ echo java -Xms100m -Xmx200m -DRMANPROTOCOL=$PROTOCOL -classpath $CLASSPATH examples.TestQuery -server $SERVER -database $BASENAME -testdirectory $TESTDIR -logfile $LOGFILE -preserveresult
+ else
+ java -Xms100m -Xmx200m -DRMANPROTOCOL=$PROTOCOL -classpath $CLASSPATH examples.TestQuery -server $SERVER -database $BASENAME -testdirectory $TESTDIR -logfile $LOGFILE -preserveresult
+ fi
+ else
+ if [[ $DEBUGCOMMANDS = "on" ]]; then
+ echo java -Xms100m -Xmx200m -DRMANPROTOCOL=$PROTOCOL -classpath $CLASSPATH examples.TestQuery -server $SERVER -database $BASENAME -testdirectory $TESTDIR -logfile $LOGFILE
+ else
+ java -Xms100m -Xmx200m -DRMANPROTOCOL=$PROTOCOL -classpath $CLASSPATH examples.TestQuery -server $SERVER -database $BASENAME -testdirectory $TESTDIR -logfile $LOGFILE
+ fi
+ fi
+
+fi
+
+
+#
+# test scripts
+#
+
+if [[ $SCRIPTS = "on" ]]; then
+ echo "\nPhase 2: Testing Scripts\n"
+
+ testCnt=1
+ scriptFiles=`find scripts -name '*.sh' | sort`
+
+ for scriptFile in $scriptFiles; do
+
+ testScript $scriptFile
+
+ echo "Script " $testCnt $scriptFile":" $returnValue >> $LOGFILE
+
+ testCnt=$(($testCnt+1))
+ done
+fi
+
+echo "\n-------------------------------------END------------------------------------" >> $LOGFILE
+echo "\n\n" >> $LOGFILE
+
+
+echo "\nTesting finnished.\n"