Blame contrib/mysql/plot.sh

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