8 SCRIPTDIR=`dirname $(readlink -f $0)`
9 XDG_RUNTIME_DIR=/run/user/1001
13 echo "No reference image passed"
17 REF_IMAGE=`readlink -f $1`
19 # go to output directory
25 if [ -z "${REF_IMAGE}" ]; then
26 echo "No reference image passed"
30 if [ ! -f "${REF_IMAGE}" ]; then
31 echo "Reference image is not found"
35 # Enable the test picture and disable cursor and any other application from being displayed
36 sed -i '/^\[core\]/a activate-by-default=false' /etc/xdg/weston/weston.ini
37 # setup homescreen env variable
38 sed -i '/^\[core\]/a hide-cursor=true' /etc/xdg/weston/weston.ini
39 # enable red/green/blue test screen
40 echo 'HOMESCREEN_DEMO_CI=1' > /etc/default/homescreen
42 systemctl daemon-reload || true
43 su - agl-driver -c 'export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1001/bus" ; systemctl --user daemon-reload' || true
46 # create initial journal cursor file
47 journalctl /usr/bin/agl-compositor --cursor-file=/tmp/agl-screenshot-cursor > /tmp/first-log 2>&1
49 # stop homescreen (shell) and launcher
50 su $AGLDRIVER -c 'XDG_RUNTIME_DIR=/run/user/1001/ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus systemctl --user stop homescreen'
51 su $AGLDRIVER -c 'XDG_RUNTIME_DIR=/run/user/1001/ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus systemctl --user stop launcher'
52 # restart agl-compositor
53 su $AGLDRIVER -c 'XDG_RUNTIME_DIR=/run/user/1001/ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus systemctl --user restart agl-compositor'
54 su $AGLDRIVER -c 'XDG_RUNTIME_DIR=/run/user/1001/ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus systemctl --user start homescreen'
56 # e.g. qemu-system-arm takes loooong
58 echo "Waiting for compositor to initialize (+10sec)."
61 while test $LOOP -ge 1 ; do
63 ( mv /tmp/next-log /tmp/prev-log > /dev/null 2>&1 ) || true
64 journalctl /usr/bin/agl-compositor --cursor-file=/tmp/agl-screenshot-cursor > /tmp/next-log 2>&1
65 if ! grep -q 'Usable area:' /tmp/next-log ; then
66 # e.g. qemu-system-arm takes loooong
67 echo "Waiting for compositor to initialize (+60sec). Loop: $LOOP"
79 if ! grep -q 'Usable area:' /tmp/next-log ; then
80 echo "Marker ('Usable area:') not found. Dumping log."
81 echo "##################################"
85 echo "##################################"
87 #echo "CONTINUING ANYWAY !"
90 AGL_SCREENSHOOTER=/usr/bin/agl-screenshooter
93 #su - $AGLDRIVER -c "..."
96 su - $AGLDRIVER -c "XDG_RUNTIME_DIR=/run/user/1001 $AGL_SCREENSHOOTER -a"
101 if [ -z "$AGL_SCREENSHOOTER" ]; then
102 echo "Failed to find agl-screenshooter. Compositor too old?"
106 #echo "Found agl-screenshoooter in $AGL_SCREENSHOOTER"
107 rm -rf /home/agl-driver/agl-screenshot-*.png
109 # give it a bit more time to display
112 su - $AGLDRIVER -c "XDG_RUNTIME_DIR=/run/user/1001 $AGL_SCREENSHOOTER -l"
114 if do_screenshot ; then
115 echo "Screenshot taken"
117 echo "##################################"
118 journalctl --no-pager -a -b /usr/bin/agl-compositor
119 echo "##################################"
125 REF_IMAGE_SHA1SUM=`sha1sum ${REF_IMAGE} | awk -F ' ' '{print $1}'`
130 for SCREENSHOT in agl-screenshot-*.png ; do
131 IMAGE_SHA1SUM=`sha1sum $SCREENSHOT | awk -F ' ' '{print $1}'`
133 if [ "${REF_IMAGE_SHA1SUM}" == "${IMAGE_SHA1SUM}" ]; then
134 echo "A Screenshot matches the reference image"
138 echo "A Screenshot does not match the reference image"
144 if [ $FINALRET != 0 ] ; then
145 for i in agl-screenshot-*.png ; do
146 ${SCRIPTDIR}/./artiproxy-upload.sh $i "$i"
148 journalctl -b --no-pager -a > journal.txt
149 ${SCRIPTDIR}/./artiproxy-upload.sh journal.txt journal.txt
151 echo "#########################"
152 cat /run/platform/display/*.log
153 echo "#########################"
155 echo "#########################"
159 sed -i '/activate-by-default=false/d' /etc/xdg/weston/weston.ini
160 sed -i '/hide-cursor=true/d' /etc/xdg/weston/weston.ini
161 #rm -rf /etc/systemd/system/weston@.service.d
162 rm -rf /etc/default/homescreen
163 systemctl daemon-reload
166 systemctl restart agl-session@agl-driver.service