diff options
Diffstat (limited to 'security/nss/tests/qa_stat')
-rwxr-xr-x | security/nss/tests/qa_stat | 935 |
1 files changed, 0 insertions, 935 deletions
diff --git a/security/nss/tests/qa_stat b/security/nss/tests/qa_stat deleted file mode 100755 index aa3e4bb88..000000000 --- a/security/nss/tests/qa_stat +++ /dev/null @@ -1,935 +0,0 @@ -#! /bin/sh -######################################################################## -# -# /u/sonmi/bin/qa_stat - /u/svbld/bin/init/nss/qa_stat -# -# this script is supposed to automatically run QA for NSS on all required -# Unix platforms -# -# parameters -# ---------- -# nssversion (supported: 30b, 31, tip) -# builddate (default - today) -# -# options -# ------- -# -y answer all questions with y - use at your own risk...ignores warnings -# -s silent (only usefull with -y) -# -h, -? - you guessed right - displays this text -# -d debug -# -f <filename> - write the (error)output to filename -# -m <mailinglist> - send filename to mailinglist (csl) only useful -# with -f -# -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.qa_stat -# -######################################################################## - -O_OPTIONS=ON - -TBX_EXIT=49 # in case we are running on a tinderbox build, any - # early exit needs to return an error -if [ -z "$O_TBX" -o "$O_TBX" = "OFF" ] ; then - if [ -z "$O_LOCAL" -o "$O_LOCAL" = "OFF" ] ; then - . `dirname $0`/header - fi -fi -Debug "Sourced header O_TBX=$O_TBX O_LOCAL=$O_LOCAL" -TBX_EXIT=48 -EARLY_EXIT=TRUE - -URL="cindercone.red.iplanet.com" - -DOCDIR=/u/sonmi/doc - -HTML_ERRORCOLOR=\"#FF0000\" -HTML_ERRORMSG=Failed - -HTML_MISSINGCOLOR=\"#FFFFCC\" -HTML_MISSINGMSG=Missing - -HTML_INCOMPLETECOLOR=$HTML_MISSINGCOLOR -HTML_INCOMPLETEMSG=Incomplete - -HTML_PASSEDCOLOR=\"#66FF99\" -HTML_PASSEDMSG=Passed - -# this file is used to deal with hanging rsh - a new shell is started -# for each rsh, and a function is called after it is finished - they -# communicate with this file - -RSH_FILE=$TMP/rsh.$$ -echo >$RSH_FILE -TMPFILES="$TMPFILES $WARNINGLIST $RSH_FILE " -RSH_WAIT_TIME=80 #maximum time allowed for the 2 rsh to finish... -#TOTAL_TESTS=106 -TOTAL_TESTS=244 #3.4 -#TOTAL_TESTS=123 #3.3.2 -BCT_TOTAL_TESTS=122 #3.2.2 -#TOTAL_TESTS=133 #tip - -Debug "NTDIST $NTDIST" -Debug "UXDIST $UXDIST" -Debug "TESTSCRIPTDIR $TESTSCRIPTDIR" -Debug "RESULTDIR $RESULTDIR" - -############################### watch_rsh ############################## -# local shell function, deals with a hanging rsh (kills it...) -# this function is started as a backgroundprocess before the rsh is started, -# and writes info to the RSH_FILE, after the rsh is finished it writes finish -# info to the same file (this time called as a function, forground). -# the backgroundprocess stays around for RSH_WAIT_TIME, if then the finish -# information is not there attempts to kill the rsh -# -# watch_rsh start qa_computername & -# watch_rsh stop qa_computername -# -######################################################################## -watch_rsh() -{ - case $1 in - start) - echo "$2 started" >>$RSH_FILE - sleep $RSH_WAIT_TIME - O_ALWAYS_YES=ON # may modify global flags because this is a - # forked off bg process - kill_by_name otherwise - # will ask the user if it really should be killed - grep "$2 finished" $RSH_FILE >/dev/null || kill_by_name "rsh $2" - exit - ;; - stop) - echo "$2 finished" >>$RSH_FILE - ;; - esac -} - -############################### find_qa_systems ######################## -# local shell function, tries to determine the QA operating system -# works remotely, and for Windows machines -######################################################################## -find_qa_systems() -{ -for QA_SYS in `ls $RESULTDIR | grep '\.1$' | sed -e "s/\..*//" | sort -u` -do - NO_RSH="FALSE" - QA_OS="" - QA_RHVER="" - IS_64="" - IS_WIN="" - - grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa >/dev/null && NO_RSH=TRUE - - if [ "$NO_RSH" = "TRUE" ] - then - - QA_OS=`grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \ - -e "s/.*-OS-LINE: /${QA_SYS}/"` - QA_OS_STRING=`echo $QA_OS | sed -e "s/^[_ ]//" -e "s/ /_/g"` - echo $QA_OS_STRING >>$PLATFORMLIST - if [ "$O_SILENT" != ON ] ; then - echo $QA_OS - fi - - #grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \ - #-e "s/.*-OS-LINE: /${QA_SYS}_/" >>$PLATFORMLIST - #if [ "$O_SILENT" != ON ] ; then - #grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \ - #-e "s/.*-OS-LINE:/${QA_SYS}/" - #fi - else - REM_SYSNAME=$QA_SYS - watch_rsh start $REM_SYSNAME & - qa_stat_get_sysinfo $QA_SYS - watch_rsh stop $REM_SYSNAME - echo $QA_OS_STRING >>$PLATFORMLIST - # use later for missing list - fi -done - -} - -################################### qa_stat_init ########################## -# local shell function, sets the name of the resultfile to: -# <filename> if option -f <filename> -# $RESULTDIR/result if write permission -# (mozilla/tests_results/security/result) -# $HOME/resultNSS${NSSVER}-${BUILDDATE} if no write permission in $RESULTDIR -######################################################################## -qa_stat_init() -{ - if [ $O_FILE = ON -a $O_CRON = OFF ] # if -f was specified write there - then - RFILE=$FILENAME - else - RFILE=${RESULTDIR}/result.$$ - if [ ! -w $RESULTDIR ] - then - RFILE=$HOME/resultNSS${NSSVER}-${BUILDDATE}.$$ - Debug "Using alternate resultfile $RFILE" - #elif [ $O_CRON = ON ] - #then - ##find ${RESULTDIR} -exec chmod a+rw {} \; #FIXME - umask - ##doesn't seem to work - this is a tmp workaround - fi - - if [ ! -x $RESULTDIR -o ! -r $RESULTDIR -o ! -w $RESULTDIR ] - then - glob_usage "$RESULTDIR does not have the right permissions `ls -l $RESULTDIR`" - fi - if [ -d $RESULTDIR ] - then - cd $RESULTDIR - else - glob_usage "$RESULTDIR does not exist" - fi - fi - - ERRORLIST=${RFILE}.E - PLATFORMLIST=${RFILE}.P - PERFLIST=${RFILE}.PE - TMP_HTML_FILE=${RFILE}.html - HTML_FILE=${RESULTDIR}/result.html - WARNINGLIST=${RFILE}.W - BCMISSINGLIST=${RFILE}.BCM - BCERRORLIST=${RFILE}.BCE - TMPFILE=${RFILE}.T - ML_FILE=${RFILE}.ML - - TMPFILES="$TMPFILES $TMPFILE" - TMPFILES="$TMPFILES $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \ - $BCMISSINGLIST $BCERRORLIST $ML_FILE" #FIXME uncomment - - FILENAME=$RFILE #we might want to mail it...later switch to html file - O_FILE="ON" - - rm $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \ - $BCMISSINGLIST $BCERRORLIST $TMP_HTML_FILE 2>/dev/null - touch $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \ - $BCMISSINGLIST $BCERRORLIST $TMP_HTML_FILE 2>/dev/null - - if [ $O_WIN = "ON" -a "$O_TBX" = "ON" ] ; then - HTML_PATH="http://${URL}${UX_D0}/nss${NSSVER}/tinderbox/tests_results/security/`basename $RESULTDIR`" - else - HTML_PATH="http://${URL}${RESULTDIR}" - fi - HREF_TMP_HTML_FILE="${HTML_PATH}/`basename $HTML_FILE`" - - write_qa_header_html >$TMP_HTML_FILE -} - -################################# html_footer ######################### -# local shell function, writes end of the html body -####################################################################### -write_qa_header_html() -{ -echo 'Subject: QA Report ' $NSSVER $BUILDDATE ' -From: sonmi@iplanet.com -Reply-To: sonmi@iplanet.com -Content-Type: text/html; charset=us-ascii -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.8 sun4u) [N -etscape]"> -</head> -<body> -<br> - -<br> -<h2> -<a href="http://tinderbox.mozilla.org/showbuilds.cgi?tree=NSS">Tinderbox</a -><br> -<a href="http://cindercone.red.iplanet.com/share/builds/mccrel3/nss/nsstip/tinderbox/tests_results/security/">Tinderbox QA result</a><br> -<a href="ftp://ftp.mozilla.org/pub/security/nss/daily_qa">Mozilla Daily NSS QA result</a></h2> - - - -<br> -<center> -<h1> -<a NAME="Top"></a><b><font size=+2>QA Results</font></b></h1></center> - - -<table BORDER WIDTH="100%" NOSAVE > -<tr> -<td> <b><font size=+1>Build-OS and version</font></b></td> -<td><b><font size=+1>QA-OS</font></b></td> -<td><b><font size=+1>Systemname</font></b></td> -<td><b><font size=+1>P/F</font></b></td> -<td><b><font size=+1>result</font></b></td> -<td><b><font size=+1>output</font></b></td> -<td><b><font size=+1>errors</font></b></td> -<td><b><font size=+1>QA time / #</font></b></td> -</tr> -' -} - -################################# html_footer ######################### -# local shell function, writes end of the html body -####################################################################### -html_footer() -{ - echo '</body>' - echo '</html>' -} - -################################# setQAsysvars ######################### -# local shell function, sets system specific variables -######################################################################## -setQAsysvars() -{ - if [ "$MACHINE" != "0" ] - then - MACHINE=`echo $MACHINE | sed -e 's/^bct.//g'` - TESTDATE=`ls -ld $MACHINE | awk '{ print $6, $7, $8 }'` - TESTNUMBER=`echo $MACHINE | sed -e 's/.*\.//'` - SYSNAME=`echo $MACHINE | sed -e 's/\..*//'` - Debug "SYSNAME= $SYSNAME" - - if [ "$O_TBX" = "ON" -o "$O_LOCAL" = "ON" ] ; then - QA_SYS_OS=$QA_OS - else - QA_SYS_OS=`grep $SYSNAME $PLATFORMLIST | - sed -e 's/
//' | \ - sort | uniq | sed -e "s/$SYSNAME//" \ - -e "s/^_//" | sort | uniq` - fi - Debug "QA_SYS_OS= $QA_SYS_OS" - fi - BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' -e 's/_DBG/ Debug/' \ - -e 's/_OPT/ Optimized/' -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \ - -e 's/_/ /'` - Debug "BUILD_SYS=$BUILD_SYS" - if [ -f "${RESULTDIR}/${MACHINE}/results.html" ] ; then - RESULT="${HTML_PATH}/${MACHINE}/results.html" - else - RESULT="0" - fi - if [ -f "${RESULTDIR}/bct/${MACHINE}/results.html" ] ; then - BCB_RESULT="${HTML_PATH}/bct/${MACHINE}/results.html" - else - BCB_RESULT="0" - fi - - if [ -f "${RESULTDIR}/${MACHINE}/output.log" ] ; then - LOG="${HTML_PATH}/${MACHINE}/output.log" - else - LOG="0" - fi - if [ -f "${RESULTDIR}/bct/${MACHINE}/output.log" ] ; then - BCB_LOG="${HTML_PATH}/bct/${MACHINE}/output.log" - else - BCB_LOG="0" - fi -} - -################################# html_line() ######################### -# local shell function, writes a line in the html table -######################################################################## -html_line() -{ - echo '<tr NOSAVE>' - echo '<td NOSAVE>'$BUILD_SYS'</td>' - echo '' - if [ "$QA_SYS_OS" != "0" ] ; then - echo '<td NOSAVE>'$QA_SYS_OS'</td>' - else - echo '<td></td>' - fi - echo '' - if [ "$SYSNAME" != "0" ] ; then - echo '<td>'$SYSNAME'</td>' - else - echo '<td></td>' - fi - #echo '<td>'$SYSNAME $TESTNUMBER $TESTDATE'</td>' - echo '' - # hopefully we never run more different tests on a tinderbox build... - # on win some shells can not handle exit codes greater then 52 (64???) - # so for very early exits the codes are set 50-45, for failures later - # in the process the higher the number, the more failures - if [ "$O_TBX" = "ON" -a "$TBX_EXIT" -gt 45 ] ; then - TBX_EXIT=0 - fi - if [ "$1" = "failed" ] - then - TBX_EXIT=`expr $TBX_EXIT + 1` - echo '<td BGCOLOR='$HTML_ERRORCOLOR' NOSAVE><b>'$HTML_ERRORMSG'</b></td>' - elif [ "$1" = "passed" ] - then - echo '<td BGCOLOR='$HTML_PASSEDCOLOR' NOSAVE>'$HTML_PASSEDMSG'</td>' - elif [ "$1" = "incomplete" ] - then - TBX_EXIT=`expr $TBX_EXIT + 1` - echo '<td BGCOLOR='$HTML_INCOMPLETECOLOR' NOSAVE>'$HTML_INCOMPLETEMSG'</td>' - else - TBX_EXIT=`expr $TBX_EXIT + 1` - echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' - fi - if [ "$CURRENT_TABLE" != "BC" ] ; then - if [ "$RESULT" = "0" ] ; then - echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' - else - echo '<td> <a href="'$RESULT'">result</a> </td>' - fi - if [ "$LOG" = "0" ] ; then - echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' - else - echo '<td> <a href="'$LOG'">log</a> </td>' - fi - if [ "$1" = "failed" ] ; then - echo '<td> <a href="'${HREF_TMP_HTML_FILE}'#errorlist">error</a> </td>' - else - echo '<td></td>' - fi - else - #<td><b><font size=+1>errors</font></b></td> - #<td><b><font size=+1>P/F</font></b></td> - #<td><b><font size=+1>P/F</font></b></td> - - #echo '<td><b><font size=+1>All Current</font></b></td>' - #echo '<td><b><font size=+1>old dlls</font></b></td>' - #echo '<td><b><font size=+1>old executables</font></b></td>' - #if [ "$RESULT" != "0" -a "$LOG" != "0" ] ; then - #echo '<td><a href="'$RESULT'">result</a>, <a href="'$LOG'">log</td>' - #elif [ "$RESULT" = "0" -a "$LOG" != "0" ] ; then - #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$LOG'">log</a></td>' - #elif [ "$RESULT" != "0" -a "$LOG" = "0" ] ; then - #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$RESULT'">result</a></td>' - #else - #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' - #fi - #if [ "$BCB_RESULT" != "0" -a "$BCB_LOG" != "0" ] ; then - #echo '<td><a href="'$BCB_RESULT'">result</a>, <a href="'$BCB_LOG'"> log</td>' - #elif [ "$BCB_RESULT" = "0" -a "$BCB_LOG" != "0" ] ; then - #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$BCB_LOG'">log</a></td>' - #elif [ "$BCB_RESULT" != "0" -a "$BCB_LOG" = "0" ] ; then - #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$BCB_RESULT'">result</a></td>' - #else - #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' - #fi - if [ "$BCB_RESULT" = "0" ] ; then - echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' - else - echo '<td> <a href="'$BCB_RESULT'">result</a> </td>' - fi - if [ "$BCB_LOG" = "0" ] ; then - echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' - else - echo '<td> <a href="'$BCB_LOG'">log</a> </td>' - fi - fi - echo '<td>'$TESTDATE $TESTNUMBER'</td>' - echo '</tr>' -} - -################################# qa_errorlist ######################### -# local shell function, finds problems in the previously run QA -# linux:the gnu grep, on Linux can output 10 lines above and 3 lines below -# the errormessage -######################################################################## -qa_errorlist() -{ - grep "bgcolor=red" ${MACHINES_TO_CHECK}*/results.html | - sed -e 's/.results.html:<TR><TD>/ /' -e 's/<[^>]*>/ /g' - grep 'cache hits; .* cache misses, .* cache not reusable' \ - ${MACHINES_TO_CHECK}*/output.log | - grep strsclnt | - grep -v '0 cache hits; 0 cache misses, 0 cache not reusable' | - grep -v ' cache hits; 1 cache misses, 0 cache not reusable' - grep -vi "write to SSL socket" ${MACHINES_TO_CHECK}*/output.log | - grep -vi "HDX PR_Read returned error" | - grep -vi "no error" | - grep -vi "12285" | - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP error - #grep -vi "5938" | needed for -v option - #grep -vi "HDX PR_Read hit EOF" | - grep -vi "write to SSL socket" ${MACHINES_TO_CHECK}*/output.log | - grep -vi "peer cannot verify" | - grep -vi "error" | - grep -vi "fatal" | - grep -vi "TCP Connection aborted" | - grep -vi "TCP connection reset" | - grep $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i failed - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "segmentation violation" \ - ${MACHINES_TO_CHECK}*/output.log - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "memory fault" \ - ${MACHINES_TO_CHECK}*/output.log - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "bus error" \ - ${MACHINES_TO_CHECK}*/output.log - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "core dumped" \ - ${MACHINES_TO_CHECK}*/output.log - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP fatal \ - ${MACHINES_TO_CHECK}*/output.log - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i\ - "PKCS12 decode not verified" ${MACHINES_TO_CHECK}*/output.log - - if [ -n "${MACHINES_TO_CHECK}" ] ; then - find ${MACHINES_TO_CHECK}* -name core -print 2>/dev/null | - grep -v bct - else - find . -name core -print 2>/dev/null | - grep -v bct - fi -} - -tbx_missing_platforms () -{ - QA_MISSING="QA report missing" - MACHINE="0" - - if [ "$QA_OS_STRING" = "WINNT4.0" ] ; then - QA_OS_STRING="Windows-NT-4.0" - fi - for BUILDPLATFORM in `grep $QA_OS_STRING $TESTSCRIPTDIR/platformlist.tbx` - do - if [ "$BUILDPLATFORM" != "$QA_OS_STRING" ] ; then - Debug "BUILDPLATFORM = $BUILDPLATFORM QA_OS_STRING = $QA_OS_STRING" - grep $BUILDPLATFORM ${MACHINES_TO_CHECK}*/results.html \ - >/dev/null || { - setQAsysvars - html_line missing >>$TMP_HTML_FILE - } - fi - done -} - -############################ platform _list ########################### -# local shell function, generate pass/fail information for each Platform -######################################################################## -platformlist() -{ - grep Platform ${MACHINES_TO_CHECK}*/results.html | - sed -e 's/.results.html:<H4>Platform: /---/' \ - -e 's/<BR>//' >$TMPFILE - # this is done a little complicated to avoid starting a subshell in - # a while read that gets the input from a pipeline, and variables set - #in or underneath this function get unset after done... - for MB in `cat $TMPFILE` ; do - MACHINE=`echo $MB | sed -e "s/---.*//"` - BUILDPLATFORM=`echo $MB | sed -e "s/.*---//"` - grep "${MACHINE}[^0-9]" $ERRORLIST >/dev/null - ret=$? - setQAsysvars - if [ $ret -eq 0 ] - then - echo "Failed $MACHINE $BUILDPLATFORM" >>$RFILE - html_line failed >>$TMP_HTML_FILE - else - echo "Passed $MACHINE $BUILDPLATFORM" >>$RFILE - html_line passed >>$TMP_HTML_FILE - fi - done -} - -############################ missing_platforms ########################### -# local shell function, finds out if we ran on all required platforms -######################################################################## -missing_platforms() -{ - QA_MISSING="QA report missing" - MACHINE="0" - SYSNAME="0" - QA_SYS_OS="0" - - for BUILDPLATFORM in `cat $TESTSCRIPTDIR/platformlist` - do - grep $BUILDPLATFORM $PLATFORMLIST > /dev/null || { - setQAsysvars - html_line missing >>$TMP_HTML_FILE - } - done -} - -############################ incomplete_results ########################### -# local shell function, finds out if all qa runs were complete -######################################################################## -incomplete_results () -{ - - for w in `ls ${MACHINES_TO_CHECK}*/results.html` - do - grep bgcolor=red $w || { - PASSED_LINES="" - PASSED_LINES=`grep bgcolor=lightGreen $w | wc -l` - if [ -n "$PASSED_LINES" -a "$PASSED_LINES" -lt "$TOTAL_TESTS" ] ; then - BUILDPLATFORM=`grep Platform $w | sed -e 's/<H4>Platform:/ /' -e 's/<BR>//'` - MACHINE=`echo $w | sed -e "s/.results.html//"` - #MACHINE=`echo $w | sed -e "s/\.[0-9]*.results.html//"` - setQAsysvars - html_line incomplete >>$TMP_HTML_FILE - elif [ "$PASSED_LINES" -gt "$TOTAL_TESTS" ] ; then - echo "WARNING - more tests than expected on $w ($PASSED_LINES)" >>$WARNINGLIST - fi - } - done -} - -qa_stat_table() -{ - echo ' ' - echo '<br> ' - echo '<center>' - echo '<h1>' - echo '<a NAME="'$1'"></a>'$1'</h1></center>' - echo ' ' - echo '<table BORDER WIDTH="100%" NOSAVE >' - echo '<tr NOSAVE>' -} - -############################### psaperf ######################## -# local shell function, copies results of the daily performance test -# into a table in the QA report -######################################################################## -rsaperf() -{ - grep RSAPERF */output.log | grep -v "_DBG" > $PERFLIST - - qa_stat_table "Performance list" - - echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' - echo '<td><b><font size=+1>Systemname</font></b></td>' - echo '<td><b><font size=+1># of iterations</font></b></td>' - echo '<td><b><font size=+1>average for one op</font></b></td>' - echo '<td><b><font size=+1>Total</font></b></td>' - echo '<td><b><font size=+1>QA time / #</font></b></td>' - echo '</tr>' - cat $PERFLIST | - while read MACHINE BUILDPLATFORM no_iter t1 t2 total total_unit t3 \ - t4 t5 average average_unit - do - #caution subshell, variables local to this loop - BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' \ - -e 's/_DBG/ Debug/' \ - -e 's/_OPT/ Optimized/' -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \ - -e 's/_/ /'` - TESTNUMBER=`echo $MACHINE | sed -e 's/[^\.]*\.//' -e 's/\/.*//'` - MACHINE=`echo $MACHINE | sed -e 's/\..*//'` - TESTDATE=`ls -ld ${MACHINE}.${TESTNUMBER} | awk '{ print $6, $7, $8 }'` - echo '<tr>' - echo '<td>'$BUILD_SYS'</td>' - echo '' - echo '<td>'$MACHINE'</td>' - echo '' - echo '<td>'$no_iter'</td>' - echo '' - echo '<td>'$average' '$average_unit'</td>' - echo '' - echo '<td>'$total' '$total_unit'</td>' - echo '' - echo '<td>'$TESTDATE $TESTNUMBER'</td>' - echo '' - echo '</tr>' - done - echo '</table>' -} - -############################### qa_stat_cleanup ######################## -# local shell function, finishes html file, sets variables for global Exit -######################################################################## -qa_stat_cleanup() -{ - - html_footer >>$TMP_HTML_FILE - - O_DEBUG=OFF - - EARLY_EXIT=FALSE - cp $TMP_HTML_FILE $HTML_FILE - FILENAME=$HTML_FILE #we might want to mail it... - Exit -} - - -############################### bc_test ######################## -# local shell function, evaluates the results of the backward u -# compatibility tests -######################################################################## -bc_header() -{ -CURRENT_TABLE="BC" #so html_line can determine which fields to write - - qa_stat_table "Backward Compatibility Test" - echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' - echo '<td><b><font size=+1>QA-OS</font></b></td>' - echo '<td><b><font size=+1>Systemname</font></b></td>' - echo '<td><b><font size=+1>P/F</font></b></td>' - #echo '<td><b><font size=+1>All Current</font></b></td>' - #echo '<td><b><font size=+1>backward comp. test</font></b></td>' - echo '<td><b><font size=+1>result</font></b></td>' - echo '<td><b><font size=+1>output</font></b></td>' - echo '<td><b><font size=+1>QA time / #</font></b></td>' - echo '</tr>' - -} - -old_bc_test() -{ -CURRENT_TABLE="BC" #so html_line can determine which fields to write - - qa_stat_table "Backward Compatibility Test" - echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' - echo '<td><b><font size=+1>QA-OS</font></b></td>' - echo '<td><b><font size=+1>Systemname</font></b></td>' - echo '<td><b><font size=+1>P/F</font></b></td>' - #echo '<td><b><font size=+1>All Current</font></b></td>' - #echo '<td><b><font size=+1>backward comp. test</font></b></td>' - echo '<td><b><font size=+1>result</font></b></td>' - echo '<td><b><font size=+1>output</font></b></td>' - echo '<td><b><font size=+1>QA time / #</font></b></td>' - echo '</tr>' - - for w in `ls */results.html` - do - TMP_RESULT="`dirname $w`/results.tmp" - TMP_BC_RESULT="`dirname bct/$w`/results.tmp" - rm $TMP_RESULT $TMP_BC_RESULT 2>/dev/null - cat $w | sed -e 's/<[^>]*>//g' -e 's/ /_/g' \ - -e 's/signtool_-[vw]/signtool_-vw/' | - grep '_[PF]a[si][sl]ed' >$TMP_RESULT - cat bct/$w | sed -e 's/<[^>]*>//g' -e 's/ /_/g' \ - -e 's/signtool_-[vw]/signtool_-vw/' | - grep '_[PF]a[si][sl]ed' >$TMP_BC_RESULT - diff $TMP_RESULT $TMP_BC_RESULT 2>>$BCMISSINGLIST | - grep -v "Create_objsign_cert_.signtool_-G.*Passed" | - grep -v "porting_Alice.s_email_cert" | - grep -v "^[0-9,cad]*$" | grep -v "^---$" | grep -v "^---.$" | - grep -v "Can.t_run_pk12util_tests_for_NSS_3.2" >/dev/null && ( - echo "$w differs" >> $BCMISSINGLIST - echo "=========================================" - echo "diff $w bct/$w" - echo "=========================================" - diff $TMP_RESULT $TMP_BC_RESULT 2>&1 | - grep -v "Create_objsign_cert_.signtool_-G.*Passed" | - grep -v "porting_Alice.s_email_cert" | - grep -v "Can.t_run_pk12util_tests_for_NSS_3.2" - ) 2>&1 >>$BCERRORLIST - - #diff -b $w bct/$w 2>>$BCMISSINGLIST | - #grep -v "Create objsign cert .signtool -G.*Passed" | - #grep -v "Listing signed files in jar .signtool -v.*Passed" | - #grep -v "Listing signed files in jar .signtool -w.*Passed" | - #grep -v "backward compatibility" | - #grep -v "Can.t run pk12util tests for NSS 3.2" | - #grep -v "porting Alice.s email cert " | - #grep -v "^---$" | grep -v "^[<> ] $" | - #grep -v "^---.$" | grep -v "^[<> ] .$" | - #grep -v '< </BODY></HTML>' | - #grep -v "^[0-9,cad]*$" 2>>$BCMISSINGLIST >/dev/null && ( - #echo "$w differs" >> $BCMISSINGLIST - #echo "=========================================" - #echo "diff $w bct/$w" - #echo "=========================================" - #diff -b $w bct/$w 2>&1 | - #grep -v "Listing signed files in jar .signtool -v.*Passed" | - #grep -v "Listing signed files in jar .signtool -w.*Passed" | - #grep -v "backward compatibility" | - #grep -v "Can.t run pk12util tests for NSS 3.2" | - #grep -v "porting Alice.s email cert " | - #grep -v "^---$" | grep -v "^[<> ] $" | - #grep -v "^---.$" | grep -v "^[<> ] .$" | - #grep -v '< </BODY></HTML>' | - #grep -v "^[0-9,cad]*$" \ - #) 2>&1 >>$BCERRORLIST - rm $TMP_RESULT $TMP_BC_RESULT 2>/dev/null - done - rm $ERRORLIST - cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \ - -e "s/.results.html.*/\/results.html/" | - sort -u > $ERRORLIST - - platformlist - echo '</table>' >>$TMP_HTML_FILE - - head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/<br>/" -} - -bc_test() -{ -CURRENT_TABLE="BC" #so html_line can determine which fields to write - - qa_stat_table "Backward Compatibility Test" - echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' - echo '<td><b><font size=+1>QA-OS</font></b></td>' - echo '<td><b><font size=+1>Systemname</font></b></td>' - echo '<td><b><font size=+1>P/F</font></b></td>' - #echo '<td><b><font size=+1>All Current</font></b></td>' - #echo '<td><b><font size=+1>backward comp. test</font></b></td>' - echo '<td><b><font size=+1>result</font></b></td>' - echo '<td><b><font size=+1>output</font></b></td>' - echo '<td><b><font size=+1>QA time / #</font></b></td>' - echo '</tr>' - -set -x - for w in `ls */results.html` - do - BCT_DIR=`dirname "bct/$w"` - BCT_RESULT="bct/$w" - BCT_LOG="$BCT_DIR/output.log" - grep "bgcolor=red" $BCT_RESULT | - sed -e 's/.results.html:<TR><TD>/ /' -e 's/<[^>]*>/ /g' - grep 'cache hits; .* cache misses, .* cache not reusable' \ - $BCT_LOG | - grep -v selfserv | - grep -v '0 cache hits; 1 cache misses, 0 cache not reusable' | - grep -v '0 cache hits; 0 cache misses, 0 cache not reusable' | - grep -v ' cache hits; 1 cache misses, 0 cache not reusable' - grep -vi "write to SSL socket" $BCT_LOG | - grep -vi "HDX PR_Read returned error" | - grep -vi "no error" | - grep -vi "12285" | - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP error - grep -vi "write to SSL socket" $BCT_LOG | - grep -vi "peer cannot verify" | - grep -vi "TCP Connection aborted" | - grep -vi "error" | - grep -vi "fatal" | - grep -vi "TCP connection reset" | - grep $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i failed $BCT_LOG - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "segmentation violation" $BCT_LOG - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "memory fault" $BCT_LOG - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "bus error" $BCT_LOG - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "core dumped" $BCT_LOG - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP fatal $BCT_LOG - grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i "PKCS12 decode not verified" $BCT_LOG - find ${BTC_DIR} -name core -print - - done 2>&1 >>$BCERRORLIST - rm $ERRORLIST - cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \ - -e "s/.results.html.*/\/results.html/" | - sort -u > $ERRORLIST - - platformlist - echo '</table>' >>$TMP_HTML_FILE - - head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/<br>/" -} - - -############################### bc_test ######################## -# local shell function, evaluates the results of the backward u -# compatibility tests -# move the whole function to old to tests a new solution -######################################################################## -bc_test_old() -{ -CURRENT_TABLE="BC" #so html_line can determine which fields to write - - qa_stat_table "Backward Compatibility Test" - echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' - echo '<td><b><font size=+1>QA-OS</font></b></td>' - echo '<td><b><font size=+1>Systemname</font></b></td>' - echo '<td><b><font size=+1>P/F</font></b></td>' - #echo '<td><b><font size=+1>All Current</font></b></td>' - #echo '<td><b><font size=+1>backward comp. test</font></b></td>' - echo '<td><b><font size=+1>result</font></b></td>' - echo '<td><b><font size=+1>output</font></b></td>' - echo '<td><b><font size=+1>QA time / #</font></b></td>' - echo '</tr>' - - for w in `ls */results.html` - do - diff -b $w bct/$w 2>>$BCMISSINGLIST | - grep -v "Create objsign cert .signtool -G.*Passed" | - grep -v "Listing signed files in jar .signtool -v.*Passed" | - grep -v "Listing signed files in jar .signtool -w.*Passed" | - grep -v "backward compatibility" | - grep -v "Can.t run pk12util tests for NSS 3.2" | - grep -v "porting Alice.s email cert " | - grep -v "^---$" | grep -v "^[<> ] $" | - grep -v "^---.$" | grep -v "^[<> ] .$" | - grep -v '< </BODY></HTML>' | - grep -v "^[0-9,cad]*$" 2>>$BCMISSINGLIST >/dev/null && ( - echo "$w differs" >> $BCMISSINGLIST - echo "=========================================" - echo "diff $w bct/$w" - echo "=========================================" - diff -b $w bct/$w 2>&1 | - grep -v "Listing signed files in jar .signtool -v.*Passed" | - grep -v "Listing signed files in jar .signtool -w.*Passed" | - grep -v "backward compatibility" | - grep -v "Can.t run pk12util tests for NSS 3.2" | - grep -v "porting Alice.s email cert " | - grep -v "^---$" | grep -v "^[<> ] $" | - grep -v "^---.$" | grep -v "^[<> ] .$" | - grep -v '< </BODY></HTML>' | - grep -v "^[0-9,cad]*$" \ - ) 2>&1 >>$BCERRORLIST - done - rm $ERRORLIST - cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \ - -e "s/.results.html.*/\/results.html/" | - sort -u > $ERRORLIST - - platformlist - echo '</table>' >>$TMP_HTML_FILE - - head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/<br>/" - -} - -############################### tbx_main ######################## -# local shell function, tinderbox variation of the qa status script -######################################################################## -tbx_main() -{ - TBX_EXIT=47 - qa_stat_get_sysinfo # find out the OS we are running and all required tests - # on this OS - - MACHINES_TO_CHECK=$HOST #`uname -n` only search the local tests for errors - qa_errorlist > $ERRORLIST # - platformlist - #tbx_missing_platforms #temp. taken out until we find a better way to - #determine if all necessary QA ran - right now we run different - #tinderboxes on one machine - incomplete_results - echo '</table>' >>$TMP_HTML_FILE - echo '<a NAME="errorlist"></a>' >> $TMP_HTML_FILE - cat $ERRORLIST | sed -e "s/^/<br>/" >>$TMP_HTML_FILE - -} - -############################### qa_stat_main ######################## -# local shell function, main flow of the qa status script -######################################################################## -qa_stat_main() -{ - find_qa_systems 2>/dev/null - MACHINES_TO_CHECK="" # check all founf qa runs - qa_errorlist > $ERRORLIST - platformlist - missing_platforms - incomplete_results - echo '</table>' >>$TMP_HTML_FILE - echo '<a NAME="errorlist"></a>' >> $TMP_HTML_FILE - cat $ERRORLIST | sed -e "s/^/<br>/" >>$TMP_HTML_FILE - cat $WARNINGLIST 2>/dev/null | sed -e "s/^/<br>/" >>$TMP_HTML_FILE 2>/dev/null - rsaperf >>$TMP_HTML_FILE - bc_header >>$TMP_HTML_FILE - MACHINES_TO_CHECK="bct/" - TOTAL_TESTS=$BCT_TOTAL_TESTS - BEFORE_CONTEXT_GREP="" #WORKAROUND - errors in one outputlog within the first - AFTER_CONTEXT_GREP="" # or last lines will show up in the next/previos file - qa_errorlist > $ERRORLIST - platformlist - missing_platforms - incomplete_results - echo '</table>' >>$TMP_HTML_FILE - echo '<a NAME="errorlist"></a>' >> $TMP_HTML_FILE - cat $ERRORLIST | sed -e "s/^/<br>/" >>$TMP_HTML_FILE - cat $WARNINGLIST 2>/dev/null | sed -e "s/^/<br>/" >>$TMP_HTML_FILE 2>/dev/null - #bc_test >>$TMP_HTML_FILE -} - -CURRENT_TABLE="Standard" -qa_stat_init - -if [ "$O_TBX" = "ON" -o "$O_LOCAL" = "ON" ] ; then - tbx_main -else - qa_stat_main -fi - -qa_stat_cleanup |