2010-04-06 Jb Evain <jbevain@novell.com>
[mcs.git] / class / Managed.Windows.Forms / Test / automated / harness.sh
blobc4bcc4a5f1a8d48008f2ac1778e747a394fbe955
1 #!/bin/bash
3 mode=$1
4 subdir=$2
5 XNEST_DISPLAY=:5
7 if [ x$mode != "xbaseline" -a x$mode != "xtest" ] ; then
8 echo unknown mode: $mode
9 exit 1
13 cd $subdir
15 Xnest -once -geometry 1000x700 -ac $XNEST_DISPLAY >/dev/null 2>&1 &
17 echo Running tests in $subdir
19 # start up the test and give it some time to appear
20 export DISPLAY=$XNEST_DISPLAY
21 mono test.exe 2> /dev/null &
22 sleep 3
24 steps=`ls *.xnr 2> /dev/null`
26 for i in 0 $steps; do
27 step=`basename $i .xnr`
29 resultprefix=result-$step
30 resultfile=$resultprefix.xwd
31 resultpng=$resultprefix.png
32 baseprefix=$step
33 baseline=$baseprefix.xwd
34 basepng=$baseprefix.png
35 differencespng=differences-$step.png
37 if test -f $i; then
38 # replay the recorded data
39 #/opt/xnee/bin/cnee -display $XNEST_DISPLAY --replay -f $i -rwp > /dev/null 2>&1
40 /opt/xnee/bin/cnee -display $XNEST_DISPLAY --replay -f $i > /dev/null 2>&1
41 #sleep 1
44 if test x$mode == "xbaseline"; then
45 echo -n " generating baseline for step $step..."
46 # take a screendump and store out the new baseline
47 xwd -silent -display $XNEST_DISPLAY -root -out $baseline > /dev/null
48 xwdtopnm $baseline 2> /dev/null | pnmtopng -compression 9 2> /dev/null > $basepng
49 rm -f $baseline
50 echo done.
51 elif test x$mode == "xtest"; then
52 echo -n " step $step..."
54 rm -f $resultpng $differencespng
56 # take a screendump of the end result
57 xwd -silent -display $XNEST_DISPLAY -root -out $resultfile 2> /dev/null
58 xwdtopnm $resultfile 2> /dev/null | pnmtopng -compression 9 2> /dev/null > $resultpng
59 rm -f $resultfile
61 # and compare to our baseline
62 if diff $resultpng $basepng; then
63 echo PASSED.
64 rm -f $resultpng
65 else
66 echo FAILED.
67 convert $resultpng $basepng -compose difference -composite $differencespng
70 done
72 # kill Xnest
73 kill %1