summaryrefslogtreecommitdiff
path: root/xmerge/source/palmtests/qa-wrapper/bin/run-convtest
diff options
context:
space:
mode:
Diffstat (limited to 'xmerge/source/palmtests/qa-wrapper/bin/run-convtest')
-rwxr-xr-xxmerge/source/palmtests/qa-wrapper/bin/run-convtest538
1 files changed, 538 insertions, 0 deletions
diff --git a/xmerge/source/palmtests/qa-wrapper/bin/run-convtest b/xmerge/source/palmtests/qa-wrapper/bin/run-convtest
new file mode 100755
index 000000000000..56c12509e215
--- /dev/null
+++ b/xmerge/source/palmtests/qa-wrapper/bin/run-convtest
@@ -0,0 +1,538 @@
+#!/bin/ksh
+#########################################################################
+
+ #*************************************************************************
+ #
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org 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 Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+ #*************************************************************************
+
+#set -x
+umask 0
+
+integer TOTAL_PASS=0
+integer TOTAL_FAIL=0
+integer TOTAL_RUN=0
+integer MAX_RETRIES=5
+typeset RUNNAME=`date +%Y%m%d%H%M%S`
+typeset PRINTDATE=`date`
+typeset PDB_INFILE_DIR
+typeset PDB_OUTFILE_DIR
+typeset XML_OUTFILE_DIR
+typeset REPORT
+typeset RESDIR
+typeset LOGFILE
+typeset COMPLOG
+typeset TEST_COMMENTS
+typeset BGCOLOR
+typeset ODD_BGCOLOR='#BBBBBB'
+typeset EVEN_BGCOLOR='#DCDCDC'
+typeset PASS_COLOR='#00ff00'
+typeset FAIL_COLOR='#ff4040'
+
+typeset ENVFILE=""
+# The following variables should be set in the env file
+typeset MASTERLIST=""
+typeset TESTCASEDIR=""
+typeset RESULTSBASE=""
+typeset XMERGE_JAR=""
+typeset APORTIS_JAR=""
+typeset WORDSMITH_JAR=""
+typeset MINICALC_JAR=""
+typeset PERL5LIB=""
+typeset POSE_EXE=""
+typeset POSE_PRC=""
+typeset TEST_DRIVER_PL=""
+typeset COMPARATOR_PL=""
+typeset COMPLIST=""
+typeset XML_INFILE_DIR=""
+typeset PDB_BASELINE_DIR=""
+typeset XML_BASELINE_DIR=""
+typeset EM_SCRIPT_HOME=""
+typeset QAWRAPPER_SCRIPT_HOME=""
+typeset EM_ROM_FILE=""
+typeset EM_SESSION_FILE=""
+typeset QA_LIB_HOME=""
+typeset QA_COMPARATOR_HOME=""
+typeset CLASSES_DIR=""
+
+
+
+################################################################################
+Usage() {
+ echo "Usage: run-convtest -env <ENVFILE> [-name RUNNAME]"
+ exit 1
+}
+
+
+################################################################################
+StartReportFile() {
+ typeset line=`date`
+
+ ReportLine "<HTML>"
+ ReportLine "<HEAD>"
+ ReportLine "<TITLE>XMerge Converters Test Results - ${RUNNAME}</TITLE>"
+ ReportLine "</HEAD>"
+ ReportLine "<BODY BGCOLOR=#ffffff>"
+ ReportLine "<H1 align=center>XMerge Converters Test Results - ${RUNNAME}</H1>"
+ ReportLine "<P>"
+ ReportLine "Test run on: ${PRINTDATE}"
+ ReportLine "<P>"
+ ReportLine "<CENTER>"
+ ReportLine "<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=2>"
+ ReportLine "<TR BGCOLOR='#9999CC'>"
+ ReportLine "<TH>Test Name</TH>"
+ ReportLine "<TH>Test File</TH>"
+ ReportLine "<TH>.ext</TH>"
+ ReportLine "<TH>Result</TH>"
+ ReportLine "<TH>Comments</TH>"
+ ReportLine "</TR>"
+}
+
+
+################################################################################
+EndReportFile() {
+ # remove full path from LOGFILE (link will be to current dir)
+ typeset loglink=${LOGFILE##*/}
+
+ ReportLine "<P>"
+ ReportLine "<CENTER>"
+ ReportLine "<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=2>"
+ ReportLine "<TR>"
+ ReportLine "<TH>Total Tests PASSED</TH>"
+ ReportLine "<TH>${TOTAL_PASS}</TH>"
+ ReportLine "</TR>"
+ ReportLine "<TR>"
+ ReportLine "<TH>Total Tests FAILED</TH>"
+ ReportLine "<TH>${TOTAL_FAIL}</TH>"
+ ReportLine "</TR>"
+ ReportLine "<TR>"
+ ReportLine "<TH>Total Tests Run</TH>"
+ ReportLine "<TH>${TOTAL_RUN}</TH>"
+ ReportLine "</TR>"
+ ReportLine "</TABLE>"
+ ReportLine "</CENTER>"
+ ReportLine "<P>"
+ ReportLine "<A HREF=${loglink}>Full logfile for test run</A>"
+ ReportLine "<P>"
+ ReportLine "<CENTER>"
+ ReportLine "</BODY>"
+ ReportLine "</HTML>"
+}
+
+################################################################################
+ReportLine() {
+ echo $1 >> $REPORT
+}
+
+################################################################################
+LogLine() {
+ echo $1 >> $LOGFILE
+}
+
+################################################################################
+ReportTestComments() {
+ if [[ $TEST_COMMENTS == "" ]] ; then
+ TEST_COMMENTS="&nbsp;"
+ fi
+
+ ReportLine "<TD>${TEST_COMMENTS}</TD>"
+}
+
+################################################################################
+GetParams() {
+ integer argc=$#
+ integer i=0
+
+ if [[ $argc -lt 1 ]] ; then
+ Usage
+ fi
+
+ while (($i < $argc)) ; do
+ arg=$1
+ shift
+ i=i+1
+
+ if [[ $arg == '-name' ]] ; then
+ if (( $i < $argc )) ; then
+ RUNNAME=$1
+ echo "RUNNAME=[$RUNNAME]"
+ shift
+ i=i+1
+ else
+ Usage
+ fi
+ elif [[ $arg == '-env' ]] ; then
+ if (( $i < $argc )) ; then
+ ENVFILE=$1
+ shift
+ i=i+1
+ else
+ Usage
+ fi
+ else
+ Usage
+ fi
+ done
+
+ if [[ $ENVFILE == "" ]] ; then
+ Usage
+ fi
+}
+
+
+################################################################################
+ReadEnvFile() {
+ . $ENVFILE
+
+
+ echo ""
+ echo "The following values have been set from $ENVFILE:"
+ echo "MASTERLIST=$MASTERLIST"
+ echo "TESTCASEDIR=$TESTCASEDIR"
+ echo "XMERGE_JAR=$XMERGE_JAR"
+ echo "APORTIS_JAR=$APORTIS_JAR"
+ echo "WORDSMITH_JAR=$WORDSMITH_JAR"
+ echo "MINICALC_JAR=$MINICALC_JAR"
+ echo "RESULTSBASE=$RESULTSBASE"
+ echo "PERL5LIB=$PERL5LIB"
+ echo "POSE_EXE=$POSE_EXE"
+ echo "POSE_PRC=$POSE_PRC"
+ echo "TEST_DRIVER_PL=$TEST_DRIVER_PL"
+ echo "COMPARATOR_PL=$COMPARATOR_PL"
+ echo "XML_INFILE_DIR=$XML_INFILE_DIR"
+ echo "PDB_BASELINE_DIR=$PDB_BASELINE_DIR"
+ echo "XML_BASELINE_DIR=$XML_BASELINE_DIR"
+ echo "EM_SCRIPT_HOME=$EM_SCRIPT_HOME"
+ echo "QAWRAPPER_SCRIPT_HOME=$QAWRAPPER_SCRIPT_HOME"
+ echo "EM_ROM_FILE=$EM_ROM_FILE"
+ echo "EM_SESSION_FILE=$EM_SESSION_FILE"
+ echo "QA_LIB_HOME=$QA_LIB_HOME"
+ echo "QA_COMPARATOR_HOME=$QA_COMPARATOR_HOME"
+ echo "CLASSES_DIR=$CLASSES_DIR"
+ echo "COMPLIST=$COMPLIST"
+}
+
+################################################################################
+POSESetup() {
+ export PERL5LIB
+ export EM_SCRIPT_HOME
+ export QAWRAPPER_SCRIPT_HOME
+ export EM_ROM_FILE
+ export EM_SESSION_FILE
+ export QA_LIB_HOME
+ export QA_COMPARATOR_HOME
+ export CLASSES_DIR
+
+}
+
+################################################################################
+TestSetup() {
+
+
+ POSESetup
+
+ export ZENDEBUG=1
+
+ COMPLIST="${COMPLIST}/tempcomp.${RUNNAME}.list"
+ # create the directories for the results of this test run
+ RESDIR="${RESULTSBASE}/${RUNNAME}"
+ \rm -Rf $RESDIR
+ mkdir $RESDIR
+
+ # Define the directories for the test input files,
+ # test output files, working directories and baseline files
+ PDB_INFILE_DIR="${RESDIR}/pdb-orig"
+ mkdir "${PDB_INFILE_DIR}"
+ PDB_OUTFILE_DIR="${RESDIR}/pdb-new"
+ mkdir "${PDB_OUTFILE_DIR}"
+ XML_OUTFILE_DIR="${RESDIR}/xml-new"
+ mkdir "${XML_OUTFILE_DIR}"
+
+ LOGFILE="${RESDIR}/logfile"
+ COMPLOG="${RESDIR}/complog"
+ REPORT="${RESDIR}/report.html"
+ StartReportFile
+
+ echo "Results in: $RESDIR"
+ echo "Report file: $REPORT"
+}
+
+################################################################################
+TestCleanup() {
+ EndReportFile
+}
+
+################################################################################
+TestCaseSetup() {
+ # where to pick up converter classes
+ export CLASSPATH=""
+ export CLASSPATH=$CLASSPATH:$XMERGE_JAR
+ export CLASSPATH=$CLASSPATH:$APORTIS_JAR
+ export CLASSPATH=$CLASSPATH:$WORDSMITH_JAR
+ export CLASSPATH=$CLASSPATH:$MINICALC_JAR
+}
+
+################################################################################
+TestCaseCleanup() {
+ # empty function
+ a=42
+}
+
+################################################################################
+RunTestCase() {
+ testcase=$1
+
+ LogLine ""
+ LogLine "test_driver output:"
+
+ # run test_driver in foreground
+ $TEST_DRIVER_PL\
+ -pose-prc=${POSE_PRC}\
+ -pose-exe=${POSE_EXE}\
+ -xml-orig=${XML_INFILE_DIR}\
+ -pdb-orig=${PDB_INFILE_DIR}\
+ -pdb-new=${PDB_OUTFILE_DIR}\
+ -xml-new=${XML_OUTFILE_DIR}\
+ -test=$testcase -merge >> $LOGFILE 2>&1
+
+ # cleanup in case zombie POSE processes are hanging around
+ pkill pose
+ pkill -9 pose
+}
+
+
+################################################################################
+ComparisonSetup() {
+ typeset file=$1
+
+
+ export CLASSPATH="$CLASSES_DIR/xerces.jar"
+
+ # create temporary comparator list file for this test case
+ echo $file > $COMPLIST
+}
+
+################################################################################
+ComparisonCleanup() {
+ # remove temporary comparator list file used for this test case
+ \rm -f $COMPLIST
+}
+
+################################################################################
+RunComparison() {
+ typeset type=$1
+
+ LogLine ""
+ LogLine "Comparator output:"
+ $COMPARATOR_PL\
+ -xml-orig=${XML_BASELINE_DIR}\
+ -pdb-orig=${PDB_BASELINE_DIR}\
+ -pdb-new=${PDB_INFILE_DIR}\
+ -xml-new=${XML_OUTFILE_DIR}\
+ -list=$COMPLIST -log=$COMPLOG -type=$type >> $LOGFILE 2>&1
+# -list=$COMPLIST -log=$COMPLOG -type=$type | tee -a $LOGFILE 2>&1
+
+ pass=`grep TRUE $COMPLOG | wc -l`
+
+ LogLine ""
+ LogLine "COMPLIST file:"
+ cat $COMPLIST >> $LOGFILE
+ LogLine ""
+ LogLine "Comparator logfile:"
+ cat $COMPLOG >> $LOGFILE
+
+ if [ $pass -eq 0 ]
+ then
+ TEST_COMMENTS="${TEST_COMMENTS}$type comparison ERROR<BR>"
+ echo "$type comparison ERROR"
+ return 0
+ fi
+
+ echo "$type comparison OK"
+ return 1
+}
+
+################################################################################
+CheckOutput() {
+ typeset xmlfile="${XML_OUTFILE_DIR}/$1"
+ typeset pdbfile="${PDB_INFILE_DIR}/$2"
+
+ if [ ! -f $pdbfile ] ; then
+ TEST_COMMENTS="${TEST_COMMENTS}[$pdbfile] does not exist<BR>"
+ LogLine "ERROR: $pdbfile does not exist"
+ echo "ERROR: $pdbfile does not exist"
+ return 0
+ fi
+
+ if [ ! -f $xmlfile ] ; then
+ TEST_COMMENTS="${TEST_COMMENTS}[$xmlfile] does not exist<BR>"
+ LogLine "ERROR: $xmlfile does not exist"
+ echo "ERROR: $xmlfile does not exist"
+ return 0
+ fi
+
+ return 1
+}
+
+################################################################################
+RunTest() {
+ typeset testcasename
+ typeset testcase
+ typeset testfile
+ typeset pdbfile
+ typeset xmlfile
+ typeset ext
+ integer try
+ integer finished_with_test
+ integer test_pass
+
+ TestSetup
+
+ BGCOLOR=$ODD_BGCOLOR
+
+ while read line ; do
+ # get chars up to 1st space
+ testcasename=${line%% *}
+ testcase="${TESTCASEDIR}/$testcasename"
+
+ # get 2nd word
+ testfile=${line#* }
+ testfile=${testfile%% *}
+
+ # get last word
+ ext=${line##* }
+
+ LogLine "############################################"
+ LogLine "Starting the following testcase"
+ LogLine "testcase = $testcase"
+ LogLine "testfile = $testfile"
+ LogLine "ext = $ext"
+
+ ReportLine "<TR BGCOLOR='${BGCOLOR}'>"
+ ReportLine "<TD valign=top>$testcasename</TD>"
+ ReportLine "<TD valign=top>$testfile</TD>"
+ ReportLine "<TD valign=top>$ext</TD>"
+
+ echo ""
+ echo "testcase = $testcase"
+ echo "testfile = $testfile"
+ echo "ext = $ext"
+
+ try=1
+ finished_with_test=0
+ TEST_COMMENTS=""
+
+ while (($finished_with_test == 0)) ; do
+
+ TestCaseSetup
+ RunTestCase $testcase
+ TestCaseCleanup
+
+ xmlfile="${testfile}.${ext}"
+
+ if [[ $ext == "sxc" ]] ; then
+ pdbfile="${testfile}-Sheet1.pdb"
+ else
+ pdbfile="${testfile}.pdb"
+ fi
+
+ CheckOutput $xmlfile $pdbfile
+ res=$?
+
+ if [[ $res -eq 1 ]] ; then
+ ComparisonSetup $pdbfile
+ RunComparison pdb
+ res=$?
+# ignore result until pdb comparator is fixed...
+res=1
+ ComparisonCleanup
+ fi
+
+ if [[ $res -eq 1 ]] ; then
+ ComparisonSetup $xmlfile
+ RunComparison xml
+ res=$?
+ ComparisonCleanup
+ fi
+
+ if [[ $res -eq 1 ]] ; then
+ TOTAL_PASS=TOTAL_PASS+1
+ ReportLine "<TD valign=top BGCOLOR='${PASS_COLOR}'>PASS</TD>"
+ ReportTestComments
+ ReportLine "</TR>"
+ LogLine "Test PASSED (on try $try)"
+ echo "Test PASSED (on try $try)"
+ finished_with_test=1
+ else
+ TEST_COMMENTS="${TEST_COMMENTS}error on try ${try}<BR>"
+ LogLine "TEST FAILED (on try $try)"
+ echo "TEST FAILED (on try $try)"
+
+ if [[ $try -eq $MAX_RETRIES ]] ; then
+ TOTAL_FAIL=TOTAL_FAIL+1
+ ReportLine "<TD valign=top BGCOLOR='${FAIL_COLOR}'>FAIL</TD>"
+ ReportTestComments
+ ReportLine "</TR>"
+ finished_with_test=1
+ fi
+ fi
+
+ try=try+1
+ done
+
+ TOTAL_RUN=TOTAL_RUN+1
+
+ # toggle BGCOLOR for next report line
+ if [[ $BGCOLOR == $ODD_BGCOLOR ]] ; then
+ BGCOLOR=$EVEN_BGCOLOR
+ else
+ BGCOLOR=$ODD_BGCOLOR
+ fi
+
+ done < $MASTERLIST
+
+ ReportLine "</TABLE>"
+ ReportLine "</CENTER>"
+
+ TestCleanup
+
+ echo "Total Tests PASSED: "${TOTAL_PASS}
+ echo "Total Tests FAILED: "${TOTAL_FAIL}
+ echo "Total Tests RUN: "${TOTAL_RUN}
+ echo "Results in: $RESDIR"
+ echo "Report file: $REPORT"
+}
+
+################################################################################
+################################################################################
+# main
+################################################################################
+################################################################################
+
+GetParams $@
+ReadEnvFile
+RunTest
+
+exit 0