Austin Schuh | c55b017 | 2022-02-20 17:52:35 -0800 | [diff] [blame^] | 1 | #!/bin/bash |
| 2 | |
| 3 | # base name of the bench |
| 4 | # it reads $1.out |
| 5 | # and generates $1.pdf |
| 6 | WHAT=$1 |
| 7 | bench=$2 |
| 8 | settings_file=$3 |
| 9 | |
| 10 | header="rev " |
| 11 | while read line |
| 12 | do |
| 13 | if [ ! -z '$line' ]; then |
| 14 | header="$header \"$line\"" |
| 15 | fi |
| 16 | done < $settings_file |
| 17 | |
| 18 | echo $header > $WHAT.out.header |
| 19 | cat $WHAT.out >> $WHAT.out.header |
| 20 | |
| 21 | |
| 22 | echo "set title '$WHAT'" > $WHAT.gnuplot |
| 23 | echo "set key autotitle columnhead outside " >> $WHAT.gnuplot |
| 24 | echo "set xtics rotate 1" >> $WHAT.gnuplot |
| 25 | |
| 26 | echo "set term pdf color rounded enhanced fontscale 0.35 size 7in,5in" >> $WHAT.gnuplot |
| 27 | echo set output "'"$WHAT.pdf"'" >> $WHAT.gnuplot |
| 28 | |
| 29 | col=`cat $settings_file | wc -l` |
| 30 | echo "plot for [col=2:$col+1] '$WHAT.out.header' using 0:col:xticlabels(1) with lines" >> $WHAT.gnuplot |
| 31 | echo " " >> $WHAT.gnuplot |
| 32 | |
| 33 | gnuplot -persist < $WHAT.gnuplot |
| 34 | |
| 35 | # generate a png file (thumbnail) |
| 36 | convert -colors 256 -background white -density 300 -resize 300 -quality 0 $WHAT.pdf -background white -flatten $WHAT.png |
| 37 | |
| 38 | # clean |
| 39 | rm $WHAT.out.header $WHAT.gnuplot |
| 40 | |
| 41 | |
| 42 | # generate html/svg graph |
| 43 | |
| 44 | echo " " > $WHAT.html |
| 45 | cat resources/chart_header.html > $WHAT.html |
| 46 | echo 'var customSettings = {"TITLE":"","SUBTITLE":"","XLABEL":"","YLABEL":""};' >> $WHAT.html |
| 47 | # 'data' is an array of datasets (i.e. curves), each of which is an object of the form |
| 48 | # { |
| 49 | # key: <name of the curve>, |
| 50 | # color: <optional color of the curve>, |
| 51 | # values: [{ |
| 52 | # r: <revision number>, |
| 53 | # v: <GFlops> |
| 54 | # }] |
| 55 | # } |
| 56 | echo 'var data = [' >> $WHAT.html |
| 57 | |
| 58 | col=2 |
| 59 | while read line |
| 60 | do |
| 61 | if [ ! -z '$line' ]; then |
| 62 | header="$header \"$line\"" |
| 63 | echo '{"key":"'$line'","values":[' >> $WHAT.html |
| 64 | i=0 |
| 65 | while read line2 |
| 66 | do |
| 67 | if [ ! -z "$line2" ]; then |
| 68 | val=`echo $line2 | cut -s -f $col -d ' '` |
| 69 | if [ -n "$val" ]; then # skip build failures |
| 70 | echo '{"r":'$i',"v":'$val'},' >> $WHAT.html |
| 71 | fi |
| 72 | fi |
| 73 | ((i++)) |
| 74 | done < $WHAT.out |
| 75 | echo ']},' >> $WHAT.html |
| 76 | fi |
| 77 | ((col++)) |
| 78 | done < $settings_file |
| 79 | echo '];' >> $WHAT.html |
| 80 | |
| 81 | echo 'var changesets = [' >> $WHAT.html |
| 82 | while read line2 |
| 83 | do |
| 84 | if [ ! -z '$line2' ]; then |
| 85 | echo '"'`echo $line2 | cut -f 1 -d ' '`'",' >> $WHAT.html |
| 86 | fi |
| 87 | done < $WHAT.out |
| 88 | echo '];' >> $WHAT.html |
| 89 | |
| 90 | echo 'var changesets_details = [' >> $WHAT.html |
| 91 | while read line2 |
| 92 | do |
| 93 | if [ ! -z '$line2' ]; then |
| 94 | num=`echo "$line2" | cut -f 1 -d ' '` |
| 95 | comment=`grep ":$num" changesets.txt | cut -f 2 -d '#'` |
| 96 | echo '"'"$comment"'",' >> $WHAT.html |
| 97 | fi |
| 98 | done < $WHAT.out |
| 99 | echo '];' >> $WHAT.html |
| 100 | |
| 101 | echo 'var changesets_count = [' >> $WHAT.html |
| 102 | i=0 |
| 103 | while read line2 |
| 104 | do |
| 105 | if [ ! -z '$line2' ]; then |
| 106 | echo $i ',' >> $WHAT.html |
| 107 | fi |
| 108 | ((i++)) |
| 109 | done < $WHAT.out |
| 110 | echo '];' >> $WHAT.html |
| 111 | |
| 112 | cat resources/chart_footer.html >> $WHAT.html |