X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fscripts%2Fagl-screenshot-test.sh;h=030ef34e23ae713dc093879fe953101806df212b;hb=f911ecf332aca722c13590a5c0bf085a37d4841e;hp=2e603c1300ee35e70b86919911331376f80ed18a;hpb=af58e6d6d4d1fdb4359c878df30c4184c72c76ef;p=src%2Fqa-testdefinitions.git diff --git a/common/scripts/agl-screenshot-test.sh b/common/scripts/agl-screenshot-test.sh index 2e603c1..030ef34 100755 --- a/common/scripts/agl-screenshot-test.sh +++ b/common/scripts/agl-screenshot-test.sh @@ -5,13 +5,22 @@ set -x export TERM=dumb export COLUMNS=1000 +SCRIPTDIR=`dirname $(readlink -f $0)` XDG_RUNTIME_DIR=/run/user/1001 AGLDRIVER=agl-driver +if [ -z $1 ] ; then + echo "No reference image passed" + exit 125 +fi + +REF_IMAGE=`readlink -f $1` + +# go to output directory +cd /home/$AGLDRIVER -REF_IMAGE="$1" if [ -z "${REF_IMAGE}" ]; then echo "No reference image passed" @@ -31,18 +40,17 @@ sed -i '/^\[core\]/a hide-cursor=true' /etc/xdg/weston/weston.ini echo 'HOMESCREEN_DEMO_CI=1' > /etc/default/homescreen sync systemctl daemon-reload || true -su - agl-driver -c 'export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1001/bus" ; systemctl --user daemon-reload' || true sleep 2 # create initial journal cursor file journalctl /usr/bin/agl-compositor --cursor-file=/tmp/agl-screenshot-cursor > /tmp/first-log 2>&1 # stop homescreen (shell) and launcher -su $AGLDRIVER -c 'XDG_RUNTIME_DIR=/run/user/1001/ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus systemctl --user stop homescreen' -su $AGLDRIVER -c 'XDG_RUNTIME_DIR=/run/user/1001/ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus systemctl --user stop launcher' +systemctl stop homescreen.service +systemctl stop launcher.service # restart agl-compositor -su $AGLDRIVER -c 'XDG_RUNTIME_DIR=/run/user/1001/ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus systemctl --user restart agl-compositor' -su $AGLDRIVER -c 'XDG_RUNTIME_DIR=/run/user/1001/ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus systemctl --user start homescreen' +systemctl restart agl-compositor.service +systemctl start homescreen.service # e.g. qemu-system-arm takes loooong sleep 10 @@ -84,7 +92,7 @@ AGL_SCREENSHOOTER=/usr/bin/agl-screenshooter #su - $AGLDRIVER -c "..." do_screenshot() { - su - $AGLDRIVER -c "XDG_RUNTIME_DIR=/run/user/1001 $AGL_SCREENSHOOTER -a" + $AGL_SCREENSHOOTER -a return $? } @@ -100,7 +108,7 @@ rm -rf /home/agl-driver/agl-screenshot-*.png # give it a bit more time to display #sleep 60 -su - $AGLDRIVER -c "XDG_RUNTIME_DIR=/run/user/1001 $AGL_SCREENSHOOTER -l" +$AGL_SCREENSHOOTER -l if do_screenshot ; then echo "Screenshot taken" @@ -111,32 +119,40 @@ else exit 127 fi -ls /home/agl-driver/agl-screenshot* +ls agl-screenshot* REF_IMAGE_SHA1SUM=`sha1sum ${REF_IMAGE} | awk -F ' ' '{print $1}'` -IMAGE_SHA1SUM=`sha1sum /home/agl-driver/agl-screenshot-*.png | awk -F ' ' '{print $1}'` -if [ "${REF_IMAGE_SHA1SUM}" == "${IMAGE_SHA1SUM}" ]; then - echo "Screenshot matches the reference image" +FINALRET=1 + + +for SCREENSHOT in agl-screenshot-*.png ; do + IMAGE_SHA1SUM=`sha1sum $SCREENSHOT | awk -F ' ' '{print $1}'` + + if [ "${REF_IMAGE_SHA1SUM}" == "${IMAGE_SHA1SUM}" ]; then + echo "A Screenshot matches the reference image" FINALRET=0 -else -set -x - echo "Screenshot does not match the reference image" + break + else + echo "A Screenshot does not match the reference image" FINALRET=127 - for i in /home/agl-driver/agl-screenshot-*.png ; do - if [ -x ./artiproxy-upload.sh ];then - ./artiproxy-upload.sh $i $(basename $i) - fi -set +x - done - echo "#########################" - journalctl -t agl-compositor - echo "#########################" - journalctl -b --no-pager -a - echo "#########################" - exit 127 -fi + fi +done + +if [ $FINALRET != 0 ] ; then + for i in agl-screenshot-*.png ; do + ${SCRIPTDIR}/./artiproxy-upload.sh $i "$i" + done + journalctl -b --no-pager -a > journal.txt + ${SCRIPTDIR}/./artiproxy-upload.sh journal.txt journal.txt + + echo "#########################" + cat /run/platform/display/*.log + echo "#########################" + set + echo "#########################" +fi # cleanup sed -i '/activate-by-default=false/d' /etc/xdg/weston/weston.ini @@ -146,7 +162,9 @@ rm -rf /etc/default/homescreen systemctl daemon-reload sync sleep 2 -systemctl restart agl-session@agl-driver.service +systemctl restart agl-compositor.service +systemctl restart homescreen.service +systemctl restart launcher.service sleep 10