1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
#!/bin/sh
if [ "`uname`" = 'Darwin' ]; then
MSCORE=../../build.xcode/mscore/Debug/mscore.app/Contents/MacOS/mscore
BROWSER=open
else
MSCORE=../../build.debug/mscore/mscore
BROWSER=firefox
fi
if [ -n "$VTEST_MSCORE" ]; then
MSCORE="$VTEST_MSCORE"
fi
if [ -n "$VTEST_BROWSER" ]; then
BROWSER="$VTEST_BROWSER"
fi
#
# "compare" - image magick compare program
#
if test -n "$1"; then
SRC=$1
else
SRC="mmrest-1 bravura-mmrest gonville-mmrest mmrest-2 mmrest-4 mmrest-5 mmrest-6 mmrest-7 mmrest-8 mmrest-9\
mmrest-10 mmrest-11 mmrest-12 fmrest-1 fmrest-2 fmrest-3 fmrest-4 fmrest-5 fmrest-6 measure-repeat-1\
noteheadposition-1 valign-1 valign-2 valign-3\
emmentaler-1 bravura-1 gonville-1 musejazz-1\
emmentaler-2 bravura-2 gonville-2 musejazz-2\
emmentaler-3 bravura-3 gonville-3 musejazz-3\
emmentaler-4 bravura-4 gonville-4 musejazz-4\
emmentaler-5 bravura-5 gonville-5 musejazz-5\
emmentaler-6 bravura-6 gonville-6 musejazz-6\
emmentaler-7 bravura-7 gonville-7 musejazz-7\
emmentaler-8 bravura-8 gonville-8 musejazz-8\
emmentaler-9 bravura-9 gonville-9 musejazz-9\
emmentaler-10 bravura-10 gonville-10 musejazz-10\
emmentaler-11 bravura-11 gonville-11 musejazz-11\
emmentaler-text-1 gonville-text-1 bravura-text-1 musejazz-text-1\
emmentaler-text-2 gonville-text-2 bravura-text-2 musejazz-text-2\
emmentaler-text-3 gonville-text-3 bravura-text-3 musejazz-text-3\
frametext ottava \
barline-1 \
slurs-1 slurs-2 slurs-3 slurs-4 slurs-5 slurs-6 slurs-7 slurs-8 slurs-9 slurs-10 \
hairpins-1 pedal-1 line-1 line-2 line-3 line-4 line-5 line-6 gliss-1 gliss-2\
chord-layout-1 chord-layout-2 chord-layout-3 chord-layout-4 chord-layout-5\
chord-layout-6 chord-layout-7 chord-layout-8 chord-layout-9 chord-layout-10\
chord-layout-11 chord-layout-12 chord-layout-13 chord-layout-14 chord-layout-15 chord-layout-16 chord-layout-17\
cross-1 cross-2 cross-3 cross-4\
accidental-1 accidental-2 accidental-3 accidental-4 accidental-5\
accidental-6 accidental-7 accidental-8 accidental-9 accidental-10 accidental-mirror\
tie-1 tie-2 tie-3 \
grace-1 grace-2 grace-3 grace-4 grace-5 \
tuplets-1 tuplets-2 tuplets-3 tuplets-4 breath-1\
harmony-1 harmony-2 harmony-3 harmony-4 harmony-5 harmony-6 harmony-7\
harmony-8 harmony-9 harmony-10 harmony-11 harmony-12\
beams-1 beams-2 beams-3 beams-4 beams-5 beams-6 beams-7 beams-8 beams-9 beams-10\
beams-11 beams-12 beams-13 beams-14 beams-15 beams-16 beams-17\
user-offset-1 user-offset-2 chord-space-1 chord-space-2 tablature-1 image-1\
lyrics-1 lyrics-2 lyrics-3 lyrics-4 lyrics-5 lyrics-6 lyrics-7 lyrics-8 voice-1 voice-2 slash-1 slash-2\
system-1 system-2 system-3 system-4 system-5 system-6 system-7 hide-1 small-1 tremolo-1\
staff-1 staff-2 layout-1 layout-2 layout-3 layout-4 layout-5 layout-6 layout-7 layout-8 layout-9 layout-10\
articulation-1\
percussion-grace\
slashed_chord-layout-12 slashed_chord-layout-7 slashed_grace-3 slashed_noteheadposition-1\
drumset-custom-1 read-206-custom-drumset-1\
layout-sequence-1 layout-sequence-2 layout-sequence-3 layout-sequence-4\
layout-sequence-5 layout-sequence-6 layout-sequence-7 layout-sequence-8\
layout-sequence-9 layout-sequence-10 layout-sequence-11 layout-sequence-12\
layout-sequence-13 layout-sequence-14 layout-sequence-15 layout-sequence-16"
fi
#####DEBUG: failed tests
#SRC=" \
# layout-1 layout-2 layout-3 layout-4
# system-4"
DPI=130
DIR="$(cd "$(dirname "$0")" && pwd)"
mkdir -p $DIR/html
cd $DIR/html
rm -f *.png
if test -f LOG; then
rm LOG
fi
# make sure we don't put a , at the end of last line
echo "Generate JSON job file"
JSON_FILE=vtestjob.json
rm -f $JSON_FILE
echo "[" >> $JSON_FILE
for src in $SRC ; do
# if test -f ../$src.mscz; then
# echo "{ \"in\" : \"../$src.mscz\", \"out\" : \"$src.png\" }," >> $JSON_FILE;
# else
if test -f ../$src.mscx; then
echo "{ \"in\" : \"../$src.mscx\", \"out\" : \"$src.png\" }," >> $JSON_FILE;
fi
done
echo "{}]" >> $JSON_FILE
echo "Generate PNG files"
$MSCORE -j $JSON_FILE -r $DPI >LOG 2>&1
echo "Compare PNG files and references"
for src in $SRC; do
if test -f $src-1.png; then
cp ../$src-ref.png .
compare -verbose -metric AE $src-1.png $src-ref.png $src-diff.png
fi
done 2>&1 | tee /dev/stderr | fgrep -e Image: -e all: >LOG-compare
echo "Generate report"
F=vtest.html
rm -f $F
cp ../style.css .
echo "<html>" >> $F
echo " <head>" >> $F
echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">" >> $F
echo " </head>" >> $F
echo " <body>" >> $F
echo " <div id=\"topbar\">" >> $F
echo " <span>Current</span>" >> $F
echo " <span>Reference</span>" >> $F
echo " <span>Comparison</span>" >> $F
echo " </div>" >> $F
echo " <div id=\"topmargin\"></div>" >> $F
for src in $SRC; do
echo " <h2 id=\"$src\">$src <a class=\"toc-anchor\" href=\"#$src\">#</a></h2>" >> $F
echo " <div>" >> $F
echo " <img src=\"$src-1.png\">" >> $F
echo " <img src=\"$src-ref.png\">" >> $F
echo " <img src=\"$src-diff.png\">" >> $F
echo " </div>" >> $F
done
echo " </body>" >> $F
echo "</html>" >> $F
echo $BROWSER
$BROWSER $F 2>/dev/null
|