diff options
author | Corentin LABBE <clabbe@baylibre.com> | 2021-01-15 12:47:16 +0000 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2021-01-20 14:19:56 +0000 |
commit | 36bfc4c76c9c1f44c3232baa6d8576db8bc488d2 (patch) | |
tree | 351587f030d28b9da45137aaa7c8a55f21841d63 /common/scripts | |
parent | 5dfcc6c0441fc9b7fc7b84eae0188301fd658775 (diff) |
SPEC-3764: add screenshoot test
Add basic screenshooter test.
Change-Id: I8be9c6b4f621dc757c7e8ab846384c0fb32561df
Bug-AGL: SPEC-3764
Signed-off-by: Corentin LABBE <clabbe@baylibre.com>
Diffstat (limited to 'common/scripts')
-rwxr-xr-x | common/scripts/agl-screenshot-test.sh | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/common/scripts/agl-screenshot-test.sh b/common/scripts/agl-screenshot-test.sh new file mode 100755 index 0000000..b9d934f --- /dev/null +++ b/common/scripts/agl-screenshot-test.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +#set -x + +REF_IMAGE="$1" + +if [ -z "${REF_IMAGE}" ]; then + echo "No reference image passed" + exit 125 +fi + +if [ ! -f "${REF_IMAGE}" ]; then + echo "Reference image is not found" + exit 125 +fi + +# Enable the test picture and disable cursor and any other application from being displayed +sed -i '/^\[core\]/a activate-by-default=false' /etc/xdg/weston/weston.ini +# setup homescreen env variable +sed -i '/^\[core\]/a hide-cursor=true' /etc/xdg/weston/weston.ini +# enable red/green/blue test screen +echo 'HOMESCREEN_DEMO_CI=1' > /etc/afm/unit.env.d/screenshot +sync +systemctl daemon-reload +sleep 2 +# restart weston@display +systemctl restart weston@display.service +# e.g. qemu-system-arm takes loooong +sleep 60 +echo "Waiting for compositor to initialize (+60sec)." + +if ! grep -q 'Usable area:' /run/platform/display/compositor.log ; then +# e.g. qemu-system-arm takes loooong + echo "Waiting for compositor to initialize (+60sec)." + sleep 60 +fi +if ! grep -q 'Usable area:' /run/platform/display/compositor.log ; then + echo "Marker ('Usable area:') not found. Dumping log." + echo "##################################" + cat /run/platform/display/compositor.log + echo "##################################" + exit 127 + #echo "CONTINUING ANYWAY !" +fi + +AGL_SCREENSHOOTER=/usr/bin/agl-screenshooter + +if [ -z "$AGL_SCREENSHOOTER" ]; then + echo "Failed to find agl-screenshooter. Compositor too old?" + exit 127 +fi + +#echo "Found agl-screenshoooter in $AGL_SCREENSHOOTER" +rm -rf agl-screenshot-*.png + +if $AGL_SCREENSHOOTER; then + echo "Screenshot taken" +else + echo "##################################" + cat /run/platform/display/compositor.log + echo "##################################" + exit 127 +fi + +REF_IMAGE_SHA1SUM=`sha1sum ${REF_IMAGE} | awk -F ' ' '{print $1}'` +IMAGE_SHA1SUM=`sha1sum agl-screenshot-*.png | awk -F ' ' '{print $1}'` + +if [ "${REF_IMAGE_SHA1SUM}" == "${IMAGE_SHA1SUM}" ]; then + echo "Screenshot matches the reference image" + FINALRET=0 +else + echo "Screenshot does not match the reference image" + FINALRET=127 + for i in agl-screenshot-*.png ; do + #set +x + echo "################################################################" + ( curl --upload-file "$i" https://transfer.sh/$(basename "$i") && echo "" ) || true + echo "################################################################" + #set -x + done + echo "#########################" + cat /run/platform/display/*.log + echo "#########################" + journalctl -b --no-pager -a + echo "#########################" +fi + + +# cleanup +sed -i '/activate-by-default=false/d' /etc/xdg/weston/weston.ini +sed -i '/hide-cursor=true/d' /etc/xdg/weston/weston.ini +#rm -rf /etc/systemd/system/weston@.service.d +rm -rf /etc/afm/unit.env.d/screenshot +systemctl daemon-reload +sync +sleep 2 +systemctl restart weston@display.service +sleep 10 + +exit $FINALRET |