diff options
author | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2021-01-20 15:01:50 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@automotivelinux.org> | 2021-01-20 15:01:50 +0000 |
commit | bf04b7ff77a5da4e3bf205e69139938cd433bb04 (patch) | |
tree | cb5af692d97c121b63ba03bb23936acbd74fe9f5 | |
parent | 961017ada3be22fddcacd2e67416de49d8652a35 (diff) | |
parent | 36bfc4c76c9c1f44c3232baa6d8576db8bc488d2 (diff) |
Merge "SPEC-3764: add screenshoot test"koi_10.93.0koi/10.93.010.93.0
-rwxr-xr-x | common/scripts/agl-screenshot-test.sh | 100 | ||||
-rw-r--r-- | reference-images/reference-image.png | bin | 0 -> 8602 bytes | |||
-rw-r--r-- | test-suites/short-smoke/screenshooter.yaml | 9 |
3 files changed, 109 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 diff --git a/reference-images/reference-image.png b/reference-images/reference-image.png Binary files differnew file mode 100644 index 0000000..d6579e0 --- /dev/null +++ b/reference-images/reference-image.png diff --git a/test-suites/short-smoke/screenshooter.yaml b/test-suites/short-smoke/screenshooter.yaml new file mode 100644 index 0000000..d0dd25a --- /dev/null +++ b/test-suites/short-smoke/screenshooter.yaml @@ -0,0 +1,9 @@ +metadata: + name: Screenshooter Test + format: "Lava-Test-Shell Test Definition 1.0" + description: "Take screenshoot and check it" + version: 1.0 +run: + steps: + - chmod +x ./common/scripts/agl-screenshot-test.sh + - ./common/scripts/agl-screenshot-test.sh ./reference-images/reference-image.png |