Blame nss/tests/qa_stat

Packit 40b132
#! /bin/sh 
Packit 40b132
########################################################################
Packit 40b132
#
Packit 40b132
# /u/sonmi/bin/qa_stat - /u/svbld/bin/init/nss/qa_stat
Packit 40b132
#
Packit 40b132
# this script is supposed to automatically run QA for NSS on all required
Packit 40b132
# Unix platforms
Packit 40b132
#
Packit 40b132
# parameters
Packit 40b132
# ----------
Packit 40b132
#    nssversion (supported: 30b, 31, tip)
Packit 40b132
#    builddate  (default - today)
Packit 40b132
#
Packit 40b132
# options
Packit 40b132
# -------
Packit 40b132
#    -y answer all questions with y - use at your own risk...ignores warnings
Packit 40b132
#    -s silent (only usefull with -y)
Packit 40b132
#    -h, -? - you guessed right - displays this text
Packit 40b132
#    -d debug
Packit 40b132
#    -f <filename> - write the (error)output to filename
Packit 40b132
#    -m <mailinglist> - send filename to mailinglist (csl) only useful
Packit 40b132
#        with -f
Packit 40b132
#    -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.qa_stat
Packit 40b132
#
Packit 40b132
########################################################################
Packit 40b132
Packit 40b132
O_OPTIONS=ON
Packit 40b132
Packit 40b132
TBX_EXIT=49          # in case we are running on a tinderbox build, any
Packit 40b132
                          # early exit needs to return an error
Packit 40b132
if [ -z "$O_TBX" -o "$O_TBX" = "OFF" ] ; then
Packit 40b132
    if [ -z "$O_LOCAL" -o "$O_LOCAL" = "OFF" ] ; then
Packit 40b132
        . `dirname $0`/header
Packit 40b132
    fi
Packit 40b132
fi
Packit 40b132
Debug "Sourced header O_TBX=$O_TBX O_LOCAL=$O_LOCAL"
Packit 40b132
TBX_EXIT=48
Packit 40b132
EARLY_EXIT=TRUE
Packit 40b132
Packit 40b132
URL="cindercone.red.iplanet.com"
Packit 40b132
Packit 40b132
DOCDIR=/u/sonmi/doc
Packit 40b132
Packit 40b132
HTML_ERRORCOLOR=\"#FF0000\"
Packit 40b132
HTML_ERRORMSG=Failed
Packit 40b132
Packit 40b132
HTML_MISSINGCOLOR=\"#FFFFCC\"
Packit 40b132
HTML_MISSINGMSG=Missing
Packit 40b132
Packit 40b132
HTML_INCOMPLETECOLOR=$HTML_MISSINGCOLOR
Packit 40b132
HTML_INCOMPLETEMSG=Incomplete
Packit 40b132
Packit 40b132
HTML_PASSEDCOLOR=\"#66FF99\"
Packit 40b132
HTML_PASSEDMSG=Passed
Packit 40b132
Packit 40b132
# this file is used to deal with hanging rsh - a new shell is started 
Packit 40b132
# for each rsh, and a function is called after it is finished - they
Packit 40b132
# communicate with this file
Packit 40b132
Packit 40b132
RSH_FILE=$TMP/rsh.$$
Packit 40b132
echo >$RSH_FILE
Packit 40b132
TMPFILES="$TMPFILES $WARNINGLIST $RSH_FILE "
Packit 40b132
RSH_WAIT_TIME=80 #maximum time allowed for the 2 rsh to finish...
Packit 40b132
#TOTAL_TESTS=106
Packit 40b132
TOTAL_TESTS=252 #tip
Packit 40b132
#TOTAL_TESTS=244 #3.4
Packit 40b132
#TOTAL_TESTS=123 #3.3.2
Packit 40b132
BCT_TOTAL_TESTS=122 #3.2.2
Packit 40b132
#TOTAL_TESTS=133 #tip
Packit 40b132
Packit 40b132
Debug "NTDIST $NTDIST"
Packit 40b132
Debug "UXDIST $UXDIST"
Packit 40b132
Debug "TESTSCRIPTDIR $TESTSCRIPTDIR"
Packit 40b132
Debug "RESULTDIR $RESULTDIR"
Packit 40b132
Packit 40b132
############################### watch_rsh ##############################
Packit 40b132
# local shell function, deals with a hanging rsh (kills it...)
Packit 40b132
# this function is started as a backgroundprocess before the rsh is started,
Packit 40b132
# and writes info to the RSH_FILE, after the rsh is finished it writes finish
Packit 40b132
# info to the same file (this time called as a function, forground). 
Packit 40b132
# the backgroundprocess stays around for RSH_WAIT_TIME, if then the finish 
Packit 40b132
# information is not there attempts to kill the rsh
Packit 40b132
#
Packit 40b132
# watch_rsh start qa_computername &
Packit 40b132
# watch_rsh stop qa_computername 
Packit 40b132
#
Packit 40b132
########################################################################
Packit 40b132
watch_rsh()
Packit 40b132
{
Packit 40b132
    case $1 in
Packit 40b132
        start)
Packit 40b132
            echo "$2 started" >>$RSH_FILE
Packit 40b132
            sleep $RSH_WAIT_TIME
Packit 40b132
            O_ALWAYS_YES=ON # may modify global flags because this is a 
Packit 40b132
                            # forked off bg process - kill_by_name otherwise
Packit 40b132
                            # will ask the user if it really should be killed 
Packit 40b132
            grep "$2 finished" $RSH_FILE >/dev/null || kill_by_name "rsh $2"
Packit 40b132
            exit
Packit 40b132
            ;;
Packit 40b132
        stop)
Packit 40b132
            echo "$2 finished" >>$RSH_FILE
Packit 40b132
            ;;
Packit 40b132
    esac
Packit 40b132
}
Packit 40b132
Packit 40b132
############################### find_qa_systems ########################
Packit 40b132
# local shell function, tries to determine the QA operating system
Packit 40b132
# works remotely, and for Windows machines
Packit 40b132
########################################################################
Packit 40b132
find_qa_systems()
Packit 40b132
{
Packit 40b132
for QA_SYS in `ls $RESULTDIR | grep '\.1$' | sed -e "s/\..*//" | sort -u`
Packit 40b132
do
Packit 40b132
    NO_RSH="FALSE"
Packit 40b132
    QA_OS=""
Packit 40b132
    QA_RHVER=""
Packit 40b132
    IS_64=""
Packit 40b132
    IS_WIN=""
Packit 40b132
Packit 40b132
    grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa >/dev/null && NO_RSH=TRUE
Packit 40b132
Packit 40b132
    if [ "$NO_RSH" = "TRUE" ]
Packit 40b132
    then
Packit 40b132
Packit 40b132
        QA_OS=`grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \
Packit 40b132
            -e "s/.*-OS-LINE: /${QA_SYS}/"`
Packit 40b132
        QA_OS_STRING=`echo $QA_OS | sed -e "s/^[_ ]//" -e "s/ /_/g"`
Packit 40b132
        echo $QA_OS_STRING >>$PLATFORMLIST
Packit 40b132
        if [ "$O_SILENT" != ON ] ; then
Packit 40b132
            echo $QA_OS
Packit 40b132
        fi
Packit 40b132
Packit 40b132
        #grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \
Packit 40b132
             #-e "s/.*-OS-LINE: /${QA_SYS}_/" >>$PLATFORMLIST
Packit 40b132
        #if [ "$O_SILENT" != ON ] ; then
Packit 40b132
            #grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \
Packit 40b132
                 #-e "s/.*-OS-LINE:/${QA_SYS}/" 
Packit 40b132
        #fi
Packit 40b132
    else
Packit 40b132
        REM_SYSNAME=$QA_SYS
Packit 40b132
        watch_rsh start $REM_SYSNAME &
Packit 40b132
        qa_stat_get_sysinfo $QA_SYS
Packit 40b132
        watch_rsh stop $REM_SYSNAME 
Packit 40b132
        echo $QA_OS_STRING >>$PLATFORMLIST
Packit 40b132
                          # use later for missing list
Packit 40b132
    fi
Packit 40b132
done
Packit 40b132
Packit 40b132
}
Packit 40b132
Packit 40b132
################################### qa_stat_init ##########################
Packit 40b132
# local shell function, sets the name of the resultfile to:
Packit 40b132
#    <filename> if option -f <filename>
Packit 40b132
#    $RESULTDIR/result if write permission 
Packit 40b132
#        (mozilla/tests_results/security/result)
Packit 40b132
#    $HOME/resultNSS${NSSVER}-${BUILDDATE} if no write permission in $RESULTDIR
Packit 40b132
########################################################################
Packit 40b132
qa_stat_init()
Packit 40b132
{
Packit 40b132
    if [ $O_FILE = ON -a $O_CRON = OFF ]    # if -f was specified write there 
Packit 40b132
    then
Packit 40b132
        RFILE=$FILENAME    
Packit 40b132
    else
Packit 40b132
        RFILE=${RESULTDIR}/result.$$
Packit 40b132
        if [ ! -w $RESULTDIR ]
Packit 40b132
        then
Packit 40b132
            RFILE=$HOME/resultNSS${NSSVER}-${BUILDDATE}.$$
Packit 40b132
            Debug "Using alternate resultfile $RFILE"
Packit 40b132
        #elif [ $O_CRON = ON ]
Packit 40b132
        #then
Packit 40b132
             ##find ${RESULTDIR} -exec chmod a+rw {} \;    #FIXME - umask 
Packit 40b132
                            ##doesn't seem to work - this is a tmp workaround
Packit 40b132
        fi
Packit 40b132
    
Packit 40b132
        if [ ! -x $RESULTDIR -o ! -r  $RESULTDIR -o ! -w $RESULTDIR ]
Packit 40b132
        then
Packit 40b132
            glob_usage "$RESULTDIR does not have the right permissions `ls -l $RESULTDIR`"
Packit 40b132
        fi
Packit 40b132
        if [ -d $RESULTDIR ]
Packit 40b132
        then
Packit 40b132
            cd $RESULTDIR
Packit 40b132
        else
Packit 40b132
            glob_usage "$RESULTDIR does not exist"
Packit 40b132
        fi
Packit 40b132
    fi
Packit 40b132
Packit 40b132
    ERRORLIST=${RFILE}.E
Packit 40b132
    PLATFORMLIST=${RFILE}.P
Packit 40b132
    PERFLIST=${RFILE}.PE
Packit 40b132
    TMP_HTML_FILE=${RFILE}.html
Packit 40b132
    HTML_FILE=${RESULTDIR}/result.html
Packit 40b132
    WARNINGLIST=${RFILE}.W
Packit 40b132
    BCMISSINGLIST=${RFILE}.BCM
Packit 40b132
    BCERRORLIST=${RFILE}.BCE
Packit 40b132
    TMPFILE=${RFILE}.T
Packit 40b132
    ML_FILE=${RFILE}.ML
Packit 40b132
Packit 40b132
    TMPFILES="$TMPFILES $TMPFILE"
Packit 40b132
    TMPFILES="$TMPFILES $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \
Packit 40b132
       $BCMISSINGLIST $BCERRORLIST $ML_FILE" #FIXME uncomment
Packit 40b132
Packit 40b132
    FILENAME=$RFILE        #we might want to mail it...later switch to html file
Packit 40b132
    O_FILE="ON"
Packit 40b132
Packit 40b132
    rm $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \
Packit 40b132
       $BCMISSINGLIST $BCERRORLIST $TMP_HTML_FILE  2>/dev/null
Packit 40b132
    touch $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \
Packit 40b132
       $BCMISSINGLIST $BCERRORLIST $TMP_HTML_FILE  2>/dev/null
Packit 40b132
Packit 40b132
    if [  $O_WIN = "ON" -a "$O_TBX" = "ON" ] ; then
Packit 40b132
        HTML_PATH="http://${URL}${UX_D0}/nss${NSSVER}/tinderbox/tests_results/security/`basename $RESULTDIR`"
Packit 40b132
    else
Packit 40b132
        HTML_PATH="http://${URL}${RESULTDIR}"
Packit 40b132
    fi
Packit 40b132
    HREF_TMP_HTML_FILE="${HTML_PATH}/`basename $HTML_FILE`"
Packit 40b132
Packit 40b132
    write_qa_header_html >$TMP_HTML_FILE
Packit 40b132
}
Packit 40b132
Packit 40b132
################################# html_footer #########################
Packit 40b132
# local shell function, writes end of the html body
Packit 40b132
#######################################################################
Packit 40b132
write_qa_header_html()
Packit 40b132
{
Packit 40b132
echo 'Subject: QA Report ' $NSSVER $BUILDDATE '
Packit 40b132
From: sonmi@iplanet.com
Packit 40b132
Reply-To: sonmi@iplanet.com
Packit 40b132
Content-Type: text/html; charset=us-ascii
Packit 40b132
Packit 40b132
<html>
Packit 40b132
<head>
Packit 40b132
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Packit 40b132
   
Packit 40b132
etscape]">
Packit 40b132
</head>
Packit 40b132
<body>
Packit 40b132

Packit 40b132
 
Packit 40b132

 
Packit 40b132

Packit 40b132
Tinderbox
Packit 40b132
>
Packit 40b132
Tinderbox QA result
Packit 40b132
Mozilla Daily NSS QA result
Packit 40b132
 
Packit 40b132
Packit 40b132
 
Packit 40b132

 
Packit 40b132
<center>
Packit 40b132

Packit 40b132
<font size=+2>QA Results</font></center>
Packit 40b132
Packit 40b132
Packit 40b132
Packit 40b132
Packit 40b132
 <font size=+1>Build-OS and version</font>
Packit 40b132
<font size=+1>QA-OS</font>
Packit 40b132
<font size=+1>Systemname</font>
Packit 40b132
<font size=+1>P/F</font>
Packit 40b132
<font size=+1>result</font>
Packit 40b132
<font size=+1>output</font>
Packit 40b132
<font size=+1>errors</font>
Packit 40b132
<font size=+1>QA time / #</font>
Packit 40b132
Packit 40b132
'
Packit 40b132
}
Packit 40b132
Packit 40b132
################################# html_footer #########################
Packit 40b132
# local shell function, writes end of the html body
Packit 40b132
#######################################################################
Packit 40b132
html_footer()
Packit 40b132
{
Packit 40b132
  echo '</body>'
Packit 40b132
  echo '</html>'
Packit 40b132
}
Packit 40b132
Packit 40b132
################################# setQAsysvars #########################
Packit 40b132
# local shell function, sets system specific variables
Packit 40b132
########################################################################
Packit 40b132
setQAsysvars()
Packit 40b132
{
Packit 40b132
    if [ "$MACHINE" != "0" ]
Packit 40b132
    then
Packit 40b132
        MACHINE=`echo $MACHINE | sed -e 's/^bct.//g'`
Packit 40b132
        TESTDATE=`ls -ld $MACHINE | awk '{ print $6, $7, $8 }'`
Packit 40b132
        TESTNUMBER=`echo $MACHINE | sed -e 's/.*\.//'`
Packit 40b132
        SYSNAME=`echo $MACHINE | sed -e 's/\..*//'`
Packit 40b132
        Debug "SYSNAME= $SYSNAME"
Packit 40b132
Packit 40b132
        if [  "$O_TBX" = "ON" -o "$O_LOCAL" = "ON" ] ; then
Packit 40b132
            QA_SYS_OS=$QA_OS
Packit 40b132
        else
Packit 40b132
            QA_SYS_OS=`grep $SYSNAME $PLATFORMLIST |
Packit 40b132
                sed -e 's/
//' | \
Packit 40b132
                sort | uniq | sed  -e "s/$SYSNAME//" \
Packit 40b132
                -e "s/^_//" | sort | uniq`
Packit 40b132
        fi
Packit 40b132
        Debug "QA_SYS_OS= $QA_SYS_OS"
Packit 40b132
    fi
Packit 40b132
    BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' -e 's/_DBG/ Debug/' \
Packit 40b132
            -e 's/_OPT/ Optimized/'  -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \
Packit 40b132
            -e 's/_/ /'`
Packit 40b132
    Debug "BUILD_SYS=$BUILD_SYS"
Packit 40b132
    if [ -f "${RESULTDIR}/${MACHINE}/results.html" ] ; then
Packit 40b132
        RESULT="${HTML_PATH}/${MACHINE}/results.html"
Packit 40b132
    else
Packit 40b132
        RESULT="0"
Packit 40b132
    fi
Packit 40b132
    if [ -f "${RESULTDIR}/bct/${MACHINE}/results.html" ] ; then
Packit 40b132
        BCB_RESULT="${HTML_PATH}/bct/${MACHINE}/results.html"
Packit 40b132
    else
Packit 40b132
      BCB_RESULT="0"
Packit 40b132
    fi
Packit 40b132
Packit 40b132
    if [ -f "${RESULTDIR}/${MACHINE}/output.log" ] ; then
Packit 40b132
        LOG="${HTML_PATH}/${MACHINE}/output.log"
Packit 40b132
    else
Packit 40b132
        LOG="0"
Packit 40b132
    fi
Packit 40b132
    if [ -f "${RESULTDIR}/bct/${MACHINE}/output.log" ] ; then
Packit 40b132
        BCB_LOG="${HTML_PATH}/bct/${MACHINE}/output.log"
Packit 40b132
    else
Packit 40b132
        BCB_LOG="0"
Packit 40b132
    fi
Packit 40b132
}
Packit 40b132
Packit 40b132
################################# html_line() #########################
Packit 40b132
# local shell function, writes a line in the html table
Packit 40b132
########################################################################
Packit 40b132
html_line()
Packit 40b132
{
Packit 40b132
  echo ''
Packit 40b132
  echo ''$BUILD_SYS''
Packit 40b132
  echo ''
Packit 40b132
  if [ "$QA_SYS_OS" != "0" ] ; then
Packit 40b132
      echo ''$QA_SYS_OS''
Packit 40b132
  else
Packit 40b132
      echo ''
Packit 40b132
  fi
Packit 40b132
  echo ''
Packit 40b132
  if [ "$SYSNAME" != "0" ] ; then
Packit 40b132
      echo ''$SYSNAME''
Packit 40b132
  else
Packit 40b132
      echo ''
Packit 40b132
  fi
Packit 40b132
  #echo ''$SYSNAME $TESTNUMBER $TESTDATE''
Packit 40b132
  echo ''
Packit 40b132
  # hopefully we never run more different tests on a tinderbox build...
Packit 40b132
  # on win some shells can not handle exit codes greater then 52 (64???)
Packit 40b132
  # so for very early exits the codes are set 50-45, for failures later
Packit 40b132
  # in the process the higher the number, the more failures
Packit 40b132
  if [ "$O_TBX" = "ON" -a "$TBX_EXIT" -gt 45 ] ; then
Packit 40b132
      TBX_EXIT=0
Packit 40b132
  fi
Packit 40b132
  if [ "$1" = "failed" ]
Packit 40b132
  then
Packit 40b132
      TBX_EXIT=`expr $TBX_EXIT + 1`
Packit 40b132
      echo ''$HTML_ERRORMSG''
Packit 40b132
  elif [ "$1" = "passed" ]
Packit 40b132
  then
Packit 40b132
      echo ''$HTML_PASSEDMSG''
Packit 40b132
  elif [ "$1" = "incomplete" ]
Packit 40b132
  then
Packit 40b132
      TBX_EXIT=`expr $TBX_EXIT + 1`
Packit 40b132
      echo ''$HTML_INCOMPLETEMSG''
Packit 40b132
  else
Packit 40b132
      TBX_EXIT=`expr $TBX_EXIT + 1`
Packit 40b132
      echo ''$HTML_MISSINGMSG''    
Packit 40b132
  fi
Packit 40b132
  if [ "$CURRENT_TABLE" != "BC" ] ; then
Packit 40b132
      if [ "$RESULT" = "0" ] ; then
Packit 40b132
          echo ''$HTML_MISSINGMSG''
Packit 40b132
      else
Packit 40b132
          echo ' result '
Packit 40b132
      fi
Packit 40b132
      if [ "$LOG" = "0" ] ; then
Packit 40b132
          echo ''$HTML_MISSINGMSG''
Packit 40b132
      else
Packit 40b132
          echo ' log '
Packit 40b132
      fi
Packit 40b132
      if [ "$1" = "failed" ] ; then
Packit 40b132
          echo ' error '
Packit 40b132
      else
Packit 40b132
          echo ''
Packit 40b132
      fi
Packit 40b132
  else
Packit 40b132
     #<font size=+1>errors</font>
Packit 40b132
     #<font size=+1>P/F</font>
Packit 40b132
     #<font size=+1>P/F</font>
Packit 40b132
Packit 40b132
     #echo '<font size=+1>All Current</font>'
Packit 40b132
     #echo '<font size=+1>old dlls</font>'
Packit 40b132
     #echo '<font size=+1>old executables</font>'
Packit 40b132
      #if [ "$RESULT" != "0" -a "$LOG" != "0" ] ; then
Packit 40b132
          #echo 'result, log'
Packit 40b132
      #elif [ "$RESULT" = "0" -a "$LOG" != "0" ] ; then
Packit 40b132
          #echo 'log'
Packit 40b132
      #elif [ "$RESULT" != "0" -a "$LOG" = "0" ] ; then
Packit 40b132
          #echo 'result'
Packit 40b132
      #else
Packit 40b132
          #echo ''$HTML_MISSINGMSG''
Packit 40b132
      #fi
Packit 40b132
      #if [ "$BCB_RESULT" != "0" -a "$BCB_LOG" != "0" ] ; then
Packit 40b132
          #echo 'result,  log'
Packit 40b132
      #elif [ "$BCB_RESULT" = "0" -a "$BCB_LOG" != "0" ] ; then
Packit 40b132
          #echo 'log'
Packit 40b132
      #elif [ "$BCB_RESULT" != "0" -a "$BCB_LOG" = "0" ] ; then
Packit 40b132
          #echo 'result'
Packit 40b132
      #else
Packit 40b132
          #echo ''$HTML_MISSINGMSG''
Packit 40b132
      #fi
Packit 40b132
      if [ "$BCB_RESULT" = "0" ] ; then
Packit 40b132
          echo ''$HTML_MISSINGMSG''
Packit 40b132
      else
Packit 40b132
          echo ' result '
Packit 40b132
      fi
Packit 40b132
      if [ "$BCB_LOG" = "0" ] ; then
Packit 40b132
          echo ''$HTML_MISSINGMSG''
Packit 40b132
      else
Packit 40b132
          echo ' log '
Packit 40b132
      fi
Packit 40b132
  fi
Packit 40b132
  echo ''$TESTDATE $TESTNUMBER''
Packit 40b132
  echo ''
Packit 40b132
}
Packit 40b132
Packit 40b132
################################# qa_errorlist #########################
Packit 40b132
# local shell function, finds problems in the previously run QA
Packit 40b132
# linux:the gnu grep, on Linux can output 10 lines above and 3 lines below 
Packit 40b132
# the errormessage
Packit 40b132
########################################################################
Packit 40b132
qa_errorlist()
Packit 40b132
{
Packit 40b132
    grep "bgcolor=red" ${MACHINES_TO_CHECK}*/results.html | 
Packit 40b132
        sed -e 's/.results.html:/ /' -e 's/<[^>]*>/ /g'
Packit 40b132
    grep 'cache hits; .* cache misses, .* cache not reusable' \
Packit 40b132
        ${MACHINES_TO_CHECK}*/output.log | 
Packit 40b132
        grep strsclnt |
Packit 40b132
        grep -v '0 cache hits; 0 cache misses, 0 cache not reusable' | 
Packit 40b132
        grep -v ' cache hits; 1 cache misses, 0 cache not reusable'
Packit 40b132
    for logfile in ${MACHINES_TO_CHECK}*/output.log; do
Packit 40b132
        grep -vi "write to SSL socket" $logfile |
Packit 40b132
            grep -vi "HDX PR_Read returned error" |
Packit 40b132
            grep -vi "no error" |
Packit 40b132
            grep -vi "12285" |
Packit 40b132
            grep -i  $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP error 
Packit 40b132
            #grep -vi "5938" |  needed for -v option
Packit 40b132
            #grep -vi "HDX PR_Read hit EOF" | 
Packit 40b132
        grep  -vi "write to SSL socket" $logfile |
Packit 40b132
            grep -vi "peer cannot verify" |
Packit 40b132
            grep -vi "error" |
Packit 40b132
            grep -vi "fatal" |
Packit 40b132
            grep -vi "TCP Connection aborted" |
Packit 40b132
            grep -vi "TCP connection reset" |
Packit 40b132
            grep  $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP  -i failed
Packit 40b132
    done
Packit 40b132
    grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "segmentation violation" \
Packit 40b132
        ${MACHINES_TO_CHECK}*/output.log
Packit 40b132
    grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "memory fault" \
Packit 40b132
        ${MACHINES_TO_CHECK}*/output.log
Packit 40b132
    grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "bus error" \
Packit 40b132
        ${MACHINES_TO_CHECK}*/output.log
Packit 40b132
    grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "core dumped" \
Packit 40b132
        ${MACHINES_TO_CHECK}*/output.log
Packit 40b132
    grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP fatal \
Packit 40b132
        ${MACHINES_TO_CHECK}*/output.log
Packit 40b132
    grep -i  $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i\
Packit 40b132
        "PKCS12 decode not verified"   ${MACHINES_TO_CHECK}*/output.log
Packit 40b132
Packit 40b132
    if [ -n "${MACHINES_TO_CHECK}" ] ; then
Packit 40b132
        find ${MACHINES_TO_CHECK}* -name core -print 2>/dev/null |
Packit 40b132
            grep -v bct 
Packit 40b132
    else
Packit 40b132
        find . -name core -print 2>/dev/null |
Packit 40b132
            grep -v bct 
Packit 40b132
    fi
Packit 40b132
}
Packit 40b132
Packit 40b132
tbx_missing_platforms ()
Packit 40b132
{
Packit 40b132
    QA_MISSING="QA report missing"
Packit 40b132
    MACHINE="0"
Packit 40b132
Packit 40b132
    if [ "$QA_OS_STRING" = "WINNT4.0" ] ; then
Packit 40b132
        QA_OS_STRING="Windows-NT-4.0"
Packit 40b132
    fi
Packit 40b132
    for BUILDPLATFORM in `grep $QA_OS_STRING $TESTSCRIPTDIR/platformlist.tbx`
Packit 40b132
    do
Packit 40b132
        if [ "$BUILDPLATFORM" != "$QA_OS_STRING" ] ; then
Packit 40b132
            Debug  "BUILDPLATFORM = $BUILDPLATFORM QA_OS_STRING = $QA_OS_STRING"
Packit 40b132
            grep $BUILDPLATFORM ${MACHINES_TO_CHECK}*/results.html \
Packit 40b132
                >/dev/null || {
Packit 40b132
                setQAsysvars
Packit 40b132
                html_line missing >>$TMP_HTML_FILE
Packit 40b132
            }
Packit 40b132
        fi
Packit 40b132
    done
Packit 40b132
}
Packit 40b132
Packit 40b132
############################ platform _list ###########################
Packit 40b132
# local shell function, generate pass/fail information for each Platform
Packit 40b132
########################################################################
Packit 40b132
platformlist()
Packit 40b132
{
Packit 40b132
    grep Platform ${MACHINES_TO_CHECK}*/results.html | 
Packit 40b132
        sed -e 's/.results.html:

Platform: /---/' \

Packit 40b132
            -e 's/
//' >$TMPFILE
Packit 40b132
    # this is done a little complicated to avoid starting a subshell in 
Packit 40b132
    # a while read that gets the input from a pipeline, and variables set 
Packit 40b132
    #in or underneath this function get unset after done...
Packit 40b132
    for  MB in `cat $TMPFILE` ; do
Packit 40b132
        MACHINE=`echo $MB | sed -e "s/---.*//"`
Packit 40b132
        BUILDPLATFORM=`echo $MB | sed -e "s/.*---//"`
Packit 40b132
        grep "${MACHINE}[^0-9]" $ERRORLIST >/dev/null
Packit 40b132
        ret=$?
Packit 40b132
        setQAsysvars
Packit 40b132
        if [ $ret -eq 0 ]
Packit 40b132
        then
Packit 40b132
            echo "Failed $MACHINE $BUILDPLATFORM" >>$RFILE
Packit 40b132
            html_line failed >>$TMP_HTML_FILE
Packit 40b132
        else
Packit 40b132
            echo "Passed $MACHINE $BUILDPLATFORM" >>$RFILE
Packit 40b132
            html_line passed >>$TMP_HTML_FILE
Packit 40b132
        fi
Packit 40b132
    done 
Packit 40b132
}
Packit 40b132
Packit 40b132
############################ missing_platforms ###########################
Packit 40b132
# local shell function, finds out if we ran on all required platforms
Packit 40b132
########################################################################
Packit 40b132
missing_platforms()
Packit 40b132
{
Packit 40b132
    QA_MISSING="QA report missing"
Packit 40b132
    MACHINE="0"
Packit 40b132
    SYSNAME="0"
Packit 40b132
    QA_SYS_OS="0"
Packit 40b132
Packit 40b132
    for BUILDPLATFORM in `cat $TESTSCRIPTDIR/platformlist`
Packit 40b132
    do
Packit 40b132
        grep $BUILDPLATFORM $PLATFORMLIST > /dev/null || {
Packit 40b132
            setQAsysvars
Packit 40b132
            html_line missing >>$TMP_HTML_FILE
Packit 40b132
        }
Packit 40b132
    done
Packit 40b132
}
Packit 40b132
Packit 40b132
############################ incomplete_results ###########################
Packit 40b132
# local shell function, finds out if all qa runs were complete
Packit 40b132
########################################################################
Packit 40b132
incomplete_results ()
Packit 40b132
{
Packit 40b132
    
Packit 40b132
    for w in `ls ${MACHINES_TO_CHECK}*/results.html`
Packit 40b132
    do
Packit 40b132
      grep bgcolor=red $w || {
Packit 40b132
        PASSED_LINES=""
Packit 40b132
        PASSED_LINES=`grep bgcolor=lightGreen $w | wc -l`
Packit 40b132
        if [ -n "$PASSED_LINES" -a "$PASSED_LINES" -lt "$TOTAL_TESTS" ] ; then
Packit 40b132
            BUILDPLATFORM=`grep Platform $w | sed -e 's/

Platform:/ /' -e 's/
//'`

Packit 40b132
            MACHINE=`echo $w | sed -e "s/.results.html//"`
Packit 40b132
            #MACHINE=`echo $w | sed -e "s/\.[0-9]*.results.html//"`
Packit 40b132
            setQAsysvars
Packit 40b132
            html_line incomplete >>$TMP_HTML_FILE
Packit 40b132
        elif [ "$PASSED_LINES" -gt "$TOTAL_TESTS" ] ; then
Packit 40b132
            echo "WARNING - more tests than expected on $w ($PASSED_LINES)" >>$WARNINGLIST
Packit 40b132
	fi
Packit 40b132
      }
Packit 40b132
    done
Packit 40b132
}
Packit 40b132
Packit 40b132
qa_stat_table()
Packit 40b132
{
Packit 40b132
    echo ' '
Packit 40b132
    echo '
 '
Packit 40b132
    echo '<center>'
Packit 40b132
    echo '

'

Packit 40b132
    echo ''$1'</center>'
Packit 40b132
    echo ' '
Packit 40b132
    echo ''
Packit 40b132
    echo ''
Packit 40b132
}
Packit 40b132
Packit 40b132
############################### psaperf ########################
Packit 40b132
# local shell function, copies results of the daily performance test
Packit 40b132
# into a table in the QA report
Packit 40b132
########################################################################
Packit 40b132
rsaperf()
Packit 40b132
{
Packit 40b132
    grep RSAPERF */output.log | grep -v "_DBG" > $PERFLIST
Packit 40b132
    
Packit 40b132
    qa_stat_table "Performance list"
Packit 40b132
Packit 40b132
    echo '<font size=+1>Build-OS and version</font>'
Packit 40b132
    echo '<font size=+1>Systemname</font>'
Packit 40b132
    echo '<font size=+1># of iterations</font>'
Packit 40b132
    echo '<font size=+1>average for one op</font>'
Packit 40b132
    echo '<font size=+1>Total</font>'
Packit 40b132
    echo '<font size=+1>QA time / #</font>'
Packit 40b132
    echo ''
Packit 40b132
    cat $PERFLIST | 
Packit 40b132
    while read MACHINE BUILDPLATFORM no_iter t1 t2 total total_unit t3 \
Packit 40b132
               t4 t5 average average_unit
Packit 40b132
    do
Packit 40b132
        #caution subshell, variables local to this loop
Packit 40b132
        BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' \
Packit 40b132
            -e 's/_DBG/ Debug/' \
Packit 40b132
            -e 's/_OPT/ Optimized/'  -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \
Packit 40b132
            -e 's/_/ /'`
Packit 40b132
        TESTNUMBER=`echo $MACHINE | sed -e 's/[^\.]*\.//' -e 's/\/.*//'`
Packit 40b132
        MACHINE=`echo $MACHINE | sed -e 's/\..*//'`
Packit 40b132
        TESTDATE=`ls -ld ${MACHINE}.${TESTNUMBER} | awk '{ print $6, $7, $8 }'`
Packit 40b132
        echo ''
Packit 40b132
        echo ''$BUILD_SYS''
Packit 40b132
        echo ''
Packit 40b132
        echo ''$MACHINE''
Packit 40b132
        echo ''
Packit 40b132
        echo ''$no_iter''
Packit 40b132
        echo ''
Packit 40b132
        echo ''$average' '$average_unit''
Packit 40b132
        echo ''
Packit 40b132
        echo ''$total' '$total_unit''
Packit 40b132
        echo ''
Packit 40b132
        echo ''$TESTDATE $TESTNUMBER''
Packit 40b132
        echo ''
Packit 40b132
        echo ''
Packit 40b132
    done
Packit 40b132
    echo ''
Packit 40b132
}
Packit 40b132
Packit 40b132
############################### qa_stat_cleanup ########################
Packit 40b132
# local shell function, finishes html file, sets variables for global Exit
Packit 40b132
########################################################################
Packit 40b132
qa_stat_cleanup()
Packit 40b132
{
Packit 40b132
Packit 40b132
    html_footer >>$TMP_HTML_FILE
Packit 40b132
Packit 40b132
    O_DEBUG=OFF
Packit 40b132
Packit 40b132
    EARLY_EXIT=FALSE
Packit 40b132
    cp $TMP_HTML_FILE $HTML_FILE
Packit 40b132
    FILENAME=$HTML_FILE        #we might want to mail it...
Packit 40b132
    Exit
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
############################### bc_test ########################
Packit 40b132
# local shell function, evaluates the results of the backward u
Packit 40b132
# compatibility tests
Packit 40b132
########################################################################
Packit 40b132
bc_header()
Packit 40b132
{
Packit 40b132
CURRENT_TABLE="BC"   #so html_line can determine which fields to write
Packit 40b132
  
Packit 40b132
  qa_stat_table "Backward Compatibility Test"
Packit 40b132
  echo '<font size=+1>Build-OS and version</font>'
Packit 40b132
  echo '<font size=+1>QA-OS</font>'
Packit 40b132
  echo '<font size=+1>Systemname</font>'
Packit 40b132
  echo '<font size=+1>P/F</font>'
Packit 40b132
  #echo '<font size=+1>All Current</font>'
Packit 40b132
  #echo '<font size=+1>backward comp. test</font>'
Packit 40b132
  echo '<font size=+1>result</font>'
Packit 40b132
  echo '<font size=+1>output</font>'
Packit 40b132
  echo '<font size=+1>QA time / #</font>'
Packit 40b132
  echo ''
Packit 40b132
Packit 40b132
}
Packit 40b132
Packit 40b132
old_bc_test()
Packit 40b132
{
Packit 40b132
CURRENT_TABLE="BC"   #so html_line can determine which fields to write
Packit 40b132
  
Packit 40b132
  qa_stat_table "Backward Compatibility Test"
Packit 40b132
  echo '<font size=+1>Build-OS and version</font>'
Packit 40b132
  echo '<font size=+1>QA-OS</font>'
Packit 40b132
  echo '<font size=+1>Systemname</font>'
Packit 40b132
  echo '<font size=+1>P/F</font>'
Packit 40b132
  #echo '<font size=+1>All Current</font>'
Packit 40b132
  #echo '<font size=+1>backward comp. test</font>'
Packit 40b132
  echo '<font size=+1>result</font>'
Packit 40b132
  echo '<font size=+1>output</font>'
Packit 40b132
  echo '<font size=+1>QA time / #</font>'
Packit 40b132
  echo ''
Packit 40b132
Packit 40b132
  for w in `ls */results.html`
Packit 40b132
  do
Packit 40b132
      TMP_RESULT="`dirname $w`/results.tmp"
Packit 40b132
      TMP_BC_RESULT="`dirname bct/$w`/results.tmp"
Packit 40b132
      rm $TMP_RESULT $TMP_BC_RESULT 2>/dev/null
Packit 40b132
      cat $w | sed -e 's/<[^>]*>//g'  -e 's/ /_/g' \
Packit 40b132
                   -e 's/signtool_-[vw]/signtool_-vw/' |
Packit 40b132
               grep '_[PF]a[si][sl]ed' >$TMP_RESULT
Packit 40b132
      cat bct/$w   | sed -e 's/<[^>]*>//g'  -e 's/ /_/g' \
Packit 40b132
                         -e 's/signtool_-[vw]/signtool_-vw/' |
Packit 40b132
                     grep '_[PF]a[si][sl]ed' >$TMP_BC_RESULT
Packit 40b132
      diff $TMP_RESULT $TMP_BC_RESULT    2>>$BCMISSINGLIST |
Packit 40b132
           grep -v "Create_objsign_cert_.signtool_-G.*Passed" |
Packit 40b132
           grep -v "porting_Alice.s_email_cert" |
Packit 40b132
           grep -v "^[0-9,cad]*$" | grep -v "^---$" | grep -v "^---.$" |
Packit 40b132
           grep -v "Can.t_run_pk12util_tests_for_NSS_3.2"  >/dev/null && (
Packit 40b132
                echo "$w differs" >> $BCMISSINGLIST
Packit 40b132
                echo "========================================="
Packit 40b132
                echo "diff $w bct/$w"
Packit 40b132
                echo "========================================="
Packit 40b132
                diff $TMP_RESULT $TMP_BC_RESULT 2>&1 |
Packit 40b132
                     grep -v "Create_objsign_cert_.signtool_-G.*Passed" |
Packit 40b132
                     grep -v "porting_Alice.s_email_cert" |
Packit 40b132
                     grep -v "Can.t_run_pk12util_tests_for_NSS_3.2"  
Packit 40b132
           )  2>&1 >>$BCERRORLIST
Packit 40b132
Packit 40b132
      #diff -b $w bct/$w  2>>$BCMISSINGLIST | 
Packit 40b132
           #grep -v "Create objsign cert .signtool -G.*Passed" |
Packit 40b132
           #grep -v "Listing signed files in jar .signtool -v.*Passed" |
Packit 40b132
           #grep -v "Listing signed files in jar .signtool -w.*Passed" |
Packit 40b132
           #grep -v "backward compatibility" |
Packit 40b132
           #grep -v "Can.t run pk12util tests for NSS 3.2" |
Packit 40b132
           #grep -v "porting Alice.s email cert " |
Packit 40b132
           #grep -v "^---$" | grep -v "^[<> ] $" | 
Packit 40b132
           #grep -v "^---.$" | grep -v "^[<> ] .$" | 
Packit 40b132
           #grep -v '< </BODY></HTML>' |
Packit 40b132
           #grep -v "^[0-9,cad]*$" 2>>$BCMISSINGLIST >/dev/null &&  (
Packit 40b132
                #echo "$w differs" >> $BCMISSINGLIST
Packit 40b132
                #echo "========================================="
Packit 40b132
                #echo "diff $w bct/$w"
Packit 40b132
                #echo "========================================="
Packit 40b132
                #diff -b $w bct/$w 2>&1 | 
Packit 40b132
                     #grep -v "Listing signed files in jar .signtool -v.*Passed" |
Packit 40b132
                     #grep -v "Listing signed files in jar .signtool -w.*Passed" |
Packit 40b132
                     #grep -v "backward compatibility" |
Packit 40b132
                     #grep -v "Can.t run pk12util tests for NSS 3.2" |
Packit 40b132
                     #grep -v "porting Alice.s email cert " |
Packit 40b132
                     #grep -v "^---$" | grep -v "^[<> ] $" | 
Packit 40b132
                     #grep -v "^---.$" | grep -v "^[<> ] .$" | 
Packit 40b132
                     #grep -v '< </BODY></HTML>' |
Packit 40b132
                     #grep -v "^[0-9,cad]*$" \
Packit 40b132
           #)  2>&1 >>$BCERRORLIST
Packit 40b132
      rm $TMP_RESULT $TMP_BC_RESULT 2>/dev/null
Packit 40b132
  done
Packit 40b132
  rm $ERRORLIST
Packit 40b132
  cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \
Packit 40b132
                    -e "s/.results.html.*/\/results.html/" | 
Packit 40b132
                sort -u > $ERRORLIST
Packit 40b132
Packit 40b132
  platformlist  
Packit 40b132
  echo '' >>$TMP_HTML_FILE
Packit 40b132
Packit 40b132
  head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/
/"
Packit 40b132
}
Packit 40b132
Packit 40b132
bc_test()
Packit 40b132
{
Packit 40b132
CURRENT_TABLE="BC"   #so html_line can determine which fields to write
Packit 40b132
  
Packit 40b132
  qa_stat_table "Backward Compatibility Test"
Packit 40b132
  echo '<font size=+1>Build-OS and version</font>'
Packit 40b132
  echo '<font size=+1>QA-OS</font>'
Packit 40b132
  echo '<font size=+1>Systemname</font>'
Packit 40b132
  echo '<font size=+1>P/F</font>'
Packit 40b132
  #echo '<font size=+1>All Current</font>'
Packit 40b132
  #echo '<font size=+1>backward comp. test</font>'
Packit 40b132
  echo '<font size=+1>result</font>'
Packit 40b132
  echo '<font size=+1>output</font>'
Packit 40b132
  echo '<font size=+1>QA time / #</font>'
Packit 40b132
  echo ''
Packit 40b132
Packit 40b132
set -x
Packit 40b132
  for w in `ls */results.html`
Packit 40b132
  do
Packit 40b132
      BCT_DIR=`dirname "bct/$w"`
Packit 40b132
      BCT_RESULT="bct/$w"
Packit 40b132
      BCT_LOG="$BCT_DIR/output.log"
Packit 40b132
      grep "bgcolor=red" $BCT_RESULT | 
Packit 40b132
           sed -e 's/.results.html:/ /' -e 's/<[^>]*>/ /g'
Packit 40b132
      grep 'cache hits; .* cache misses, .* cache not reusable' \
Packit 40b132
        $BCT_LOG |
Packit 40b132
        grep -v selfserv |
Packit 40b132
        grep -v '0 cache hits; 1 cache misses, 0 cache not reusable' |
Packit 40b132
        grep -v '0 cache hits; 0 cache misses, 0 cache not reusable' |
Packit 40b132
        grep -v ' cache hits; 1 cache misses, 0 cache not reusable'
Packit 40b132
      grep -vi "write to SSL socket" $BCT_LOG |
Packit 40b132
        grep -vi "HDX PR_Read returned error" |
Packit 40b132
        grep -vi "no error" |
Packit 40b132
        grep -vi "12285" |
Packit 40b132
        grep -i  $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP error
Packit 40b132
      grep  -vi "write to SSL socket" $BCT_LOG |
Packit 40b132
        grep -vi "peer cannot verify" |
Packit 40b132
        grep -vi "TCP Connection aborted" |
Packit 40b132
        grep -vi "error" |
Packit 40b132
        grep -vi "fatal" |
Packit 40b132
        grep -vi "TCP connection reset" |
Packit 40b132
        grep  $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP  -i failed $BCT_LOG
Packit 40b132
      grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "segmentation violation"  $BCT_LOG
Packit 40b132
      grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "memory fault" $BCT_LOG
Packit 40b132
      grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "bus error" $BCT_LOG
Packit 40b132
      grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "core dumped" $BCT_LOG
Packit 40b132
      grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP fatal  $BCT_LOG
Packit 40b132
      grep -i  $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i "PKCS12 decode not verified"   $BCT_LOG
Packit 40b132
      find ${BTC_DIR} -name core -print
Packit 40b132
Packit 40b132
  done 2>&1 >>$BCERRORLIST
Packit 40b132
  rm $ERRORLIST
Packit 40b132
  cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \
Packit 40b132
                    -e "s/.results.html.*/\/results.html/" | 
Packit 40b132
                sort -u > $ERRORLIST
Packit 40b132
Packit 40b132
  platformlist  
Packit 40b132
  echo '' >>$TMP_HTML_FILE
Packit 40b132
Packit 40b132
  head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/
/"
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
############################### bc_test ########################
Packit 40b132
# local shell function, evaluates the results of the backward u
Packit 40b132
# compatibility tests
Packit 40b132
# move the whole function to old to tests a new solution
Packit 40b132
########################################################################
Packit 40b132
bc_test_old()
Packit 40b132
{
Packit 40b132
CURRENT_TABLE="BC"   #so html_line can determine which fields to write
Packit 40b132
  
Packit 40b132
  qa_stat_table "Backward Compatibility Test"
Packit 40b132
  echo '<font size=+1>Build-OS and version</font>'
Packit 40b132
  echo '<font size=+1>QA-OS</font>'
Packit 40b132
  echo '<font size=+1>Systemname</font>'
Packit 40b132
  echo '<font size=+1>P/F</font>'
Packit 40b132
  #echo '<font size=+1>All Current</font>'
Packit 40b132
  #echo '<font size=+1>backward comp. test</font>'
Packit 40b132
  echo '<font size=+1>result</font>'
Packit 40b132
  echo '<font size=+1>output</font>'
Packit 40b132
  echo '<font size=+1>QA time / #</font>'
Packit 40b132
  echo ''
Packit 40b132
Packit 40b132
  for w in `ls */results.html`
Packit 40b132
  do
Packit 40b132
      diff -b $w bct/$w  2>>$BCMISSINGLIST | 
Packit 40b132
           grep -v "Create objsign cert .signtool -G.*Passed" |
Packit 40b132
           grep -v "Listing signed files in jar .signtool -v.*Passed" |
Packit 40b132
           grep -v "Listing signed files in jar .signtool -w.*Passed" |
Packit 40b132
           grep -v "backward compatibility" |
Packit 40b132
           grep -v "Can.t run pk12util tests for NSS 3.2" |
Packit 40b132
           grep -v "porting Alice.s email cert " |
Packit 40b132
           grep -v "^---$" | grep -v "^[<> ] $" | 
Packit 40b132
           grep -v "^---.$" | grep -v "^[<> ] .$" | 
Packit 40b132
           grep -v '< </BODY></HTML>' |
Packit 40b132
           grep -v "^[0-9,cad]*$" 2>>$BCMISSINGLIST >/dev/null &&  (
Packit 40b132
                echo "$w differs" >> $BCMISSINGLIST
Packit 40b132
                echo "========================================="
Packit 40b132
                echo "diff $w bct/$w"
Packit 40b132
                echo "========================================="
Packit 40b132
                diff -b $w bct/$w 2>&1 | 
Packit 40b132
                     grep -v "Listing signed files in jar .signtool -v.*Passed" |
Packit 40b132
                     grep -v "Listing signed files in jar .signtool -w.*Passed" |
Packit 40b132
                     grep -v "backward compatibility" |
Packit 40b132
                     grep -v "Can.t run pk12util tests for NSS 3.2" |
Packit 40b132
                     grep -v "porting Alice.s email cert " |
Packit 40b132
                     grep -v "^---$" | grep -v "^[<> ] $" | 
Packit 40b132
                     grep -v "^---.$" | grep -v "^[<> ] .$" | 
Packit 40b132
                     grep -v '< </BODY></HTML>' |
Packit 40b132
                     grep -v "^[0-9,cad]*$" \
Packit 40b132
           )  2>&1 >>$BCERRORLIST
Packit 40b132
  done
Packit 40b132
  rm $ERRORLIST
Packit 40b132
  cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \
Packit 40b132
                    -e "s/.results.html.*/\/results.html/" | 
Packit 40b132
                sort -u > $ERRORLIST
Packit 40b132
Packit 40b132
  platformlist  
Packit 40b132
  echo '' >>$TMP_HTML_FILE
Packit 40b132
Packit 40b132
  head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/
/"
Packit 40b132
Packit 40b132
}
Packit 40b132
Packit 40b132
############################### tbx_main ########################
Packit 40b132
# local shell function, tinderbox variation of the qa status script
Packit 40b132
########################################################################
Packit 40b132
tbx_main()
Packit 40b132
{
Packit 40b132
    TBX_EXIT=47
Packit 40b132
    qa_stat_get_sysinfo # find out the OS we are running and all required tests
Packit 40b132
                        # on this OS
Packit 40b132
    
Packit 40b132
    MACHINES_TO_CHECK=$HOST  #`uname -n` only search the local tests for errors
Packit 40b132
    qa_errorlist > $ERRORLIST        # 
Packit 40b132
    platformlist 
Packit 40b132
    #tbx_missing_platforms  #temp. taken out until we find a better way to
Packit 40b132
    #determine if all necessary QA ran - right now we run different 
Packit 40b132
    #tinderboxes on one machine
Packit 40b132
    incomplete_results 
Packit 40b132
    echo '' >>$TMP_HTML_FILE
Packit 40b132
    echo '' >> $TMP_HTML_FILE
Packit 40b132
    cat $ERRORLIST  | sed -e "s/^/
/" >>$TMP_HTML_FILE
Packit 40b132
Packit 40b132
}
Packit 40b132
Packit 40b132
############################### qa_stat_main ########################
Packit 40b132
# local shell function, main flow of the qa status script
Packit 40b132
########################################################################
Packit 40b132
qa_stat_main()
Packit 40b132
{
Packit 40b132
    find_qa_systems 2>/dev/null
Packit 40b132
    MACHINES_TO_CHECK=""   # check all founf qa runs
Packit 40b132
    qa_errorlist > $ERRORLIST
Packit 40b132
    platformlist 
Packit 40b132
    missing_platforms 
Packit 40b132
    incomplete_results 
Packit 40b132
    echo '' >>$TMP_HTML_FILE
Packit 40b132
    echo '' >> $TMP_HTML_FILE
Packit 40b132
    cat $ERRORLIST  | sed -e "s/^/
/" >>$TMP_HTML_FILE
Packit 40b132
    cat $WARNINGLIST 2>/dev/null | sed -e "s/^/
/" >>$TMP_HTML_FILE 2>/dev/null
Packit 40b132
    rsaperf >>$TMP_HTML_FILE
Packit 40b132
    bc_header >>$TMP_HTML_FILE
Packit 40b132
    MACHINES_TO_CHECK="bct/"
Packit 40b132
    TOTAL_TESTS=$BCT_TOTAL_TESTS
Packit 40b132
    BEFORE_CONTEXT_GREP="" #WORKAROUND - errors in one outputlog within the first 
Packit 40b132
    AFTER_CONTEXT_GREP=""  # or last lines will show up in the next/previos file
Packit 40b132
    qa_errorlist > $ERRORLIST
Packit 40b132
    platformlist 
Packit 40b132
    missing_platforms 
Packit 40b132
    incomplete_results 
Packit 40b132
    echo '' >>$TMP_HTML_FILE
Packit 40b132
    echo '' >> $TMP_HTML_FILE
Packit 40b132
    cat $ERRORLIST  | sed -e "s/^/
/" >>$TMP_HTML_FILE
Packit 40b132
    cat $WARNINGLIST 2>/dev/null | sed -e "s/^/
/" >>$TMP_HTML_FILE 2>/dev/null
Packit 40b132
    #bc_test >>$TMP_HTML_FILE
Packit 40b132
}
Packit 40b132
Packit 40b132
CURRENT_TABLE="Standard"
Packit 40b132
qa_stat_init
Packit 40b132
Packit 40b132
if [  "$O_TBX" = "ON" -o "$O_LOCAL" = "ON" ] ; then
Packit 40b132
    tbx_main
Packit 40b132
else
Packit 40b132
    qa_stat_main
Packit 40b132
fi
Packit 40b132
Packit 40b132
qa_stat_cleanup