Merge pull request #409 from Alkarex/patch-1
[mono.git] / mcs / class / Managed.Windows.Forms / Test / automated / harness.sh
1 #!/bin/bash
2
3 mode=$1
4 subdir=$2
5 XNEST_DISPLAY=:5
6
7 if [ x$mode != "xbaseline" -a x$mode != "xtest" ] ; then
8     echo unknown mode: $mode
9     exit 1
10 fi
11
12
13 cd $subdir
14
15 Xnest -once -geometry 1000x700 -ac $XNEST_DISPLAY >/dev/null 2>&1 &
16
17 echo Running tests in $subdir
18
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
23
24 steps=`ls *.xnr 2> /dev/null`
25
26 for i in 0 $steps; do
27     step=`basename $i .xnr`
28
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
36
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
42     fi
43
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..."
53
54         rm -f $resultpng $differencespng
55
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
60
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
68         fi
69     fi
70 done
71
72 # kill Xnest
73 kill %1