/libreoffice-3.6.0.2/xmerge/source/palmtests/qa-wrapper/bin/run-convtest
Korn Shell | 538 lines | 380 code | 88 blank | 70 comment | 26 complexity | 1c57c9d15c3017018dfb65c2b41bcdb3 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, LGPL-2.1, AGPL-1.0, BSD-3-Clause-No-Nuclear-License-2014, GPL-3.0, LGPL-3.0
- #!/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=" "
- 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