1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/nss/tests/qa_stat Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,938 @@ 1.4 +#! /bin/sh 1.5 +######################################################################## 1.6 +# 1.7 +# /u/sonmi/bin/qa_stat - /u/svbld/bin/init/nss/qa_stat 1.8 +# 1.9 +# this script is supposed to automatically run QA for NSS on all required 1.10 +# Unix platforms 1.11 +# 1.12 +# parameters 1.13 +# ---------- 1.14 +# nssversion (supported: 30b, 31, tip) 1.15 +# builddate (default - today) 1.16 +# 1.17 +# options 1.18 +# ------- 1.19 +# -y answer all questions with y - use at your own risk...ignores warnings 1.20 +# -s silent (only usefull with -y) 1.21 +# -h, -? - you guessed right - displays this text 1.22 +# -d debug 1.23 +# -f <filename> - write the (error)output to filename 1.24 +# -m <mailinglist> - send filename to mailinglist (csl) only useful 1.25 +# with -f 1.26 +# -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.qa_stat 1.27 +# 1.28 +######################################################################## 1.29 + 1.30 +O_OPTIONS=ON 1.31 + 1.32 +TBX_EXIT=49 # in case we are running on a tinderbox build, any 1.33 + # early exit needs to return an error 1.34 +if [ -z "$O_TBX" -o "$O_TBX" = "OFF" ] ; then 1.35 + if [ -z "$O_LOCAL" -o "$O_LOCAL" = "OFF" ] ; then 1.36 + . `dirname $0`/header 1.37 + fi 1.38 +fi 1.39 +Debug "Sourced header O_TBX=$O_TBX O_LOCAL=$O_LOCAL" 1.40 +TBX_EXIT=48 1.41 +EARLY_EXIT=TRUE 1.42 + 1.43 +URL="cindercone.red.iplanet.com" 1.44 + 1.45 +DOCDIR=/u/sonmi/doc 1.46 + 1.47 +HTML_ERRORCOLOR=\"#FF0000\" 1.48 +HTML_ERRORMSG=Failed 1.49 + 1.50 +HTML_MISSINGCOLOR=\"#FFFFCC\" 1.51 +HTML_MISSINGMSG=Missing 1.52 + 1.53 +HTML_INCOMPLETECOLOR=$HTML_MISSINGCOLOR 1.54 +HTML_INCOMPLETEMSG=Incomplete 1.55 + 1.56 +HTML_PASSEDCOLOR=\"#66FF99\" 1.57 +HTML_PASSEDMSG=Passed 1.58 + 1.59 +# this file is used to deal with hanging rsh - a new shell is started 1.60 +# for each rsh, and a function is called after it is finished - they 1.61 +# communicate with this file 1.62 + 1.63 +RSH_FILE=$TMP/rsh.$$ 1.64 +echo >$RSH_FILE 1.65 +TMPFILES="$TMPFILES $WARNINGLIST $RSH_FILE " 1.66 +RSH_WAIT_TIME=80 #maximum time allowed for the 2 rsh to finish... 1.67 +#TOTAL_TESTS=106 1.68 +TOTAL_TESTS=252 #tip 1.69 +#TOTAL_TESTS=244 #3.4 1.70 +#TOTAL_TESTS=123 #3.3.2 1.71 +BCT_TOTAL_TESTS=122 #3.2.2 1.72 +#TOTAL_TESTS=133 #tip 1.73 + 1.74 +Debug "NTDIST $NTDIST" 1.75 +Debug "UXDIST $UXDIST" 1.76 +Debug "TESTSCRIPTDIR $TESTSCRIPTDIR" 1.77 +Debug "RESULTDIR $RESULTDIR" 1.78 + 1.79 +############################### watch_rsh ############################## 1.80 +# local shell function, deals with a hanging rsh (kills it...) 1.81 +# this function is started as a backgroundprocess before the rsh is started, 1.82 +# and writes info to the RSH_FILE, after the rsh is finished it writes finish 1.83 +# info to the same file (this time called as a function, forground). 1.84 +# the backgroundprocess stays around for RSH_WAIT_TIME, if then the finish 1.85 +# information is not there attempts to kill the rsh 1.86 +# 1.87 +# watch_rsh start qa_computername & 1.88 +# watch_rsh stop qa_computername 1.89 +# 1.90 +######################################################################## 1.91 +watch_rsh() 1.92 +{ 1.93 + case $1 in 1.94 + start) 1.95 + echo "$2 started" >>$RSH_FILE 1.96 + sleep $RSH_WAIT_TIME 1.97 + O_ALWAYS_YES=ON # may modify global flags because this is a 1.98 + # forked off bg process - kill_by_name otherwise 1.99 + # will ask the user if it really should be killed 1.100 + grep "$2 finished" $RSH_FILE >/dev/null || kill_by_name "rsh $2" 1.101 + exit 1.102 + ;; 1.103 + stop) 1.104 + echo "$2 finished" >>$RSH_FILE 1.105 + ;; 1.106 + esac 1.107 +} 1.108 + 1.109 +############################### find_qa_systems ######################## 1.110 +# local shell function, tries to determine the QA operating system 1.111 +# works remotely, and for Windows machines 1.112 +######################################################################## 1.113 +find_qa_systems() 1.114 +{ 1.115 +for QA_SYS in `ls $RESULTDIR | grep '\.1$' | sed -e "s/\..*//" | sort -u` 1.116 +do 1.117 + NO_RSH="FALSE" 1.118 + QA_OS="" 1.119 + QA_RHVER="" 1.120 + IS_64="" 1.121 + IS_WIN="" 1.122 + 1.123 + grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa >/dev/null && NO_RSH=TRUE 1.124 + 1.125 + if [ "$NO_RSH" = "TRUE" ] 1.126 + then 1.127 + 1.128 + QA_OS=`grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \ 1.129 + -e "s/.*-OS-LINE: /${QA_SYS}/"` 1.130 + QA_OS_STRING=`echo $QA_OS | sed -e "s/^[_ ]//" -e "s/ /_/g"` 1.131 + echo $QA_OS_STRING >>$PLATFORMLIST 1.132 + if [ "$O_SILENT" != ON ] ; then 1.133 + echo $QA_OS 1.134 + fi 1.135 + 1.136 + #grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \ 1.137 + #-e "s/.*-OS-LINE: /${QA_SYS}_/" >>$PLATFORMLIST 1.138 + #if [ "$O_SILENT" != ON ] ; then 1.139 + #grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \ 1.140 + #-e "s/.*-OS-LINE:/${QA_SYS}/" 1.141 + #fi 1.142 + else 1.143 + REM_SYSNAME=$QA_SYS 1.144 + watch_rsh start $REM_SYSNAME & 1.145 + qa_stat_get_sysinfo $QA_SYS 1.146 + watch_rsh stop $REM_SYSNAME 1.147 + echo $QA_OS_STRING >>$PLATFORMLIST 1.148 + # use later for missing list 1.149 + fi 1.150 +done 1.151 + 1.152 +} 1.153 + 1.154 +################################### qa_stat_init ########################## 1.155 +# local shell function, sets the name of the resultfile to: 1.156 +# <filename> if option -f <filename> 1.157 +# $RESULTDIR/result if write permission 1.158 +# (mozilla/tests_results/security/result) 1.159 +# $HOME/resultNSS${NSSVER}-${BUILDDATE} if no write permission in $RESULTDIR 1.160 +######################################################################## 1.161 +qa_stat_init() 1.162 +{ 1.163 + if [ $O_FILE = ON -a $O_CRON = OFF ] # if -f was specified write there 1.164 + then 1.165 + RFILE=$FILENAME 1.166 + else 1.167 + RFILE=${RESULTDIR}/result.$$ 1.168 + if [ ! -w $RESULTDIR ] 1.169 + then 1.170 + RFILE=$HOME/resultNSS${NSSVER}-${BUILDDATE}.$$ 1.171 + Debug "Using alternate resultfile $RFILE" 1.172 + #elif [ $O_CRON = ON ] 1.173 + #then 1.174 + ##find ${RESULTDIR} -exec chmod a+rw {} \; #FIXME - umask 1.175 + ##doesn't seem to work - this is a tmp workaround 1.176 + fi 1.177 + 1.178 + if [ ! -x $RESULTDIR -o ! -r $RESULTDIR -o ! -w $RESULTDIR ] 1.179 + then 1.180 + glob_usage "$RESULTDIR does not have the right permissions `ls -l $RESULTDIR`" 1.181 + fi 1.182 + if [ -d $RESULTDIR ] 1.183 + then 1.184 + cd $RESULTDIR 1.185 + else 1.186 + glob_usage "$RESULTDIR does not exist" 1.187 + fi 1.188 + fi 1.189 + 1.190 + ERRORLIST=${RFILE}.E 1.191 + PLATFORMLIST=${RFILE}.P 1.192 + PERFLIST=${RFILE}.PE 1.193 + TMP_HTML_FILE=${RFILE}.html 1.194 + HTML_FILE=${RESULTDIR}/result.html 1.195 + WARNINGLIST=${RFILE}.W 1.196 + BCMISSINGLIST=${RFILE}.BCM 1.197 + BCERRORLIST=${RFILE}.BCE 1.198 + TMPFILE=${RFILE}.T 1.199 + ML_FILE=${RFILE}.ML 1.200 + 1.201 + TMPFILES="$TMPFILES $TMPFILE" 1.202 + TMPFILES="$TMPFILES $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \ 1.203 + $BCMISSINGLIST $BCERRORLIST $ML_FILE" #FIXME uncomment 1.204 + 1.205 + FILENAME=$RFILE #we might want to mail it...later switch to html file 1.206 + O_FILE="ON" 1.207 + 1.208 + rm $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \ 1.209 + $BCMISSINGLIST $BCERRORLIST $TMP_HTML_FILE 2>/dev/null 1.210 + touch $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \ 1.211 + $BCMISSINGLIST $BCERRORLIST $TMP_HTML_FILE 2>/dev/null 1.212 + 1.213 + if [ $O_WIN = "ON" -a "$O_TBX" = "ON" ] ; then 1.214 + HTML_PATH="http://${URL}${UX_D0}/nss${NSSVER}/tinderbox/tests_results/security/`basename $RESULTDIR`" 1.215 + else 1.216 + HTML_PATH="http://${URL}${RESULTDIR}" 1.217 + fi 1.218 + HREF_TMP_HTML_FILE="${HTML_PATH}/`basename $HTML_FILE`" 1.219 + 1.220 + write_qa_header_html >$TMP_HTML_FILE 1.221 +} 1.222 + 1.223 +################################# html_footer ######################### 1.224 +# local shell function, writes end of the html body 1.225 +####################################################################### 1.226 +write_qa_header_html() 1.227 +{ 1.228 +echo 'Subject: QA Report ' $NSSVER $BUILDDATE ' 1.229 +From: sonmi@iplanet.com 1.230 +Reply-To: sonmi@iplanet.com 1.231 +Content-Type: text/html; charset=us-ascii 1.232 +<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> 1.233 +<html> 1.234 +<head> 1.235 + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 1.236 + <meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.8 sun4u) [N 1.237 +etscape]"> 1.238 +</head> 1.239 +<body> 1.240 +<br> 1.241 + 1.242 +<br> 1.243 +<h2> 1.244 +<a href="http://tinderbox.mozilla.org/showbuilds.cgi?tree=NSS">Tinderbox</a 1.245 +><br> 1.246 +<a href="http://cindercone.red.iplanet.com/share/builds/mccrel3/nss/nsstip/tinderbox/tests_results/security/">Tinderbox QA result</a><br> 1.247 +<a href="ftp://ftp.mozilla.org/pub/security/nss/daily_qa">Mozilla Daily NSS QA result</a></h2> 1.248 + 1.249 + 1.250 + 1.251 +<br> 1.252 +<center> 1.253 +<h1> 1.254 +<a NAME="Top"></a><b><font size=+2>QA Results</font></b></h1></center> 1.255 + 1.256 + 1.257 +<table BORDER WIDTH="100%" NOSAVE > 1.258 +<tr> 1.259 +<td> <b><font size=+1>Build-OS and version</font></b></td> 1.260 +<td><b><font size=+1>QA-OS</font></b></td> 1.261 +<td><b><font size=+1>Systemname</font></b></td> 1.262 +<td><b><font size=+1>P/F</font></b></td> 1.263 +<td><b><font size=+1>result</font></b></td> 1.264 +<td><b><font size=+1>output</font></b></td> 1.265 +<td><b><font size=+1>errors</font></b></td> 1.266 +<td><b><font size=+1>QA time / #</font></b></td> 1.267 +</tr> 1.268 +' 1.269 +} 1.270 + 1.271 +################################# html_footer ######################### 1.272 +# local shell function, writes end of the html body 1.273 +####################################################################### 1.274 +html_footer() 1.275 +{ 1.276 + echo '</body>' 1.277 + echo '</html>' 1.278 +} 1.279 + 1.280 +################################# setQAsysvars ######################### 1.281 +# local shell function, sets system specific variables 1.282 +######################################################################## 1.283 +setQAsysvars() 1.284 +{ 1.285 + if [ "$MACHINE" != "0" ] 1.286 + then 1.287 + MACHINE=`echo $MACHINE | sed -e 's/^bct.//g'` 1.288 + TESTDATE=`ls -ld $MACHINE | awk '{ print $6, $7, $8 }'` 1.289 + TESTNUMBER=`echo $MACHINE | sed -e 's/.*\.//'` 1.290 + SYSNAME=`echo $MACHINE | sed -e 's/\..*//'` 1.291 + Debug "SYSNAME= $SYSNAME" 1.292 + 1.293 + if [ "$O_TBX" = "ON" -o "$O_LOCAL" = "ON" ] ; then 1.294 + QA_SYS_OS=$QA_OS 1.295 + else 1.296 + QA_SYS_OS=`grep $SYSNAME $PLATFORMLIST | 1.297 + sed -e 's/ 1.298 //' | \ 1.299 + sort | uniq | sed -e "s/$SYSNAME//" \ 1.300 + -e "s/^_//" | sort | uniq` 1.301 + fi 1.302 + Debug "QA_SYS_OS= $QA_SYS_OS" 1.303 + fi 1.304 + BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' -e 's/_DBG/ Debug/' \ 1.305 + -e 's/_OPT/ Optimized/' -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \ 1.306 + -e 's/_/ /'` 1.307 + Debug "BUILD_SYS=$BUILD_SYS" 1.308 + if [ -f "${RESULTDIR}/${MACHINE}/results.html" ] ; then 1.309 + RESULT="${HTML_PATH}/${MACHINE}/results.html" 1.310 + else 1.311 + RESULT="0" 1.312 + fi 1.313 + if [ -f "${RESULTDIR}/bct/${MACHINE}/results.html" ] ; then 1.314 + BCB_RESULT="${HTML_PATH}/bct/${MACHINE}/results.html" 1.315 + else 1.316 + BCB_RESULT="0" 1.317 + fi 1.318 + 1.319 + if [ -f "${RESULTDIR}/${MACHINE}/output.log" ] ; then 1.320 + LOG="${HTML_PATH}/${MACHINE}/output.log" 1.321 + else 1.322 + LOG="0" 1.323 + fi 1.324 + if [ -f "${RESULTDIR}/bct/${MACHINE}/output.log" ] ; then 1.325 + BCB_LOG="${HTML_PATH}/bct/${MACHINE}/output.log" 1.326 + else 1.327 + BCB_LOG="0" 1.328 + fi 1.329 +} 1.330 + 1.331 +################################# html_line() ######################### 1.332 +# local shell function, writes a line in the html table 1.333 +######################################################################## 1.334 +html_line() 1.335 +{ 1.336 + echo '<tr NOSAVE>' 1.337 + echo '<td NOSAVE>'$BUILD_SYS'</td>' 1.338 + echo '' 1.339 + if [ "$QA_SYS_OS" != "0" ] ; then 1.340 + echo '<td NOSAVE>'$QA_SYS_OS'</td>' 1.341 + else 1.342 + echo '<td></td>' 1.343 + fi 1.344 + echo '' 1.345 + if [ "$SYSNAME" != "0" ] ; then 1.346 + echo '<td>'$SYSNAME'</td>' 1.347 + else 1.348 + echo '<td></td>' 1.349 + fi 1.350 + #echo '<td>'$SYSNAME $TESTNUMBER $TESTDATE'</td>' 1.351 + echo '' 1.352 + # hopefully we never run more different tests on a tinderbox build... 1.353 + # on win some shells can not handle exit codes greater then 52 (64???) 1.354 + # so for very early exits the codes are set 50-45, for failures later 1.355 + # in the process the higher the number, the more failures 1.356 + if [ "$O_TBX" = "ON" -a "$TBX_EXIT" -gt 45 ] ; then 1.357 + TBX_EXIT=0 1.358 + fi 1.359 + if [ "$1" = "failed" ] 1.360 + then 1.361 + TBX_EXIT=`expr $TBX_EXIT + 1` 1.362 + echo '<td BGCOLOR='$HTML_ERRORCOLOR' NOSAVE><b>'$HTML_ERRORMSG'</b></td>' 1.363 + elif [ "$1" = "passed" ] 1.364 + then 1.365 + echo '<td BGCOLOR='$HTML_PASSEDCOLOR' NOSAVE>'$HTML_PASSEDMSG'</td>' 1.366 + elif [ "$1" = "incomplete" ] 1.367 + then 1.368 + TBX_EXIT=`expr $TBX_EXIT + 1` 1.369 + echo '<td BGCOLOR='$HTML_INCOMPLETECOLOR' NOSAVE>'$HTML_INCOMPLETEMSG'</td>' 1.370 + else 1.371 + TBX_EXIT=`expr $TBX_EXIT + 1` 1.372 + echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' 1.373 + fi 1.374 + if [ "$CURRENT_TABLE" != "BC" ] ; then 1.375 + if [ "$RESULT" = "0" ] ; then 1.376 + echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' 1.377 + else 1.378 + echo '<td> <a href="'$RESULT'">result</a> </td>' 1.379 + fi 1.380 + if [ "$LOG" = "0" ] ; then 1.381 + echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' 1.382 + else 1.383 + echo '<td> <a href="'$LOG'">log</a> </td>' 1.384 + fi 1.385 + if [ "$1" = "failed" ] ; then 1.386 + echo '<td> <a href="'${HREF_TMP_HTML_FILE}'#errorlist">error</a> </td>' 1.387 + else 1.388 + echo '<td></td>' 1.389 + fi 1.390 + else 1.391 + #<td><b><font size=+1>errors</font></b></td> 1.392 + #<td><b><font size=+1>P/F</font></b></td> 1.393 + #<td><b><font size=+1>P/F</font></b></td> 1.394 + 1.395 + #echo '<td><b><font size=+1>All Current</font></b></td>' 1.396 + #echo '<td><b><font size=+1>old dlls</font></b></td>' 1.397 + #echo '<td><b><font size=+1>old executables</font></b></td>' 1.398 + #if [ "$RESULT" != "0" -a "$LOG" != "0" ] ; then 1.399 + #echo '<td><a href="'$RESULT'">result</a>, <a href="'$LOG'">log</td>' 1.400 + #elif [ "$RESULT" = "0" -a "$LOG" != "0" ] ; then 1.401 + #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$LOG'">log</a></td>' 1.402 + #elif [ "$RESULT" != "0" -a "$LOG" = "0" ] ; then 1.403 + #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$RESULT'">result</a></td>' 1.404 + #else 1.405 + #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' 1.406 + #fi 1.407 + #if [ "$BCB_RESULT" != "0" -a "$BCB_LOG" != "0" ] ; then 1.408 + #echo '<td><a href="'$BCB_RESULT'">result</a>, <a href="'$BCB_LOG'"> log</td>' 1.409 + #elif [ "$BCB_RESULT" = "0" -a "$BCB_LOG" != "0" ] ; then 1.410 + #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$BCB_LOG'">log</a></td>' 1.411 + #elif [ "$BCB_RESULT" != "0" -a "$BCB_LOG" = "0" ] ; then 1.412 + #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$BCB_RESULT'">result</a></td>' 1.413 + #else 1.414 + #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' 1.415 + #fi 1.416 + if [ "$BCB_RESULT" = "0" ] ; then 1.417 + echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' 1.418 + else 1.419 + echo '<td> <a href="'$BCB_RESULT'">result</a> </td>' 1.420 + fi 1.421 + if [ "$BCB_LOG" = "0" ] ; then 1.422 + echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' 1.423 + else 1.424 + echo '<td> <a href="'$BCB_LOG'">log</a> </td>' 1.425 + fi 1.426 + fi 1.427 + echo '<td>'$TESTDATE $TESTNUMBER'</td>' 1.428 + echo '</tr>' 1.429 +} 1.430 + 1.431 +################################# qa_errorlist ######################### 1.432 +# local shell function, finds problems in the previously run QA 1.433 +# linux:the gnu grep, on Linux can output 10 lines above and 3 lines below 1.434 +# the errormessage 1.435 +######################################################################## 1.436 +qa_errorlist() 1.437 +{ 1.438 + grep "bgcolor=red" ${MACHINES_TO_CHECK}*/results.html | 1.439 + sed -e 's/.results.html:<TR><TD>/ /' -e 's/<[^>]*>/ /g' 1.440 + grep 'cache hits; .* cache misses, .* cache not reusable' \ 1.441 + ${MACHINES_TO_CHECK}*/output.log | 1.442 + grep strsclnt | 1.443 + grep -v '0 cache hits; 0 cache misses, 0 cache not reusable' | 1.444 + grep -v ' cache hits; 1 cache misses, 0 cache not reusable' 1.445 + for logfile in ${MACHINES_TO_CHECK}*/output.log; do 1.446 + grep -vi "write to SSL socket" $logfile | 1.447 + grep -vi "HDX PR_Read returned error" | 1.448 + grep -vi "no error" | 1.449 + grep -vi "12285" | 1.450 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP error 1.451 + #grep -vi "5938" | needed for -v option 1.452 + #grep -vi "HDX PR_Read hit EOF" | 1.453 + grep -vi "write to SSL socket" $logfile | 1.454 + grep -vi "peer cannot verify" | 1.455 + grep -vi "error" | 1.456 + grep -vi "fatal" | 1.457 + grep -vi "TCP Connection aborted" | 1.458 + grep -vi "TCP connection reset" | 1.459 + grep $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i failed 1.460 + done 1.461 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "segmentation violation" \ 1.462 + ${MACHINES_TO_CHECK}*/output.log 1.463 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "memory fault" \ 1.464 + ${MACHINES_TO_CHECK}*/output.log 1.465 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "bus error" \ 1.466 + ${MACHINES_TO_CHECK}*/output.log 1.467 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "core dumped" \ 1.468 + ${MACHINES_TO_CHECK}*/output.log 1.469 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP fatal \ 1.470 + ${MACHINES_TO_CHECK}*/output.log 1.471 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i\ 1.472 + "PKCS12 decode not verified" ${MACHINES_TO_CHECK}*/output.log 1.473 + 1.474 + if [ -n "${MACHINES_TO_CHECK}" ] ; then 1.475 + find ${MACHINES_TO_CHECK}* -name core -print 2>/dev/null | 1.476 + grep -v bct 1.477 + else 1.478 + find . -name core -print 2>/dev/null | 1.479 + grep -v bct 1.480 + fi 1.481 +} 1.482 + 1.483 +tbx_missing_platforms () 1.484 +{ 1.485 + QA_MISSING="QA report missing" 1.486 + MACHINE="0" 1.487 + 1.488 + if [ "$QA_OS_STRING" = "WINNT4.0" ] ; then 1.489 + QA_OS_STRING="Windows-NT-4.0" 1.490 + fi 1.491 + for BUILDPLATFORM in `grep $QA_OS_STRING $TESTSCRIPTDIR/platformlist.tbx` 1.492 + do 1.493 + if [ "$BUILDPLATFORM" != "$QA_OS_STRING" ] ; then 1.494 + Debug "BUILDPLATFORM = $BUILDPLATFORM QA_OS_STRING = $QA_OS_STRING" 1.495 + grep $BUILDPLATFORM ${MACHINES_TO_CHECK}*/results.html \ 1.496 + >/dev/null || { 1.497 + setQAsysvars 1.498 + html_line missing >>$TMP_HTML_FILE 1.499 + } 1.500 + fi 1.501 + done 1.502 +} 1.503 + 1.504 +############################ platform _list ########################### 1.505 +# local shell function, generate pass/fail information for each Platform 1.506 +######################################################################## 1.507 +platformlist() 1.508 +{ 1.509 + grep Platform ${MACHINES_TO_CHECK}*/results.html | 1.510 + sed -e 's/.results.html:<H4>Platform: /---/' \ 1.511 + -e 's/<BR>//' >$TMPFILE 1.512 + # this is done a little complicated to avoid starting a subshell in 1.513 + # a while read that gets the input from a pipeline, and variables set 1.514 + #in or underneath this function get unset after done... 1.515 + for MB in `cat $TMPFILE` ; do 1.516 + MACHINE=`echo $MB | sed -e "s/---.*//"` 1.517 + BUILDPLATFORM=`echo $MB | sed -e "s/.*---//"` 1.518 + grep "${MACHINE}[^0-9]" $ERRORLIST >/dev/null 1.519 + ret=$? 1.520 + setQAsysvars 1.521 + if [ $ret -eq 0 ] 1.522 + then 1.523 + echo "Failed $MACHINE $BUILDPLATFORM" >>$RFILE 1.524 + html_line failed >>$TMP_HTML_FILE 1.525 + else 1.526 + echo "Passed $MACHINE $BUILDPLATFORM" >>$RFILE 1.527 + html_line passed >>$TMP_HTML_FILE 1.528 + fi 1.529 + done 1.530 +} 1.531 + 1.532 +############################ missing_platforms ########################### 1.533 +# local shell function, finds out if we ran on all required platforms 1.534 +######################################################################## 1.535 +missing_platforms() 1.536 +{ 1.537 + QA_MISSING="QA report missing" 1.538 + MACHINE="0" 1.539 + SYSNAME="0" 1.540 + QA_SYS_OS="0" 1.541 + 1.542 + for BUILDPLATFORM in `cat $TESTSCRIPTDIR/platformlist` 1.543 + do 1.544 + grep $BUILDPLATFORM $PLATFORMLIST > /dev/null || { 1.545 + setQAsysvars 1.546 + html_line missing >>$TMP_HTML_FILE 1.547 + } 1.548 + done 1.549 +} 1.550 + 1.551 +############################ incomplete_results ########################### 1.552 +# local shell function, finds out if all qa runs were complete 1.553 +######################################################################## 1.554 +incomplete_results () 1.555 +{ 1.556 + 1.557 + for w in `ls ${MACHINES_TO_CHECK}*/results.html` 1.558 + do 1.559 + grep bgcolor=red $w || { 1.560 + PASSED_LINES="" 1.561 + PASSED_LINES=`grep bgcolor=lightGreen $w | wc -l` 1.562 + if [ -n "$PASSED_LINES" -a "$PASSED_LINES" -lt "$TOTAL_TESTS" ] ; then 1.563 + BUILDPLATFORM=`grep Platform $w | sed -e 's/<H4>Platform:/ /' -e 's/<BR>//'` 1.564 + MACHINE=`echo $w | sed -e "s/.results.html//"` 1.565 + #MACHINE=`echo $w | sed -e "s/\.[0-9]*.results.html//"` 1.566 + setQAsysvars 1.567 + html_line incomplete >>$TMP_HTML_FILE 1.568 + elif [ "$PASSED_LINES" -gt "$TOTAL_TESTS" ] ; then 1.569 + echo "WARNING - more tests than expected on $w ($PASSED_LINES)" >>$WARNINGLIST 1.570 + fi 1.571 + } 1.572 + done 1.573 +} 1.574 + 1.575 +qa_stat_table() 1.576 +{ 1.577 + echo ' ' 1.578 + echo '<br> ' 1.579 + echo '<center>' 1.580 + echo '<h1>' 1.581 + echo '<a NAME="'$1'"></a>'$1'</h1></center>' 1.582 + echo ' ' 1.583 + echo '<table BORDER WIDTH="100%" NOSAVE >' 1.584 + echo '<tr NOSAVE>' 1.585 +} 1.586 + 1.587 +############################### psaperf ######################## 1.588 +# local shell function, copies results of the daily performance test 1.589 +# into a table in the QA report 1.590 +######################################################################## 1.591 +rsaperf() 1.592 +{ 1.593 + grep RSAPERF */output.log | grep -v "_DBG" > $PERFLIST 1.594 + 1.595 + qa_stat_table "Performance list" 1.596 + 1.597 + echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' 1.598 + echo '<td><b><font size=+1>Systemname</font></b></td>' 1.599 + echo '<td><b><font size=+1># of iterations</font></b></td>' 1.600 + echo '<td><b><font size=+1>average for one op</font></b></td>' 1.601 + echo '<td><b><font size=+1>Total</font></b></td>' 1.602 + echo '<td><b><font size=+1>QA time / #</font></b></td>' 1.603 + echo '</tr>' 1.604 + cat $PERFLIST | 1.605 + while read MACHINE BUILDPLATFORM no_iter t1 t2 total total_unit t3 \ 1.606 + t4 t5 average average_unit 1.607 + do 1.608 + #caution subshell, variables local to this loop 1.609 + BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' \ 1.610 + -e 's/_DBG/ Debug/' \ 1.611 + -e 's/_OPT/ Optimized/' -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \ 1.612 + -e 's/_/ /'` 1.613 + TESTNUMBER=`echo $MACHINE | sed -e 's/[^\.]*\.//' -e 's/\/.*//'` 1.614 + MACHINE=`echo $MACHINE | sed -e 's/\..*//'` 1.615 + TESTDATE=`ls -ld ${MACHINE}.${TESTNUMBER} | awk '{ print $6, $7, $8 }'` 1.616 + echo '<tr>' 1.617 + echo '<td>'$BUILD_SYS'</td>' 1.618 + echo '' 1.619 + echo '<td>'$MACHINE'</td>' 1.620 + echo '' 1.621 + echo '<td>'$no_iter'</td>' 1.622 + echo '' 1.623 + echo '<td>'$average' '$average_unit'</td>' 1.624 + echo '' 1.625 + echo '<td>'$total' '$total_unit'</td>' 1.626 + echo '' 1.627 + echo '<td>'$TESTDATE $TESTNUMBER'</td>' 1.628 + echo '' 1.629 + echo '</tr>' 1.630 + done 1.631 + echo '</table>' 1.632 +} 1.633 + 1.634 +############################### qa_stat_cleanup ######################## 1.635 +# local shell function, finishes html file, sets variables for global Exit 1.636 +######################################################################## 1.637 +qa_stat_cleanup() 1.638 +{ 1.639 + 1.640 + html_footer >>$TMP_HTML_FILE 1.641 + 1.642 + O_DEBUG=OFF 1.643 + 1.644 + EARLY_EXIT=FALSE 1.645 + cp $TMP_HTML_FILE $HTML_FILE 1.646 + FILENAME=$HTML_FILE #we might want to mail it... 1.647 + Exit 1.648 +} 1.649 + 1.650 + 1.651 +############################### bc_test ######################## 1.652 +# local shell function, evaluates the results of the backward u 1.653 +# compatibility tests 1.654 +######################################################################## 1.655 +bc_header() 1.656 +{ 1.657 +CURRENT_TABLE="BC" #so html_line can determine which fields to write 1.658 + 1.659 + qa_stat_table "Backward Compatibility Test" 1.660 + echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' 1.661 + echo '<td><b><font size=+1>QA-OS</font></b></td>' 1.662 + echo '<td><b><font size=+1>Systemname</font></b></td>' 1.663 + echo '<td><b><font size=+1>P/F</font></b></td>' 1.664 + #echo '<td><b><font size=+1>All Current</font></b></td>' 1.665 + #echo '<td><b><font size=+1>backward comp. test</font></b></td>' 1.666 + echo '<td><b><font size=+1>result</font></b></td>' 1.667 + echo '<td><b><font size=+1>output</font></b></td>' 1.668 + echo '<td><b><font size=+1>QA time / #</font></b></td>' 1.669 + echo '</tr>' 1.670 + 1.671 +} 1.672 + 1.673 +old_bc_test() 1.674 +{ 1.675 +CURRENT_TABLE="BC" #so html_line can determine which fields to write 1.676 + 1.677 + qa_stat_table "Backward Compatibility Test" 1.678 + echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' 1.679 + echo '<td><b><font size=+1>QA-OS</font></b></td>' 1.680 + echo '<td><b><font size=+1>Systemname</font></b></td>' 1.681 + echo '<td><b><font size=+1>P/F</font></b></td>' 1.682 + #echo '<td><b><font size=+1>All Current</font></b></td>' 1.683 + #echo '<td><b><font size=+1>backward comp. test</font></b></td>' 1.684 + echo '<td><b><font size=+1>result</font></b></td>' 1.685 + echo '<td><b><font size=+1>output</font></b></td>' 1.686 + echo '<td><b><font size=+1>QA time / #</font></b></td>' 1.687 + echo '</tr>' 1.688 + 1.689 + for w in `ls */results.html` 1.690 + do 1.691 + TMP_RESULT="`dirname $w`/results.tmp" 1.692 + TMP_BC_RESULT="`dirname bct/$w`/results.tmp" 1.693 + rm $TMP_RESULT $TMP_BC_RESULT 2>/dev/null 1.694 + cat $w | sed -e 's/<[^>]*>//g' -e 's/ /_/g' \ 1.695 + -e 's/signtool_-[vw]/signtool_-vw/' | 1.696 + grep '_[PF]a[si][sl]ed' >$TMP_RESULT 1.697 + cat bct/$w | sed -e 's/<[^>]*>//g' -e 's/ /_/g' \ 1.698 + -e 's/signtool_-[vw]/signtool_-vw/' | 1.699 + grep '_[PF]a[si][sl]ed' >$TMP_BC_RESULT 1.700 + diff $TMP_RESULT $TMP_BC_RESULT 2>>$BCMISSINGLIST | 1.701 + grep -v "Create_objsign_cert_.signtool_-G.*Passed" | 1.702 + grep -v "porting_Alice.s_email_cert" | 1.703 + grep -v "^[0-9,cad]*$" | grep -v "^---$" | grep -v "^---.$" | 1.704 + grep -v "Can.t_run_pk12util_tests_for_NSS_3.2" >/dev/null && ( 1.705 + echo "$w differs" >> $BCMISSINGLIST 1.706 + echo "=========================================" 1.707 + echo "diff $w bct/$w" 1.708 + echo "=========================================" 1.709 + diff $TMP_RESULT $TMP_BC_RESULT 2>&1 | 1.710 + grep -v "Create_objsign_cert_.signtool_-G.*Passed" | 1.711 + grep -v "porting_Alice.s_email_cert" | 1.712 + grep -v "Can.t_run_pk12util_tests_for_NSS_3.2" 1.713 + ) 2>&1 >>$BCERRORLIST 1.714 + 1.715 + #diff -b $w bct/$w 2>>$BCMISSINGLIST | 1.716 + #grep -v "Create objsign cert .signtool -G.*Passed" | 1.717 + #grep -v "Listing signed files in jar .signtool -v.*Passed" | 1.718 + #grep -v "Listing signed files in jar .signtool -w.*Passed" | 1.719 + #grep -v "backward compatibility" | 1.720 + #grep -v "Can.t run pk12util tests for NSS 3.2" | 1.721 + #grep -v "porting Alice.s email cert " | 1.722 + #grep -v "^---$" | grep -v "^[<> ] $" | 1.723 + #grep -v "^---.$" | grep -v "^[<> ] .$" | 1.724 + #grep -v '< </BODY></HTML>' | 1.725 + #grep -v "^[0-9,cad]*$" 2>>$BCMISSINGLIST >/dev/null && ( 1.726 + #echo "$w differs" >> $BCMISSINGLIST 1.727 + #echo "=========================================" 1.728 + #echo "diff $w bct/$w" 1.729 + #echo "=========================================" 1.730 + #diff -b $w bct/$w 2>&1 | 1.731 + #grep -v "Listing signed files in jar .signtool -v.*Passed" | 1.732 + #grep -v "Listing signed files in jar .signtool -w.*Passed" | 1.733 + #grep -v "backward compatibility" | 1.734 + #grep -v "Can.t run pk12util tests for NSS 3.2" | 1.735 + #grep -v "porting Alice.s email cert " | 1.736 + #grep -v "^---$" | grep -v "^[<> ] $" | 1.737 + #grep -v "^---.$" | grep -v "^[<> ] .$" | 1.738 + #grep -v '< </BODY></HTML>' | 1.739 + #grep -v "^[0-9,cad]*$" \ 1.740 + #) 2>&1 >>$BCERRORLIST 1.741 + rm $TMP_RESULT $TMP_BC_RESULT 2>/dev/null 1.742 + done 1.743 + rm $ERRORLIST 1.744 + cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \ 1.745 + -e "s/.results.html.*/\/results.html/" | 1.746 + sort -u > $ERRORLIST 1.747 + 1.748 + platformlist 1.749 + echo '</table>' >>$TMP_HTML_FILE 1.750 + 1.751 + head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/<br>/" 1.752 +} 1.753 + 1.754 +bc_test() 1.755 +{ 1.756 +CURRENT_TABLE="BC" #so html_line can determine which fields to write 1.757 + 1.758 + qa_stat_table "Backward Compatibility Test" 1.759 + echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' 1.760 + echo '<td><b><font size=+1>QA-OS</font></b></td>' 1.761 + echo '<td><b><font size=+1>Systemname</font></b></td>' 1.762 + echo '<td><b><font size=+1>P/F</font></b></td>' 1.763 + #echo '<td><b><font size=+1>All Current</font></b></td>' 1.764 + #echo '<td><b><font size=+1>backward comp. test</font></b></td>' 1.765 + echo '<td><b><font size=+1>result</font></b></td>' 1.766 + echo '<td><b><font size=+1>output</font></b></td>' 1.767 + echo '<td><b><font size=+1>QA time / #</font></b></td>' 1.768 + echo '</tr>' 1.769 + 1.770 +set -x 1.771 + for w in `ls */results.html` 1.772 + do 1.773 + BCT_DIR=`dirname "bct/$w"` 1.774 + BCT_RESULT="bct/$w" 1.775 + BCT_LOG="$BCT_DIR/output.log" 1.776 + grep "bgcolor=red" $BCT_RESULT | 1.777 + sed -e 's/.results.html:<TR><TD>/ /' -e 's/<[^>]*>/ /g' 1.778 + grep 'cache hits; .* cache misses, .* cache not reusable' \ 1.779 + $BCT_LOG | 1.780 + grep -v selfserv | 1.781 + grep -v '0 cache hits; 1 cache misses, 0 cache not reusable' | 1.782 + grep -v '0 cache hits; 0 cache misses, 0 cache not reusable' | 1.783 + grep -v ' cache hits; 1 cache misses, 0 cache not reusable' 1.784 + grep -vi "write to SSL socket" $BCT_LOG | 1.785 + grep -vi "HDX PR_Read returned error" | 1.786 + grep -vi "no error" | 1.787 + grep -vi "12285" | 1.788 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP error 1.789 + grep -vi "write to SSL socket" $BCT_LOG | 1.790 + grep -vi "peer cannot verify" | 1.791 + grep -vi "TCP Connection aborted" | 1.792 + grep -vi "error" | 1.793 + grep -vi "fatal" | 1.794 + grep -vi "TCP connection reset" | 1.795 + grep $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i failed $BCT_LOG 1.796 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "segmentation violation" $BCT_LOG 1.797 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "memory fault" $BCT_LOG 1.798 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "bus error" $BCT_LOG 1.799 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "core dumped" $BCT_LOG 1.800 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP fatal $BCT_LOG 1.801 + grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i "PKCS12 decode not verified" $BCT_LOG 1.802 + find ${BTC_DIR} -name core -print 1.803 + 1.804 + done 2>&1 >>$BCERRORLIST 1.805 + rm $ERRORLIST 1.806 + cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \ 1.807 + -e "s/.results.html.*/\/results.html/" | 1.808 + sort -u > $ERRORLIST 1.809 + 1.810 + platformlist 1.811 + echo '</table>' >>$TMP_HTML_FILE 1.812 + 1.813 + head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/<br>/" 1.814 +} 1.815 + 1.816 + 1.817 +############################### bc_test ######################## 1.818 +# local shell function, evaluates the results of the backward u 1.819 +# compatibility tests 1.820 +# move the whole function to old to tests a new solution 1.821 +######################################################################## 1.822 +bc_test_old() 1.823 +{ 1.824 +CURRENT_TABLE="BC" #so html_line can determine which fields to write 1.825 + 1.826 + qa_stat_table "Backward Compatibility Test" 1.827 + echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' 1.828 + echo '<td><b><font size=+1>QA-OS</font></b></td>' 1.829 + echo '<td><b><font size=+1>Systemname</font></b></td>' 1.830 + echo '<td><b><font size=+1>P/F</font></b></td>' 1.831 + #echo '<td><b><font size=+1>All Current</font></b></td>' 1.832 + #echo '<td><b><font size=+1>backward comp. test</font></b></td>' 1.833 + echo '<td><b><font size=+1>result</font></b></td>' 1.834 + echo '<td><b><font size=+1>output</font></b></td>' 1.835 + echo '<td><b><font size=+1>QA time / #</font></b></td>' 1.836 + echo '</tr>' 1.837 + 1.838 + for w in `ls */results.html` 1.839 + do 1.840 + diff -b $w bct/$w 2>>$BCMISSINGLIST | 1.841 + grep -v "Create objsign cert .signtool -G.*Passed" | 1.842 + grep -v "Listing signed files in jar .signtool -v.*Passed" | 1.843 + grep -v "Listing signed files in jar .signtool -w.*Passed" | 1.844 + grep -v "backward compatibility" | 1.845 + grep -v "Can.t run pk12util tests for NSS 3.2" | 1.846 + grep -v "porting Alice.s email cert " | 1.847 + grep -v "^---$" | grep -v "^[<> ] $" | 1.848 + grep -v "^---.$" | grep -v "^[<> ] .$" | 1.849 + grep -v '< </BODY></HTML>' | 1.850 + grep -v "^[0-9,cad]*$" 2>>$BCMISSINGLIST >/dev/null && ( 1.851 + echo "$w differs" >> $BCMISSINGLIST 1.852 + echo "=========================================" 1.853 + echo "diff $w bct/$w" 1.854 + echo "=========================================" 1.855 + diff -b $w bct/$w 2>&1 | 1.856 + grep -v "Listing signed files in jar .signtool -v.*Passed" | 1.857 + grep -v "Listing signed files in jar .signtool -w.*Passed" | 1.858 + grep -v "backward compatibility" | 1.859 + grep -v "Can.t run pk12util tests for NSS 3.2" | 1.860 + grep -v "porting Alice.s email cert " | 1.861 + grep -v "^---$" | grep -v "^[<> ] $" | 1.862 + grep -v "^---.$" | grep -v "^[<> ] .$" | 1.863 + grep -v '< </BODY></HTML>' | 1.864 + grep -v "^[0-9,cad]*$" \ 1.865 + ) 2>&1 >>$BCERRORLIST 1.866 + done 1.867 + rm $ERRORLIST 1.868 + cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \ 1.869 + -e "s/.results.html.*/\/results.html/" | 1.870 + sort -u > $ERRORLIST 1.871 + 1.872 + platformlist 1.873 + echo '</table>' >>$TMP_HTML_FILE 1.874 + 1.875 + head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/<br>/" 1.876 + 1.877 +} 1.878 + 1.879 +############################### tbx_main ######################## 1.880 +# local shell function, tinderbox variation of the qa status script 1.881 +######################################################################## 1.882 +tbx_main() 1.883 +{ 1.884 + TBX_EXIT=47 1.885 + qa_stat_get_sysinfo # find out the OS we are running and all required tests 1.886 + # on this OS 1.887 + 1.888 + MACHINES_TO_CHECK=$HOST #`uname -n` only search the local tests for errors 1.889 + qa_errorlist > $ERRORLIST # 1.890 + platformlist 1.891 + #tbx_missing_platforms #temp. taken out until we find a better way to 1.892 + #determine if all necessary QA ran - right now we run different 1.893 + #tinderboxes on one machine 1.894 + incomplete_results 1.895 + echo '</table>' >>$TMP_HTML_FILE 1.896 + echo '<a NAME="errorlist"></a>' >> $TMP_HTML_FILE 1.897 + cat $ERRORLIST | sed -e "s/^/<br>/" >>$TMP_HTML_FILE 1.898 + 1.899 +} 1.900 + 1.901 +############################### qa_stat_main ######################## 1.902 +# local shell function, main flow of the qa status script 1.903 +######################################################################## 1.904 +qa_stat_main() 1.905 +{ 1.906 + find_qa_systems 2>/dev/null 1.907 + MACHINES_TO_CHECK="" # check all founf qa runs 1.908 + qa_errorlist > $ERRORLIST 1.909 + platformlist 1.910 + missing_platforms 1.911 + incomplete_results 1.912 + echo '</table>' >>$TMP_HTML_FILE 1.913 + echo '<a NAME="errorlist"></a>' >> $TMP_HTML_FILE 1.914 + cat $ERRORLIST | sed -e "s/^/<br>/" >>$TMP_HTML_FILE 1.915 + cat $WARNINGLIST 2>/dev/null | sed -e "s/^/<br>/" >>$TMP_HTML_FILE 2>/dev/null 1.916 + rsaperf >>$TMP_HTML_FILE 1.917 + bc_header >>$TMP_HTML_FILE 1.918 + MACHINES_TO_CHECK="bct/" 1.919 + TOTAL_TESTS=$BCT_TOTAL_TESTS 1.920 + BEFORE_CONTEXT_GREP="" #WORKAROUND - errors in one outputlog within the first 1.921 + AFTER_CONTEXT_GREP="" # or last lines will show up in the next/previos file 1.922 + qa_errorlist > $ERRORLIST 1.923 + platformlist 1.924 + missing_platforms 1.925 + incomplete_results 1.926 + echo '</table>' >>$TMP_HTML_FILE 1.927 + echo '<a NAME="errorlist"></a>' >> $TMP_HTML_FILE 1.928 + cat $ERRORLIST | sed -e "s/^/<br>/" >>$TMP_HTML_FILE 1.929 + cat $WARNINGLIST 2>/dev/null | sed -e "s/^/<br>/" >>$TMP_HTML_FILE 2>/dev/null 1.930 + #bc_test >>$TMP_HTML_FILE 1.931 +} 1.932 + 1.933 +CURRENT_TABLE="Standard" 1.934 +qa_stat_init 1.935 + 1.936 +if [ "$O_TBX" = "ON" -o "$O_LOCAL" = "ON" ] ; then 1.937 + tbx_main 1.938 +else 1.939 + qa_stat_main 1.940 +fi 1.941 + 1.942 +qa_stat_cleanup