| #!/bin/bash |
| |
| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to you under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| TOOLDIR="${DERBYDIR}/${BRANCH_DIR}/tools/testing/reporting/scripts" |
| . ${TOOLDIR}/env |
| |
| SHOWDETAILS="" |
| PRESENTATION="Limited" |
| if [ "$1" = "details" ] |
| then |
| # Show details |
| SHOWDETAILS="ShowDetails" |
| PRESENTATION="Full" |
| fi |
| |
| # We have one catalog per platform |
| if [ ! -e ${TESTLOGDIR} ] |
| then |
| echo "${TESTLOGDIR} does not exist" |
| exit |
| fi |
| |
| # Get the list of testsuite we are running: |
| TESTLISTFILE="${DERBYDIR}/testing/showtestlist" |
| SUITES=`gawk '{ print $1 }' ${TESTLISTFILE} | grep -v "^#"` |
| |
| # Get the set of platforms |
| cd ${TESTLOGDIR} |
| PLATFORMS=`ls` |
| |
| # Get the list of revisions |
| # 12 latest. |
| REVISIONSFILE="${REVISIONLIST}" |
| REVISIONS=`head -12 ${REVISIONSFILE} | gawk '{ print $1 }' | grep -v "^#"` |
| |
| # Main loop for collecting suite status: |
| for SUITE in ${SUITES} |
| do |
| if [ "${SUITE}" = "exit" ] |
| then |
| echo "Exit: found ${SUITE}" |
| exit |
| fi |
| |
| echo "${SUITE}" |
| |
| HISTORY="${DERBYDIR}/testing/${PRESENTATION}/${SUITE}_history.html" |
| mkdir -p ${DERBYDIR}/testing/${PRESENTATION} |
| chmod o+rx ${DERBYDIR}/testing/${PRESENTATION} |
| |
| # Build table header: |
| echo "<TABLE border="1">" > ${HISTORY} |
| echo "<TR>" >> ${HISTORY} |
| echo "<TD> <font size=\"+1\"><b> ${SUITE} </b></font></TD>" >> ${HISTORY} # NB This is the only variation in header.... |
| no=0 |
| for PLATFORM in ${PLATFORMS} |
| do |
| if [ -e ${PLATFORM}/externallyVisible ] || [ "${SHOWDETAILS}" = "ShowDetails" ] |
| then |
| BGCOLOR="bgcolor=\"${COLOR0}\"" |
| # expr $no % 2 |
| if [ `expr $no % 2` = 0 ] |
| then |
| BGCOLOR="bgcolor=\"${COLOR1}\"" |
| fi |
| no=`expr $no + 1` |
| #DEBUG echo "$no: $BGCOLOR" |
| |
| #DEBUG echo "${PLATFORM}" |
| PLATF=`echo "${PLATFORM}" | gawk -F_ '{ print $1"<BR>"$2"<BR>"$3 }'` |
| #DEBUG echo "${PLATF}" |
| |
| echo "<TD ${BGCOLOR} colspan=\"4\"> <I>${PLATF}</I>" >> ${HISTORY} |
| fi |
| done # PLATFORMS |
| |
| echo "</TR>" >> ${HISTORY} |
| echo "<TR>" >> ${HISTORY} |
| echo "<TD> </TD>" >> ${HISTORY} |
| for PLATFORM in ${PLATFORMS} |
| do |
| if [ -e ${PLATFORM}/externallyVisible ] || [ "${SHOWDETAILS}" = "ShowDetails" ] |
| then |
| for HEAD in Num OK Fail Skip |
| do |
| echo -n "<TD align=\"center\"> <font size=\"-1\"><i>${HEAD}</i></font></TD>" >> ${HISTORY} |
| done |
| fi |
| done # PLATFORMS |
| echo "</TR>" >> ${HISTORY} |
| # Done building header. |
| |
| |
| for REVISION in ${REVISIONS} |
| do |
| TS=`cat ${UPDATELOGDIR}/${REVISION}/UpdateTime` |
| echo " ${REVISION}" |
| |
| BGCOLOR="bgcolor=\"${COLOR0}\"" |
| # expr $no % 2 |
| if [ `expr $no % 2` = 0 ] |
| then |
| BGCOLOR="bgcolor=\"${COLOR1}\"" |
| fi |
| no=`expr $no + 1` |
| #DEBUG echo "$no: $BGCOLOR" |
| |
| echo "<TR ${BGCOLOR} rowspan=\"2\"><TD><A HREF=\"testSummary-${REVISION}.html\"><i>${REVISION}</A><BR><font size=\"-1\">${TS}</font></i></TD>" >> ${HISTORY} |
| |
| for PLATFORM in ${PLATFORMS} |
| do |
| if [ -e ${PLATFORM}/externallyVisible ] || [ "${SHOWDETAILS}" = "ShowDetails" ] |
| then |
| echo " ${PLATFORM}" |
| |
| # 2: Number, 3: OK, 4: Failed, 5: Skipped |
| RES=`grep "^${SUITE} " ${PLATFORM}/${REVISION}.csv` |
| #DEBUG echo "${SUITE}: ${RES}" |
| if [ "${RES}" = "" ] |
| then |
| RES="<TD ALIGN=\"RIGHT\">"$NA"</TD><TD ALIGN=\"RIGHT\">"$NA"</TD><TD ALIGN=\"RIGHT\">"$NA"</TD><TD ALIGN=\"RIGHT\">"$NA"</TD>" |
| else |
| NUMBER=`echo ${RES} | gawk '{ print $2 }'` |
| OK=`echo ${RES} | gawk '{ print $3 }'` |
| FAILED=`echo ${RES} | gawk '{ print $4 }'` |
| SKIPPED=`echo ${RES} | gawk '{ print $5 }'` |
| CFB="" |
| CSB="" |
| if [ "${FAILED}" != "0" ] |
| then |
| # REV=`head -1 ${PLATFORM}/${REVISION}.csv | gawk '{ print $7 }'` |
| FAILED="<A HREF=\"../testlog/${PLATFORM}/${REVISION}-${SUITE}_diff.txt\">${FAILED}</A>" |
| CFB="bgcolor=\"red\"" |
| fi |
| if [ "${SKIPPED}" != "0" ] |
| then |
| # CSB="bgcolor=\"yellow\"" |
| CSB="bgcolor=\"#FFFFA0\"" |
| fi |
| RES="<TD ALIGN=\"RIGHT\">${NUMBER}</TD><TD ALIGN=\"RIGHT\">${OK}</TD><TD ${CFB} ALIGN=\"RIGHT\">${FAILED}</TD><TD ${CSB} ALIGN=\"RIGHT\">${SKIPPED}</TD>" |
| fi |
| # DEBUG echo "${RES}" |
| echo -n "${RES}" >> ${HISTORY} |
| |
| fi |
| done # PLATFORMS Number, OK, Failed, Skipped |
| echo "</TR>" >> ${HISTORY} |
| |
| # if [ "${SHOWDETAILS}" = "ShowDetails" ] |
| # then |
| echo "<TR ${BGCOLOR}>" >> ${HISTORY} |
| echo "<TD ALIGN=\"RIGHT\"> <font size=\"-1\">Duration:</font></TD>" >> ${HISTORY} |
| for PLATFORM in ${PLATFORMS} # Duration |
| do |
| if [ -e ${PLATFORM}/externallyVisible ] || [ "${SHOWDETAILS}" = "ShowDetails" ] |
| then |
| |
| echo " ${PLATFORM}" |
| TIME=`grep "^${SUITE} " ${PLATFORM}/${REVISION}.csv | gawk '{ print $6 }'` |
| #DEBUG echo "${SUITE}: ${RES}" |
| if [ "${TIME}" = "" ] |
| then |
| RES="<TD colspan=\"4\" ALIGN=\"CENTER\">"$NA"</TD>" |
| echo -n "${RES}" >> ${HISTORY} |
| else |
| SECONDS=`${TOOLDIR}/toSeconds ${TIME}` |
| # echo ${SECONDS} |
| BASESECONDS=`grep "^${SUITE} " ${PLATFORM}/baseline.csv | gawk '{ print $3 }'` |
| # echo ${BASESECONDS} |
| PERCENT=`${TOOLDIR}/calcPercent ${SECONDS} ${BASESECONDS}` |
| # echo ${PERCENT} |
| # RES="<TD colspan=\"4\" ALIGN=\"CENTER\">"${TIME} ${PERCENT}"</TD>" |
| # echo ${RES} |
| if [ "${SHOWDETAILS}" = "ShowDetails" ] |
| then |
| echo -n "<TD colspan=\"2\" ALIGN=\"CENTER\">" >> ${HISTORY} |
| echo -n " ${TIME} " >> ${HISTORY} |
| echo -n "</TD>" >> ${HISTORY} |
| echo -n "<TD colspan=\"2\" ALIGN=\"CENTER\">" >> ${HISTORY} |
| echo -n " ${PERCENT}% " >> ${HISTORY} |
| echo -n "</TD>" >> ${HISTORY} |
| else |
| echo -n "<TD colspan=\"4\" ALIGN=\"CENTER\">" >> ${HISTORY} |
| echo -n " ${PERCENT}% " >> ${HISTORY} |
| echo -n "</TD>" >> ${HISTORY} |
| fi |
| fi |
| fi |
| done # PLATFORMS Duration |
| echo "</TR>" >> ${HISTORY} |
| # fi # SHOWDETAILS |
| |
| done # REVISIONS |
| |
| # Show baseline info for each platform: |
| echo "<TR ${BGCOLOR}>" >> ${HISTORY} |
| echo "<TD ALIGN=\"RIGHT\"> <font size=\"-1\">Baseline for duration <br>percent is rev.:</font></TD>" >> ${HISTORY} |
| no=0 |
| for PLATFORM in ${PLATFORMS} |
| do |
| if [ -e ${PLATFORM}/externallyVisible ] || [ "${SHOWDETAILS}" = "ShowDetails" ] |
| then |
| BGCOLOR="bgcolor=\"${COLOR0}\"" |
| # expr $no % 2 |
| if [ `expr $no % 2` = 0 ] |
| then |
| BGCOLOR="bgcolor=\"${COLOR1}\"" |
| fi |
| no=`expr $no + 1` |
| BASELINE=`head -1 ${PLATFORM}/baseline.csv | gawk '{ print $2 }'` |
| TS=`cat ${UPDATELOGDIR}/${BASELINE}/UpdateTime` |
| PLATF=`echo "${PLATFORM}" | sed -e 's/CYGWIN_/CYGWIN /' | gawk -F_ '{ print $1"<BR>"$2 }' | sed -e 's/CYGWIN /CYGWIN_/'` |
| echo "<TD ${BGCOLOR} colspan=\"4\">${BASELINE}<BR> ${TS}<BR> <I>(${PLATF})</I></TD>" >> ${HISTORY} |
| fi |
| done # PLATFORMS |
| echo "</TR>" >> ${HISTORY} |
| echo "</TABLE>" >> ${HISTORY} |
| |
| |
| echo "<HR>" >> ${HISTORY} |
| echo "<div style=\"text-align: right;\">" >> ${HISTORY} |
| echo "<font size=\"-1\"><i>" >> ${HISTORY} |
| date +%Y-%m-%d" "%H:%M:%S" "%Z >> ${HISTORY} |
| echo "</i></font>" >> ${HISTORY} |
| echo "</div>" >> ${HISTORY} |
| chmod go+r ${HISTORY} |
| |
| if [ "${SHOWDETAILS}" != "ShowDetails" ] |
| then |
| DTIPUB="${PUBLISHDIR}/${PRESENTATION}/${SUITE}_history.html" |
| SRC="${HISTORY}" |
| DST="${DTIPUB}" |
| echo "**** OBS! ${SCPUT} ${SRC} ${PUBLISHUSER}@${PUBLISHSITE}:${DST}" |
| ${SCPUT} ${SRC} ${PUBLISHUSER}@${PUBLISHSITE}:${DST} |
| fi |
| |
| done # SUITES |
| |