|
Packit |
62fe53 |
#!/bin/bash
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
# plot.sh
|
|
Packit |
62fe53 |
#
|
|
Packit |
62fe53 |
# Copyright (C) 2016 Free Software Foundation, Inc.
|
|
Packit |
62fe53 |
#
|
|
Packit |
62fe53 |
# This file is part of DejaGnu.
|
|
Packit |
62fe53 |
#
|
|
Packit |
62fe53 |
# DejaGnu is free software; you can redistribute it and/or modify it
|
|
Packit |
62fe53 |
# under the terms of the GNU General Public License as published by
|
|
Packit |
62fe53 |
# the Free Software Foundation; either version 3 of the License, or
|
|
Packit |
62fe53 |
# (at your option) any later version.
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
# This script executes a series of SQL calls to our testing database,
|
|
Packit |
62fe53 |
# and makes a data file for gnuplot.
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
if test "$#" -eq 0; then
|
|
Packit |
62fe53 |
echo "Need to supply a graph name!"
|
|
Packit |
62fe53 |
name="GCC"
|
|
Packit |
62fe53 |
else
|
|
Packit |
62fe53 |
name=$1
|
|
Packit |
62fe53 |
fi
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
# These are required to access the database
|
|
Packit |
62fe53 |
user="USER"
|
|
Packit |
62fe53 |
passwd="PASSWD"
|
|
Packit |
62fe53 |
outfile="testrun.data"
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
# Check the environment for the database access information
|
|
Packit |
62fe53 |
if test x"${CBUILD_DBUSER}" != x; then
|
|
Packit |
62fe53 |
user="${CBUILD_DBUSER}"
|
|
Packit |
62fe53 |
fi
|
|
Packit |
62fe53 |
if test x"${CBUILD_DBPASSWD}" != x; then
|
|
Packit |
62fe53 |
passwd="${CBUILD_DBPASSWD}"
|
|
Packit |
62fe53 |
fi
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
# setup an array of colors, since the number of data files varies
|
|
Packit |
62fe53 |
declare -a colors=('green' 'red' 'cyan' 'blue' 'purple' 'brown' 'coral' 'yellow' 'black')
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
type="with lines"
|
|
Packit |
62fe53 |
type=
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
machines=$(mysql -u"$user" -p"$passwd" --local -e "SELECT DISTINCT(build_machine) FROM dejagnu.testruns" | sed -e 's/build_machine//' | sed -e 's:\.::' | tr '\n' ' ')
|
|
Packit |
62fe53 |
echo "Build machines are: ${machines}"
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
tools=$(mysql -u"$user" -p"$passwd" --local -e "SELECT DISTINCT(tool) FROM dejagnu.testruns" | sed -e 's/tool//' | tr '\n' ' ')
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
# Only graph if there is a data file
|
|
Packit |
62fe53 |
#tools="`ls *.data | cut -d '.' -f 1`"
|
|
Packit |
62fe53 |
echo "Tools are: ${tools}"
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
datafiles="${machines}"
|
|
Packit |
62fe53 |
if test "$#" -gt 1; then
|
|
Packit |
62fe53 |
case $2 in
|
|
Packit |
62fe53 |
m*) datafiles="echo ${machines}"
|
|
Packit |
62fe53 |
echo "Separating graphs by build machine name"
|
|
Packit |
62fe53 |
;;
|
|
Packit |
62fe53 |
t*) datafiles="${tools}"
|
|
Packit |
62fe53 |
echo "Separating graphs by tool name"
|
|
Packit |
62fe53 |
;;
|
|
Packit |
62fe53 |
*)
|
|
Packit |
62fe53 |
datafiles="${machines}"
|
|
Packit |
62fe53 |
;;
|
|
Packit |
62fe53 |
esac
|
|
Packit |
62fe53 |
fi
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
outfile="gnuplot.cmd"
|
|
Packit |
62fe53 |
cindex=0
|
|
Packit |
62fe53 |
for j in ${datafiles}; do
|
|
Packit |
62fe53 |
# for now we don't want aarch64 results in the chart as they distort the data
|
|
Packit |
62fe53 |
# heavily.
|
|
Packit |
62fe53 |
if test "$(echo "$j" | grep -c aarch64)" -gt 0; then
|
|
Packit |
62fe53 |
continue
|
|
Packit |
62fe53 |
fi
|
|
Packit |
62fe53 |
if test -f "$j".data -a -s "$j".data; then
|
|
Packit |
62fe53 |
if test ${cindex} -eq 0; then
|
|
Packit |
62fe53 |
echo "Creating gnuplot comand file: ${outfile}"
|
|
Packit |
62fe53 |
cat <<EOF >${outfile}
|
|
Packit |
62fe53 |
set boxwidth 0.9 relative
|
|
Packit |
62fe53 |
set style data histograms
|
|
Packit |
62fe53 |
set style histogram cluster
|
|
Packit |
62fe53 |
set style fill solid 1.0 border lt -1
|
|
Packit |
62fe53 |
set autoscale x
|
|
Packit |
62fe53 |
set autoscale y
|
|
Packit |
62fe53 |
#set yrange [97:100]
|
|
Packit |
62fe53 |
set title "Precentage PASSes"
|
|
Packit |
62fe53 |
set ylabel "Precent PASS"
|
|
Packit |
62fe53 |
set format y "%g%%"
|
|
Packit |
62fe53 |
#set xlabel "Architecture"
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
# Rotate the X axis labels 90 degrees, so they all fit
|
|
Packit |
62fe53 |
set xtics border in scale 1,0.5 nomirror rotate by -90 offset character 0, 0, 0
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
# Out the key in out of the way
|
|
Packit |
62fe53 |
set key right top
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
set term png size 1900,1024
|
|
Packit |
62fe53 |
set output "testrun.png"
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
set xlabel "${name} Versions"
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
set grid ytics lt 0 lw 1 lc rgb "#bbbbbb"
|
|
Packit |
62fe53 |
#set grid xtics lt 0 lw 1 lc rgb "#bbbbbb"
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
EOF
|
|
Packit |
62fe53 |
# echo -n "plot \"$j.data\" using (((\$6+\$9)/\$5)/100):xtic(3) title \"$j\" lt rgb \"${colors[$cindex]}\" ${type}" >> ${outfile}
|
|
Packit |
62fe53 |
echo -n "plot \"$j.data\" using ((\$6/\$5) * 100):xtic(3) title \"$j\" lt rgb \"${colors[$cindex]}\" ${type}" >> ${outfile}
|
|
Packit |
62fe53 |
# cindex=`expr $cindex + 1`
|
|
Packit |
62fe53 |
# echo -n ", \"\" using (((\$7+\$8+\$10+\$11+\$12)/\$5) * 100):xtic(3) title \"FAILS\" lt rgb \"${colors[$cindex]}\" ${type}" >> ${outfile}
|
|
Packit |
62fe53 |
else
|
|
Packit |
62fe53 |
# echo -n ", \"$j.data\" using ((\$6+\$9/\$5)/100):xtic(3) title \"$j\" lt rgb \"${colors[$cindex]}\" ${type}" >> ${outfile}
|
|
Packit |
62fe53 |
echo -n ", \"$j.data\" using ((\$6/\$5) * 100):xtic(3) title \"$j\" lt rgb \"${colors[$cindex]}\" ${type}" >> ${outfile}
|
|
Packit |
62fe53 |
fi
|
|
Packit |
62fe53 |
cindex=$((cindex + 1))
|
|
Packit |
62fe53 |
fi
|
|
Packit |
62fe53 |
done
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
#for j in ${datafiles}; do
|
|
Packit |
62fe53 |
# if test -f $j.data -a -s $j.data; then
|
|
Packit |
62fe53 |
cat <<EOF >>${outfile}
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
set term x11 persist
|
|
Packit |
62fe53 |
replot
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
EOF
|
|
Packit |
62fe53 |
# fi
|
|
Packit |
62fe53 |
#done
|
|
Packit |
62fe53 |
|
|
Packit |
62fe53 |
|