#!/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 VAR=$1 # Only accepts _last20 GNUPLOT=/usr/local/bin/gnuplot # 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 ${DERBYDIR}/testing/Full/plot PLATFORMS=`ls ${DERBYDIR}/testing/testlog` NPLFS=`echo ${PLATFORMS} | wc -w` echo ${PLATFORMS} GNUPLOTCMD="_GPLCMD_$$" TITLE=`echo ${DERBYDIR} | gawk -F / '{ print $NF }'` echo "" > plot${VAR}.html echo "" >> plot${VAR}.html echo "" \ >> plot${VAR}.html echo "${TITLE} - Duration plot" >> plot${VAR}.html echo "" >> plot${VAR}.html echo "" >> plot${VAR}.html CREDTTM=`date` echo "${TITLE} duration vs. baseline - All platforms per testsuite. (${CREDTTM})
" >> plot${VAR}.html for SUITE in ${SUITES} do echo ${SUITE} # Create the plot command: PLOTCMD="NOT INITIALIZED" let " PLFN = 1 " let " FIRST = 1 " # true for PLATFORM in ${PLATFORMS} do echo "${PLATFORM}" if [ -s ${PLATFORM}/${SUITE}${VAR}.data ] then if [ ${FIRST} == 1 ] then PLOTCMD="plot \"${PLATFORM}/${SUITE}${VAR}.data\" using 1:3 title \"${PLATFORM}\"" FIRST=0 else PLOTCMD="${PLOTCMD}, \"${PLATFORM}/${SUITE}${VAR}.data\" using 1:3 title \"${PLATFORM}\"" fi # echo "${PLFN} ${NPLFS}" fi let " PLFN = ${PLFN} + 1 " done echo ${PLOTCMD} # sleep 5 # Create the gnuplot settings echo "${GNUPLOT} < ${GNUPLOTCMD} echo "set ylabel \"${SUITE} run duration in % of baseline.\"" >> ${GNUPLOTCMD} echo "set xdata time" >> ${GNUPLOTCMD} echo "set timefmt \"%Y-%m-%d\"" >> ${GNUPLOTCMD} echo "set xrange [*:*]" >> ${GNUPLOTCMD} echo "set yrange [0:*]" >> ${GNUPLOTCMD} echo "set format x \"-%m-%d\"" >> ${GNUPLOTCMD} echo "set data style linespoints" >> ${GNUPLOTCMD} echo "set xtics rotate" >> ${GNUPLOTCMD} echo "set grid xtics" >> ${GNUPLOTCMD} echo "set key top left" >> ${GNUPLOTCMD} echo "set xtics 604800" >> ${GNUPLOTCMD} echo "set term png color" >> ${GNUPLOTCMD} echo "set out \"plot_all.png\"" >> ${GNUPLOTCMD} echo "${PLOTCMD}" >> ${GNUPLOTCMD} echo "EOF" >> ${GNUPLOTCMD} cat ${GNUPLOTCMD} . ./${GNUPLOTCMD} mv plot_all.png ${SUITE}_all${VAR}.png chmod go+r ${SUITE}_all${VAR}.png echo -n "> plot${VAR}.html echo "${SUITE}_all${VAR}.png\">" >> plot${VAR}.html # sleep 20 done # SUITES # Show baseline info for each platform: echo "" >> plot${VAR}.html echo "" >> plot${VAR}.html echo "" >> plot${VAR}.html echo "" >> plot${VAR}.html for PLATFORM in ${PLATFORMS} do echo "" >> plot${VAR}.html BASELINE=`head -1 ${DERBYDIR}/testing/testlog/${PLATFORM}/baseline.csv | gawk '{ print $2 }'` TS=`cat ${UPDATELOGDIR}/${BASELINE}/UpdateTime` PLATF=`echo "${PLATFORM}" | sed -e 's/CYGWIN_/CYGWIN /' | gawk -F_ '{ print $1" "$2 }' | sed -e 's/CYGWIN /CYGWIN_/'` echo "" >> plot${VAR}.html echo "" >> plot${VAR}.html done # PLATFORMS echo "
Platform Baseline
Revision
Baseline
Date time
${PLATF}: ${BASELINE} ${TS}
" >> plot${VAR}.html echo "" >> plot${VAR}.html echo "" >> plot${VAR}.html chmod go+r plot${VAR}.html rm ${GNUPLOTCMD}