blob: f4a6298001c7dbdadb9eb719485c165100496457 [file]
#!/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"
RSPAN=4
if [ "$1" = "details" ]
then
# Show details
SHOWDETAILS="ShowDetails"
PRESENTATION="Full"
RSPAN=5
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/testlist"
SUITES=`gawk '{ print $1 }' ${TESTLISTFILE} | grep -v "^#"`
# Get the set of platforms
cd ${TESTLOGDIR}
PLATFORMS=`ls`
# Get the list of revisions
REVISIONSFILE="${DERBYDIR}/testing/revisionlist"
# This is extremely timeconsuming:
# Use only 12 latest revisions
REVISIONS=`head -12 ${REVISIONSFILE} | gawk '{ print $1 }' | grep -v "^#"`
for PLATFORM in ${PLATFORMS}
do
if [ -e ${PLATFORM}/externallyVisible ] || [ "${SHOWDETAILS}" = "ShowDetails" ]
then
echo ${PLATFORM}
# Create one file per platform
HISTORY="${DERBYDIR}/testing/${PRESENTATION}/${PLATFORM}_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> ${PLATFORM} </b></font></TD><TD></TD>" >> ${HISTORY}
chmod go+r ${HISTORY}
no=0
for REVISION in ${REVISIONS}
do
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 "${REVISION}"
TS=`cat ${UPDATELOGDIR}/${REVISION}/UpdateTime`
echo "<TD ${BGCOLOR}><I>Rev.:</I><BR><font size=\"+1\">${REVISION}</font><BR>${TS}" >> ${HISTORY}
done
echo "</TR>" >> ${HISTORY}
# Done building header.
for SUITE in ${SUITES}
do
echo " ${SUITE}"
# Info per SUITE in rows
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}><TD rowspan=\"${RSPAN}\"><i><A HREF=\"${SUITE}_history.html\">${SUITE}</A></i></TD>" >> ${HISTORY}
echo "<font size=\"-1\">" >> ${HISTORY}
echo "<TD ALIGN=\"RIGHT\">"\#:"</TD>" >> ${HISTORY}
echo -n " N: "
for REVISION in ${REVISIONS}
do
echo -n " ${REVISION}"
# Info per REVISION in columns: Number of tests
# 2: Number, 3: OK, 4: Failed, 5: Skipped
RES=`grep "^${SUITE} " ${PLATFORM}/${REVISION}.csv`
if [ "${RES}" = "" ]
then
RES="<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 }'`
RES="<TD ALIGN=\"RIGHT\">${NUMBER}</TD>"
fi
# DEBUG echo "${RES}"
echo -n "${RES}" >> ${HISTORY}
done # REVISIONS Number
echo "</TR>" >> ${HISTORY}
echo "<TR ${BGCOLOR}>" >> ${HISTORY}
echo "<TD ALIGN=\"RIGHT\">"OK:"</TD>" >> ${HISTORY}
echo ""; echo -n " OK: "
for REVISION in ${REVISIONS}
do
echo -n " ${REVISION}"
# Info per REVISION in columns: Number of tests
# 2: Number, 3: OK, 4: Failed, 5: Skipped
RES=`grep "^${SUITE} " ${PLATFORM}/${REVISION}.csv`
if [ "${RES}" = "" ]
then
RES="<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 }'`
RES="<TD ALIGN=\"RIGHT\">${OK}</TD>"
fi
# DEBUG echo "${RES}"
echo -n "${RES}" >> ${HISTORY}
done # REVISIONS OK
echo "</TR>" >> ${HISTORY}
echo "<TR ${BGCOLOR}>" >> ${HISTORY}
echo "<TD ALIGN=\"RIGHT\">"Failed:"</TD>" >> ${HISTORY}
echo ""; echo -n " Failed: "
for REVISION in ${REVISIONS}
do
echo -n " ${REVISION}"
# Info per REVISION in columns: Number of tests
# 2: Number, 3: OK, 4: Failed, 5: Skipped
RES=`grep "^${SUITE} " ${PLATFORM}/${REVISION}.csv`
if [ "${RES}" = "" ]
then
RES="<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="${BGCOLOR}"
if [ "${FAILED}" != "0" ]
then
FAILED="<A HREF=\"../testlog/${PLATFORM}/${REVISION}-${SUITE}_diff.txt\">${FAILED}</A>"
CFB="bgcolor=\"red\""
fi
RES="<TD ${CFB} ALIGN=\"RIGHT\">${FAILED}</TD>"
fi
# DEBUG echo "${RES}"
echo -n "${RES}" >> ${HISTORY}
done # REVISIONS Failed
echo "</TR>" >> ${HISTORY}
echo "<TR ${BGCOLOR}>" >> ${HISTORY}
echo "<TD ALIGN=\"RIGHT\">"Skip:"</TD>" >> ${HISTORY}
echo ""; echo -n " Skipped:"
for REVISION in ${REVISIONS}
do
echo -n " ${REVISION}"
# Info per REVISION in columns: Number of tests
# 2: Number, 3: OK, 4: Failed, 5: Skipped
RES=`grep "^${SUITE} " ${PLATFORM}/${REVISION}.csv`
CSB=""
if [ "${RES}" = "" ]
then
RES="<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 }'`
if [ "${SKIPPED}" != "0" ]
then
# CSB="bgcolor=\"yellow\""
CSB="bgcolor=\"#FFFFA0\""
fi
RES="<TD ${CSB} ALIGN=\"RIGHT\">${SKIPPED}</TD>"
fi
# DEBUG echo "${RES}"
echo -n "${RES}" >> ${HISTORY}
done # REVISIONS Skipped
echo "</TR>" >> ${HISTORY}
if [ "${SHOWDETAILS}" = "ShowDetails" ]
then
echo "<TR ${BGCOLOR}>" >> ${HISTORY}
echo "<TD ALIGN=\"RIGHT\"> <font size=\"-1\">Duration:</font></TD>" >> ${HISTORY}
echo ""; echo -n " Duratio:"
for REVISION in ${REVISIONS} # Duration
do
echo -n " ${REVISION}"
RES=`grep "^${SUITE} " ${PLATFORM}/${REVISION}.csv | gawk '{ print "<TD ALIGN=\"CENTER\">"$6"</TD>" }'`
#DEBUG echo "${RES}"
if [ "${RES}" = "" ]
then
RES="<TD ALIGN=\"CENTER\">"$NA"</TD>"
fi
echo -n "${RES}" >> ${HISTORY}
done # REVISIONS Duration
echo "</TR>" >> ${HISTORY}
fi # SHOWDETAILS
echo "</font>" >> ${HISTORY}
echo ""; echo " End ${SUITE}"
done # SUITES
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}
echo "End ${PLATFORM}"
fi
if [ "${SHOWDETAILS}" != "ShowDetails" ]
then
DTIPUB="${PUBLISHDIR}/${PRESENTATION}/${PLATFORM}_history.html"
SRC="${HISTORY}"
DST="${DTIPUB}"
echo "**** OBS! ${SCPUT} ${SRC} ${PUBLISHUSER}@${PUBLISHSITE}:${DST}"
${SCPUT} ${SRC} ${PUBLISHUSER}@${PUBLISHSITE}:${DST}
fi
done # PLATFORMS