1*b1cdbd2cSJim Jagielski#!/bin/ksh 2*b1cdbd2cSJim Jagielski#************************************************************** 3*b1cdbd2cSJim Jagielski# 4*b1cdbd2cSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 5*b1cdbd2cSJim Jagielski# or more contributor license agreements. See the NOTICE file 6*b1cdbd2cSJim Jagielski# distributed with this work for additional information 7*b1cdbd2cSJim Jagielski# regarding copyright ownership. The ASF licenses this file 8*b1cdbd2cSJim Jagielski# to you under the Apache License, Version 2.0 (the 9*b1cdbd2cSJim Jagielski# "License"); you may not use this file except in compliance 10*b1cdbd2cSJim Jagielski# with the License. You may obtain a copy of the License at 11*b1cdbd2cSJim Jagielski# 12*b1cdbd2cSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 13*b1cdbd2cSJim Jagielski# 14*b1cdbd2cSJim Jagielski# Unless required by applicable law or agreed to in writing, 15*b1cdbd2cSJim Jagielski# software distributed under the License is distributed on an 16*b1cdbd2cSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17*b1cdbd2cSJim Jagielski# KIND, either express or implied. See the License for the 18*b1cdbd2cSJim Jagielski# specific language governing permissions and limitations 19*b1cdbd2cSJim Jagielski# under the License. 20*b1cdbd2cSJim Jagielski# 21*b1cdbd2cSJim Jagielski#************************************************************** 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski#set -x 24*b1cdbd2cSJim Jagielskiumask 0 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielskiinteger TOTAL_PASS=0 27*b1cdbd2cSJim Jagielskiinteger TOTAL_FAIL=0 28*b1cdbd2cSJim Jagielskiinteger TOTAL_RUN=0 29*b1cdbd2cSJim Jagielskiinteger MAX_RETRIES=5 30*b1cdbd2cSJim Jagielskitypeset RUNNAME=`date +%Y%m%d%H%M%S` 31*b1cdbd2cSJim Jagielskitypeset PRINTDATE=`date` 32*b1cdbd2cSJim Jagielskitypeset PDB_INFILE_DIR 33*b1cdbd2cSJim Jagielskitypeset PDB_OUTFILE_DIR 34*b1cdbd2cSJim Jagielskitypeset XML_OUTFILE_DIR 35*b1cdbd2cSJim Jagielskitypeset REPORT 36*b1cdbd2cSJim Jagielskitypeset RESDIR 37*b1cdbd2cSJim Jagielskitypeset LOGFILE 38*b1cdbd2cSJim Jagielskitypeset COMPLOG 39*b1cdbd2cSJim Jagielskitypeset TEST_COMMENTS 40*b1cdbd2cSJim Jagielskitypeset BGCOLOR 41*b1cdbd2cSJim Jagielskitypeset ODD_BGCOLOR='#BBBBBB' 42*b1cdbd2cSJim Jagielskitypeset EVEN_BGCOLOR='#DCDCDC' 43*b1cdbd2cSJim Jagielskitypeset PASS_COLOR='#00ff00' 44*b1cdbd2cSJim Jagielskitypeset FAIL_COLOR='#ff4040' 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielskitypeset ENVFILE="" 47*b1cdbd2cSJim Jagielski# The following variables should be set in the env file 48*b1cdbd2cSJim Jagielskitypeset MASTERLIST="" 49*b1cdbd2cSJim Jagielskitypeset TESTCASEDIR="" 50*b1cdbd2cSJim Jagielskitypeset RESULTSBASE="" 51*b1cdbd2cSJim Jagielskitypeset XMERGE_JAR="" 52*b1cdbd2cSJim Jagielskitypeset APORTIS_JAR="" 53*b1cdbd2cSJim Jagielskitypeset WORDSMITH_JAR="" 54*b1cdbd2cSJim Jagielskitypeset MINICALC_JAR="" 55*b1cdbd2cSJim Jagielskitypeset PERL5LIB="" 56*b1cdbd2cSJim Jagielskitypeset POSE_EXE="" 57*b1cdbd2cSJim Jagielskitypeset POSE_PRC="" 58*b1cdbd2cSJim Jagielskitypeset TEST_DRIVER_PL="" 59*b1cdbd2cSJim Jagielskitypeset COMPARATOR_PL="" 60*b1cdbd2cSJim Jagielskitypeset COMPLIST="" 61*b1cdbd2cSJim Jagielskitypeset XML_INFILE_DIR="" 62*b1cdbd2cSJim Jagielskitypeset PDB_BASELINE_DIR="" 63*b1cdbd2cSJim Jagielskitypeset XML_BASELINE_DIR="" 64*b1cdbd2cSJim Jagielskitypeset EM_SCRIPT_HOME="" 65*b1cdbd2cSJim Jagielskitypeset QAWRAPPER_SCRIPT_HOME="" 66*b1cdbd2cSJim Jagielskitypeset EM_ROM_FILE="" 67*b1cdbd2cSJim Jagielskitypeset EM_SESSION_FILE="" 68*b1cdbd2cSJim Jagielskitypeset QA_LIB_HOME="" 69*b1cdbd2cSJim Jagielskitypeset QA_COMPARATOR_HOME="" 70*b1cdbd2cSJim Jagielskitypeset CLASSES_DIR="" 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski################################################################################ 75*b1cdbd2cSJim JagielskiUsage() { 76*b1cdbd2cSJim Jagielski echo "Usage: run-convtest -env <ENVFILE> [-name RUNNAME]" 77*b1cdbd2cSJim Jagielski exit 1 78*b1cdbd2cSJim Jagielski} 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski################################################################################ 82*b1cdbd2cSJim JagielskiStartReportFile() { 83*b1cdbd2cSJim Jagielski typeset line=`date` 84*b1cdbd2cSJim Jagielski 85*b1cdbd2cSJim Jagielski ReportLine "<HTML>" 86*b1cdbd2cSJim Jagielski ReportLine "<HEAD>" 87*b1cdbd2cSJim Jagielski ReportLine "<TITLE>XMerge Converters Test Results - ${RUNNAME}</TITLE>" 88*b1cdbd2cSJim Jagielski ReportLine "</HEAD>" 89*b1cdbd2cSJim Jagielski ReportLine "<BODY BGCOLOR=#ffffff>" 90*b1cdbd2cSJim Jagielski ReportLine "<H1 align=center>XMerge Converters Test Results - ${RUNNAME}</H1>" 91*b1cdbd2cSJim Jagielski ReportLine "<P>" 92*b1cdbd2cSJim Jagielski ReportLine "Test run on: ${PRINTDATE}" 93*b1cdbd2cSJim Jagielski ReportLine "<P>" 94*b1cdbd2cSJim Jagielski ReportLine "<CENTER>" 95*b1cdbd2cSJim Jagielski ReportLine "<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=2>" 96*b1cdbd2cSJim Jagielski ReportLine "<TR BGCOLOR='#9999CC'>" 97*b1cdbd2cSJim Jagielski ReportLine "<TH>Test Name</TH>" 98*b1cdbd2cSJim Jagielski ReportLine "<TH>Test File</TH>" 99*b1cdbd2cSJim Jagielski ReportLine "<TH>.ext</TH>" 100*b1cdbd2cSJim Jagielski ReportLine "<TH>Result</TH>" 101*b1cdbd2cSJim Jagielski ReportLine "<TH>Comments</TH>" 102*b1cdbd2cSJim Jagielski ReportLine "</TR>" 103*b1cdbd2cSJim Jagielski} 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski################################################################################ 107*b1cdbd2cSJim JagielskiEndReportFile() { 108*b1cdbd2cSJim Jagielski # remove full path from LOGFILE (link will be to current dir) 109*b1cdbd2cSJim Jagielski typeset loglink=${LOGFILE##*/} 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski ReportLine "<P>" 112*b1cdbd2cSJim Jagielski ReportLine "<CENTER>" 113*b1cdbd2cSJim Jagielski ReportLine "<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=2>" 114*b1cdbd2cSJim Jagielski ReportLine "<TR>" 115*b1cdbd2cSJim Jagielski ReportLine "<TH>Total Tests PASSED</TH>" 116*b1cdbd2cSJim Jagielski ReportLine "<TH>${TOTAL_PASS}</TH>" 117*b1cdbd2cSJim Jagielski ReportLine "</TR>" 118*b1cdbd2cSJim Jagielski ReportLine "<TR>" 119*b1cdbd2cSJim Jagielski ReportLine "<TH>Total Tests FAILED</TH>" 120*b1cdbd2cSJim Jagielski ReportLine "<TH>${TOTAL_FAIL}</TH>" 121*b1cdbd2cSJim Jagielski ReportLine "</TR>" 122*b1cdbd2cSJim Jagielski ReportLine "<TR>" 123*b1cdbd2cSJim Jagielski ReportLine "<TH>Total Tests Run</TH>" 124*b1cdbd2cSJim Jagielski ReportLine "<TH>${TOTAL_RUN}</TH>" 125*b1cdbd2cSJim Jagielski ReportLine "</TR>" 126*b1cdbd2cSJim Jagielski ReportLine "</TABLE>" 127*b1cdbd2cSJim Jagielski ReportLine "</CENTER>" 128*b1cdbd2cSJim Jagielski ReportLine "<P>" 129*b1cdbd2cSJim Jagielski ReportLine "<A HREF=${loglink}>Full logfile for test run</A>" 130*b1cdbd2cSJim Jagielski ReportLine "<P>" 131*b1cdbd2cSJim Jagielski ReportLine "<CENTER>" 132*b1cdbd2cSJim Jagielski ReportLine "</BODY>" 133*b1cdbd2cSJim Jagielski ReportLine "</HTML>" 134*b1cdbd2cSJim Jagielski} 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski################################################################################ 137*b1cdbd2cSJim JagielskiReportLine() { 138*b1cdbd2cSJim Jagielski echo $1 >> $REPORT 139*b1cdbd2cSJim Jagielski} 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski################################################################################ 142*b1cdbd2cSJim JagielskiLogLine() { 143*b1cdbd2cSJim Jagielski echo $1 >> $LOGFILE 144*b1cdbd2cSJim Jagielski} 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski################################################################################ 147*b1cdbd2cSJim JagielskiReportTestComments() { 148*b1cdbd2cSJim Jagielski if [[ $TEST_COMMENTS == "" ]] ; then 149*b1cdbd2cSJim Jagielski TEST_COMMENTS=" " 150*b1cdbd2cSJim Jagielski fi 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski ReportLine "<TD>${TEST_COMMENTS}</TD>" 153*b1cdbd2cSJim Jagielski} 154*b1cdbd2cSJim Jagielski 155*b1cdbd2cSJim Jagielski################################################################################ 156*b1cdbd2cSJim JagielskiGetParams() { 157*b1cdbd2cSJim Jagielski integer argc=$# 158*b1cdbd2cSJim Jagielski integer i=0 159*b1cdbd2cSJim Jagielski 160*b1cdbd2cSJim Jagielski if [[ $argc -lt 1 ]] ; then 161*b1cdbd2cSJim Jagielski Usage 162*b1cdbd2cSJim Jagielski fi 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski while (($i < $argc)) ; do 165*b1cdbd2cSJim Jagielski arg=$1 166*b1cdbd2cSJim Jagielski shift 167*b1cdbd2cSJim Jagielski i=i+1 168*b1cdbd2cSJim Jagielski 169*b1cdbd2cSJim Jagielski if [[ $arg == '-name' ]] ; then 170*b1cdbd2cSJim Jagielski if (( $i < $argc )) ; then 171*b1cdbd2cSJim Jagielski RUNNAME=$1 172*b1cdbd2cSJim Jagielski echo "RUNNAME=[$RUNNAME]" 173*b1cdbd2cSJim Jagielski shift 174*b1cdbd2cSJim Jagielski i=i+1 175*b1cdbd2cSJim Jagielski else 176*b1cdbd2cSJim Jagielski Usage 177*b1cdbd2cSJim Jagielski fi 178*b1cdbd2cSJim Jagielski elif [[ $arg == '-env' ]] ; then 179*b1cdbd2cSJim Jagielski if (( $i < $argc )) ; then 180*b1cdbd2cSJim Jagielski ENVFILE=$1 181*b1cdbd2cSJim Jagielski shift 182*b1cdbd2cSJim Jagielski i=i+1 183*b1cdbd2cSJim Jagielski else 184*b1cdbd2cSJim Jagielski Usage 185*b1cdbd2cSJim Jagielski fi 186*b1cdbd2cSJim Jagielski else 187*b1cdbd2cSJim Jagielski Usage 188*b1cdbd2cSJim Jagielski fi 189*b1cdbd2cSJim Jagielski done 190*b1cdbd2cSJim Jagielski 191*b1cdbd2cSJim Jagielski if [[ $ENVFILE == "" ]] ; then 192*b1cdbd2cSJim Jagielski Usage 193*b1cdbd2cSJim Jagielski fi 194*b1cdbd2cSJim Jagielski} 195*b1cdbd2cSJim Jagielski 196*b1cdbd2cSJim Jagielski 197*b1cdbd2cSJim Jagielski################################################################################ 198*b1cdbd2cSJim JagielskiReadEnvFile() { 199*b1cdbd2cSJim Jagielski . $ENVFILE 200*b1cdbd2cSJim Jagielski 201*b1cdbd2cSJim Jagielski 202*b1cdbd2cSJim Jagielski echo "" 203*b1cdbd2cSJim Jagielski echo "The following values have been set from $ENVFILE:" 204*b1cdbd2cSJim Jagielski echo "MASTERLIST=$MASTERLIST" 205*b1cdbd2cSJim Jagielski echo "TESTCASEDIR=$TESTCASEDIR" 206*b1cdbd2cSJim Jagielski echo "XMERGE_JAR=$XMERGE_JAR" 207*b1cdbd2cSJim Jagielski echo "APORTIS_JAR=$APORTIS_JAR" 208*b1cdbd2cSJim Jagielski echo "WORDSMITH_JAR=$WORDSMITH_JAR" 209*b1cdbd2cSJim Jagielski echo "MINICALC_JAR=$MINICALC_JAR" 210*b1cdbd2cSJim Jagielski echo "RESULTSBASE=$RESULTSBASE" 211*b1cdbd2cSJim Jagielski echo "PERL5LIB=$PERL5LIB" 212*b1cdbd2cSJim Jagielski echo "POSE_EXE=$POSE_EXE" 213*b1cdbd2cSJim Jagielski echo "POSE_PRC=$POSE_PRC" 214*b1cdbd2cSJim Jagielski echo "TEST_DRIVER_PL=$TEST_DRIVER_PL" 215*b1cdbd2cSJim Jagielski echo "COMPARATOR_PL=$COMPARATOR_PL" 216*b1cdbd2cSJim Jagielski echo "XML_INFILE_DIR=$XML_INFILE_DIR" 217*b1cdbd2cSJim Jagielski echo "PDB_BASELINE_DIR=$PDB_BASELINE_DIR" 218*b1cdbd2cSJim Jagielski echo "XML_BASELINE_DIR=$XML_BASELINE_DIR" 219*b1cdbd2cSJim Jagielski echo "EM_SCRIPT_HOME=$EM_SCRIPT_HOME" 220*b1cdbd2cSJim Jagielski echo "QAWRAPPER_SCRIPT_HOME=$QAWRAPPER_SCRIPT_HOME" 221*b1cdbd2cSJim Jagielski echo "EM_ROM_FILE=$EM_ROM_FILE" 222*b1cdbd2cSJim Jagielski echo "EM_SESSION_FILE=$EM_SESSION_FILE" 223*b1cdbd2cSJim Jagielski echo "QA_LIB_HOME=$QA_LIB_HOME" 224*b1cdbd2cSJim Jagielski echo "QA_COMPARATOR_HOME=$QA_COMPARATOR_HOME" 225*b1cdbd2cSJim Jagielski echo "CLASSES_DIR=$CLASSES_DIR" 226*b1cdbd2cSJim Jagielski echo "COMPLIST=$COMPLIST" 227*b1cdbd2cSJim Jagielski} 228*b1cdbd2cSJim Jagielski 229*b1cdbd2cSJim Jagielski################################################################################ 230*b1cdbd2cSJim JagielskiPOSESetup() { 231*b1cdbd2cSJim Jagielski export PERL5LIB 232*b1cdbd2cSJim Jagielski export EM_SCRIPT_HOME 233*b1cdbd2cSJim Jagielski export QAWRAPPER_SCRIPT_HOME 234*b1cdbd2cSJim Jagielski export EM_ROM_FILE 235*b1cdbd2cSJim Jagielski export EM_SESSION_FILE 236*b1cdbd2cSJim Jagielski export QA_LIB_HOME 237*b1cdbd2cSJim Jagielski export QA_COMPARATOR_HOME 238*b1cdbd2cSJim Jagielski export CLASSES_DIR 239*b1cdbd2cSJim Jagielski 240*b1cdbd2cSJim Jagielski} 241*b1cdbd2cSJim Jagielski 242*b1cdbd2cSJim Jagielski################################################################################ 243*b1cdbd2cSJim JagielskiTestSetup() { 244*b1cdbd2cSJim Jagielski 245*b1cdbd2cSJim Jagielski 246*b1cdbd2cSJim Jagielski POSESetup 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski export ZENDEBUG=1 249*b1cdbd2cSJim Jagielski 250*b1cdbd2cSJim Jagielski COMPLIST="${COMPLIST}/tempcomp.${RUNNAME}.list" 251*b1cdbd2cSJim Jagielski # create the directories for the results of this test run 252*b1cdbd2cSJim Jagielski RESDIR="${RESULTSBASE}/${RUNNAME}" 253*b1cdbd2cSJim Jagielski \rm -Rf $RESDIR 254*b1cdbd2cSJim Jagielski mkdir $RESDIR 255*b1cdbd2cSJim Jagielski 256*b1cdbd2cSJim Jagielski # Define the directories for the test input files, 257*b1cdbd2cSJim Jagielski # test output files, working directories and baseline files 258*b1cdbd2cSJim Jagielski PDB_INFILE_DIR="${RESDIR}/pdb-orig" 259*b1cdbd2cSJim Jagielski mkdir "${PDB_INFILE_DIR}" 260*b1cdbd2cSJim Jagielski PDB_OUTFILE_DIR="${RESDIR}/pdb-new" 261*b1cdbd2cSJim Jagielski mkdir "${PDB_OUTFILE_DIR}" 262*b1cdbd2cSJim Jagielski XML_OUTFILE_DIR="${RESDIR}/xml-new" 263*b1cdbd2cSJim Jagielski mkdir "${XML_OUTFILE_DIR}" 264*b1cdbd2cSJim Jagielski 265*b1cdbd2cSJim Jagielski LOGFILE="${RESDIR}/logfile" 266*b1cdbd2cSJim Jagielski COMPLOG="${RESDIR}/complog" 267*b1cdbd2cSJim Jagielski REPORT="${RESDIR}/report.html" 268*b1cdbd2cSJim Jagielski StartReportFile 269*b1cdbd2cSJim Jagielski 270*b1cdbd2cSJim Jagielski echo "Results in: $RESDIR" 271*b1cdbd2cSJim Jagielski echo "Report file: $REPORT" 272*b1cdbd2cSJim Jagielski} 273*b1cdbd2cSJim Jagielski 274*b1cdbd2cSJim Jagielski################################################################################ 275*b1cdbd2cSJim JagielskiTestCleanup() { 276*b1cdbd2cSJim Jagielski EndReportFile 277*b1cdbd2cSJim Jagielski} 278*b1cdbd2cSJim Jagielski 279*b1cdbd2cSJim Jagielski################################################################################ 280*b1cdbd2cSJim JagielskiTestCaseSetup() { 281*b1cdbd2cSJim Jagielski # where to pick up converter classes 282*b1cdbd2cSJim Jagielski export CLASSPATH="" 283*b1cdbd2cSJim Jagielski export CLASSPATH=$CLASSPATH:$XMERGE_JAR 284*b1cdbd2cSJim Jagielski export CLASSPATH=$CLASSPATH:$APORTIS_JAR 285*b1cdbd2cSJim Jagielski export CLASSPATH=$CLASSPATH:$WORDSMITH_JAR 286*b1cdbd2cSJim Jagielski export CLASSPATH=$CLASSPATH:$MINICALC_JAR 287*b1cdbd2cSJim Jagielski} 288*b1cdbd2cSJim Jagielski 289*b1cdbd2cSJim Jagielski################################################################################ 290*b1cdbd2cSJim JagielskiTestCaseCleanup() { 291*b1cdbd2cSJim Jagielski # empty function 292*b1cdbd2cSJim Jagielski a=42 293*b1cdbd2cSJim Jagielski} 294*b1cdbd2cSJim Jagielski 295*b1cdbd2cSJim Jagielski################################################################################ 296*b1cdbd2cSJim JagielskiRunTestCase() { 297*b1cdbd2cSJim Jagielski testcase=$1 298*b1cdbd2cSJim Jagielski 299*b1cdbd2cSJim Jagielski LogLine "" 300*b1cdbd2cSJim Jagielski LogLine "test_driver output:" 301*b1cdbd2cSJim Jagielski 302*b1cdbd2cSJim Jagielski # run test_driver in foreground 303*b1cdbd2cSJim Jagielski $TEST_DRIVER_PL\ 304*b1cdbd2cSJim Jagielski -pose-prc=${POSE_PRC}\ 305*b1cdbd2cSJim Jagielski -pose-exe=${POSE_EXE}\ 306*b1cdbd2cSJim Jagielski -xml-orig=${XML_INFILE_DIR}\ 307*b1cdbd2cSJim Jagielski -pdb-orig=${PDB_INFILE_DIR}\ 308*b1cdbd2cSJim Jagielski -pdb-new=${PDB_OUTFILE_DIR}\ 309*b1cdbd2cSJim Jagielski -xml-new=${XML_OUTFILE_DIR}\ 310*b1cdbd2cSJim Jagielski -test=$testcase -merge >> $LOGFILE 2>&1 311*b1cdbd2cSJim Jagielski 312*b1cdbd2cSJim Jagielski # cleanup in case zombie POSE processes are hanging around 313*b1cdbd2cSJim Jagielski pkill pose 314*b1cdbd2cSJim Jagielski pkill -9 pose 315*b1cdbd2cSJim Jagielski} 316*b1cdbd2cSJim Jagielski 317*b1cdbd2cSJim Jagielski 318*b1cdbd2cSJim Jagielski################################################################################ 319*b1cdbd2cSJim JagielskiComparisonSetup() { 320*b1cdbd2cSJim Jagielski typeset file=$1 321*b1cdbd2cSJim Jagielski 322*b1cdbd2cSJim Jagielski 323*b1cdbd2cSJim Jagielski export CLASSPATH="$CLASSES_DIR/xerces.jar" 324*b1cdbd2cSJim Jagielski 325*b1cdbd2cSJim Jagielski # create temporary comparator list file for this test case 326*b1cdbd2cSJim Jagielski echo $file > $COMPLIST 327*b1cdbd2cSJim Jagielski} 328*b1cdbd2cSJim Jagielski 329*b1cdbd2cSJim Jagielski################################################################################ 330*b1cdbd2cSJim JagielskiComparisonCleanup() { 331*b1cdbd2cSJim Jagielski # remove temporary comparator list file used for this test case 332*b1cdbd2cSJim Jagielski \rm -f $COMPLIST 333*b1cdbd2cSJim Jagielski} 334*b1cdbd2cSJim Jagielski 335*b1cdbd2cSJim Jagielski################################################################################ 336*b1cdbd2cSJim JagielskiRunComparison() { 337*b1cdbd2cSJim Jagielski typeset type=$1 338*b1cdbd2cSJim Jagielski 339*b1cdbd2cSJim Jagielski LogLine "" 340*b1cdbd2cSJim Jagielski LogLine "Comparator output:" 341*b1cdbd2cSJim Jagielski $COMPARATOR_PL\ 342*b1cdbd2cSJim Jagielski -xml-orig=${XML_BASELINE_DIR}\ 343*b1cdbd2cSJim Jagielski -pdb-orig=${PDB_BASELINE_DIR}\ 344*b1cdbd2cSJim Jagielski -pdb-new=${PDB_INFILE_DIR}\ 345*b1cdbd2cSJim Jagielski -xml-new=${XML_OUTFILE_DIR}\ 346*b1cdbd2cSJim Jagielski -list=$COMPLIST -log=$COMPLOG -type=$type >> $LOGFILE 2>&1 347*b1cdbd2cSJim Jagielski# -list=$COMPLIST -log=$COMPLOG -type=$type | tee -a $LOGFILE 2>&1 348*b1cdbd2cSJim Jagielski 349*b1cdbd2cSJim Jagielski pass=`grep TRUE $COMPLOG | wc -l` 350*b1cdbd2cSJim Jagielski 351*b1cdbd2cSJim Jagielski LogLine "" 352*b1cdbd2cSJim Jagielski LogLine "COMPLIST file:" 353*b1cdbd2cSJim Jagielski cat $COMPLIST >> $LOGFILE 354*b1cdbd2cSJim Jagielski LogLine "" 355*b1cdbd2cSJim Jagielski LogLine "Comparator logfile:" 356*b1cdbd2cSJim Jagielski cat $COMPLOG >> $LOGFILE 357*b1cdbd2cSJim Jagielski 358*b1cdbd2cSJim Jagielski if [ $pass -eq 0 ] 359*b1cdbd2cSJim Jagielski then 360*b1cdbd2cSJim Jagielski TEST_COMMENTS="${TEST_COMMENTS}$type comparison ERROR<BR>" 361*b1cdbd2cSJim Jagielski echo "$type comparison ERROR" 362*b1cdbd2cSJim Jagielski return 0 363*b1cdbd2cSJim Jagielski fi 364*b1cdbd2cSJim Jagielski 365*b1cdbd2cSJim Jagielski echo "$type comparison OK" 366*b1cdbd2cSJim Jagielski return 1 367*b1cdbd2cSJim Jagielski} 368*b1cdbd2cSJim Jagielski 369*b1cdbd2cSJim Jagielski################################################################################ 370*b1cdbd2cSJim JagielskiCheckOutput() { 371*b1cdbd2cSJim Jagielski typeset xmlfile="${XML_OUTFILE_DIR}/$1" 372*b1cdbd2cSJim Jagielski typeset pdbfile="${PDB_INFILE_DIR}/$2" 373*b1cdbd2cSJim Jagielski 374*b1cdbd2cSJim Jagielski if [ ! -f $pdbfile ] ; then 375*b1cdbd2cSJim Jagielski TEST_COMMENTS="${TEST_COMMENTS}[$pdbfile] does not exist<BR>" 376*b1cdbd2cSJim Jagielski LogLine "ERROR: $pdbfile does not exist" 377*b1cdbd2cSJim Jagielski echo "ERROR: $pdbfile does not exist" 378*b1cdbd2cSJim Jagielski return 0 379*b1cdbd2cSJim Jagielski fi 380*b1cdbd2cSJim Jagielski 381*b1cdbd2cSJim Jagielski if [ ! -f $xmlfile ] ; then 382*b1cdbd2cSJim Jagielski TEST_COMMENTS="${TEST_COMMENTS}[$xmlfile] does not exist<BR>" 383*b1cdbd2cSJim Jagielski LogLine "ERROR: $xmlfile does not exist" 384*b1cdbd2cSJim Jagielski echo "ERROR: $xmlfile does not exist" 385*b1cdbd2cSJim Jagielski return 0 386*b1cdbd2cSJim Jagielski fi 387*b1cdbd2cSJim Jagielski 388*b1cdbd2cSJim Jagielski return 1 389*b1cdbd2cSJim Jagielski} 390*b1cdbd2cSJim Jagielski 391*b1cdbd2cSJim Jagielski################################################################################ 392*b1cdbd2cSJim JagielskiRunTest() { 393*b1cdbd2cSJim Jagielski typeset testcasename 394*b1cdbd2cSJim Jagielski typeset testcase 395*b1cdbd2cSJim Jagielski typeset testfile 396*b1cdbd2cSJim Jagielski typeset pdbfile 397*b1cdbd2cSJim Jagielski typeset xmlfile 398*b1cdbd2cSJim Jagielski typeset ext 399*b1cdbd2cSJim Jagielski integer try 400*b1cdbd2cSJim Jagielski integer finished_with_test 401*b1cdbd2cSJim Jagielski integer test_pass 402*b1cdbd2cSJim Jagielski 403*b1cdbd2cSJim Jagielski TestSetup 404*b1cdbd2cSJim Jagielski 405*b1cdbd2cSJim Jagielski BGCOLOR=$ODD_BGCOLOR 406*b1cdbd2cSJim Jagielski 407*b1cdbd2cSJim Jagielski while read line ; do 408*b1cdbd2cSJim Jagielski # get chars up to 1st space 409*b1cdbd2cSJim Jagielski testcasename=${line%% *} 410*b1cdbd2cSJim Jagielski testcase="${TESTCASEDIR}/$testcasename" 411*b1cdbd2cSJim Jagielski 412*b1cdbd2cSJim Jagielski # get 2nd word 413*b1cdbd2cSJim Jagielski testfile=${line#* } 414*b1cdbd2cSJim Jagielski testfile=${testfile%% *} 415*b1cdbd2cSJim Jagielski 416*b1cdbd2cSJim Jagielski # get last word 417*b1cdbd2cSJim Jagielski ext=${line##* } 418*b1cdbd2cSJim Jagielski 419*b1cdbd2cSJim Jagielski LogLine "############################################" 420*b1cdbd2cSJim Jagielski LogLine "Starting the following testcase" 421*b1cdbd2cSJim Jagielski LogLine "testcase = $testcase" 422*b1cdbd2cSJim Jagielski LogLine "testfile = $testfile" 423*b1cdbd2cSJim Jagielski LogLine "ext = $ext" 424*b1cdbd2cSJim Jagielski 425*b1cdbd2cSJim Jagielski ReportLine "<TR BGCOLOR='${BGCOLOR}'>" 426*b1cdbd2cSJim Jagielski ReportLine "<TD valign=top>$testcasename</TD>" 427*b1cdbd2cSJim Jagielski ReportLine "<TD valign=top>$testfile</TD>" 428*b1cdbd2cSJim Jagielski ReportLine "<TD valign=top>$ext</TD>" 429*b1cdbd2cSJim Jagielski 430*b1cdbd2cSJim Jagielski echo "" 431*b1cdbd2cSJim Jagielski echo "testcase = $testcase" 432*b1cdbd2cSJim Jagielski echo "testfile = $testfile" 433*b1cdbd2cSJim Jagielski echo "ext = $ext" 434*b1cdbd2cSJim Jagielski 435*b1cdbd2cSJim Jagielski try=1 436*b1cdbd2cSJim Jagielski finished_with_test=0 437*b1cdbd2cSJim Jagielski TEST_COMMENTS="" 438*b1cdbd2cSJim Jagielski 439*b1cdbd2cSJim Jagielski while (($finished_with_test == 0)) ; do 440*b1cdbd2cSJim Jagielski 441*b1cdbd2cSJim Jagielski TestCaseSetup 442*b1cdbd2cSJim Jagielski RunTestCase $testcase 443*b1cdbd2cSJim Jagielski TestCaseCleanup 444*b1cdbd2cSJim Jagielski 445*b1cdbd2cSJim Jagielski xmlfile="${testfile}.${ext}" 446*b1cdbd2cSJim Jagielski 447*b1cdbd2cSJim Jagielski if [[ $ext == "sxc" ]] ; then 448*b1cdbd2cSJim Jagielski pdbfile="${testfile}-Sheet1.pdb" 449*b1cdbd2cSJim Jagielski else 450*b1cdbd2cSJim Jagielski pdbfile="${testfile}.pdb" 451*b1cdbd2cSJim Jagielski fi 452*b1cdbd2cSJim Jagielski 453*b1cdbd2cSJim Jagielski CheckOutput $xmlfile $pdbfile 454*b1cdbd2cSJim Jagielski res=$? 455*b1cdbd2cSJim Jagielski 456*b1cdbd2cSJim Jagielski if [[ $res -eq 1 ]] ; then 457*b1cdbd2cSJim Jagielski ComparisonSetup $pdbfile 458*b1cdbd2cSJim Jagielski RunComparison pdb 459*b1cdbd2cSJim Jagielski res=$? 460*b1cdbd2cSJim Jagielski# ignore result until pdb comparator is fixed... 461*b1cdbd2cSJim Jagielskires=1 462*b1cdbd2cSJim Jagielski ComparisonCleanup 463*b1cdbd2cSJim Jagielski fi 464*b1cdbd2cSJim Jagielski 465*b1cdbd2cSJim Jagielski if [[ $res -eq 1 ]] ; then 466*b1cdbd2cSJim Jagielski ComparisonSetup $xmlfile 467*b1cdbd2cSJim Jagielski RunComparison xml 468*b1cdbd2cSJim Jagielski res=$? 469*b1cdbd2cSJim Jagielski ComparisonCleanup 470*b1cdbd2cSJim Jagielski fi 471*b1cdbd2cSJim Jagielski 472*b1cdbd2cSJim Jagielski if [[ $res -eq 1 ]] ; then 473*b1cdbd2cSJim Jagielski TOTAL_PASS=TOTAL_PASS+1 474*b1cdbd2cSJim Jagielski ReportLine "<TD valign=top BGCOLOR='${PASS_COLOR}'>PASS</TD>" 475*b1cdbd2cSJim Jagielski ReportTestComments 476*b1cdbd2cSJim Jagielski ReportLine "</TR>" 477*b1cdbd2cSJim Jagielski LogLine "Test PASSED (on try $try)" 478*b1cdbd2cSJim Jagielski echo "Test PASSED (on try $try)" 479*b1cdbd2cSJim Jagielski finished_with_test=1 480*b1cdbd2cSJim Jagielski else 481*b1cdbd2cSJim Jagielski TEST_COMMENTS="${TEST_COMMENTS}error on try ${try}<BR>" 482*b1cdbd2cSJim Jagielski LogLine "TEST FAILED (on try $try)" 483*b1cdbd2cSJim Jagielski echo "TEST FAILED (on try $try)" 484*b1cdbd2cSJim Jagielski 485*b1cdbd2cSJim Jagielski if [[ $try -eq $MAX_RETRIES ]] ; then 486*b1cdbd2cSJim Jagielski TOTAL_FAIL=TOTAL_FAIL+1 487*b1cdbd2cSJim Jagielski ReportLine "<TD valign=top BGCOLOR='${FAIL_COLOR}'>FAIL</TD>" 488*b1cdbd2cSJim Jagielski ReportTestComments 489*b1cdbd2cSJim Jagielski ReportLine "</TR>" 490*b1cdbd2cSJim Jagielski finished_with_test=1 491*b1cdbd2cSJim Jagielski fi 492*b1cdbd2cSJim Jagielski fi 493*b1cdbd2cSJim Jagielski 494*b1cdbd2cSJim Jagielski try=try+1 495*b1cdbd2cSJim Jagielski done 496*b1cdbd2cSJim Jagielski 497*b1cdbd2cSJim Jagielski TOTAL_RUN=TOTAL_RUN+1 498*b1cdbd2cSJim Jagielski 499*b1cdbd2cSJim Jagielski # toggle BGCOLOR for next report line 500*b1cdbd2cSJim Jagielski if [[ $BGCOLOR == $ODD_BGCOLOR ]] ; then 501*b1cdbd2cSJim Jagielski BGCOLOR=$EVEN_BGCOLOR 502*b1cdbd2cSJim Jagielski else 503*b1cdbd2cSJim Jagielski BGCOLOR=$ODD_BGCOLOR 504*b1cdbd2cSJim Jagielski fi 505*b1cdbd2cSJim Jagielski 506*b1cdbd2cSJim Jagielski done < $MASTERLIST 507*b1cdbd2cSJim Jagielski 508*b1cdbd2cSJim Jagielski ReportLine "</TABLE>" 509*b1cdbd2cSJim Jagielski ReportLine "</CENTER>" 510*b1cdbd2cSJim Jagielski 511*b1cdbd2cSJim Jagielski TestCleanup 512*b1cdbd2cSJim Jagielski 513*b1cdbd2cSJim Jagielski echo "Total Tests PASSED: "${TOTAL_PASS} 514*b1cdbd2cSJim Jagielski echo "Total Tests FAILED: "${TOTAL_FAIL} 515*b1cdbd2cSJim Jagielski echo "Total Tests RUN: "${TOTAL_RUN} 516*b1cdbd2cSJim Jagielski echo "Results in: $RESDIR" 517*b1cdbd2cSJim Jagielski echo "Report file: $REPORT" 518*b1cdbd2cSJim Jagielski} 519*b1cdbd2cSJim Jagielski 520*b1cdbd2cSJim Jagielski################################################################################ 521*b1cdbd2cSJim Jagielski################################################################################ 522*b1cdbd2cSJim Jagielski# main 523*b1cdbd2cSJim Jagielski################################################################################ 524*b1cdbd2cSJim Jagielski################################################################################ 525*b1cdbd2cSJim Jagielski 526*b1cdbd2cSJim JagielskiGetParams $@ 527*b1cdbd2cSJim JagielskiReadEnvFile 528*b1cdbd2cSJim JagielskiRunTest 529*b1cdbd2cSJim Jagielski 530*b1cdbd2cSJim Jagielskiexit 0 531