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