summaryrefslogtreecommitdiff
path: root/docker/scripts/screenshots.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker/scripts/screenshots.sh')
-rwxr-xr-xdocker/scripts/screenshots.sh33
1 files changed, 32 insertions, 1 deletions
diff --git a/docker/scripts/screenshots.sh b/docker/scripts/screenshots.sh
index 414af52..91477c4 100755
--- a/docker/scripts/screenshots.sh
+++ b/docker/scripts/screenshots.sh
@@ -9,7 +9,9 @@
#
# Uses the UI-test build (uitest.jungle): fake entries, PIN 123456 and a
# frozen clock, so every screenshot is reproducible. tools/ui_flow.py
-# drives the app and checks the screens.
+# drives the app and checks the screens. Then the app is launched again and
+# its glance, which now shows the favourite's code (the first run sealed it),
+# is checked as glance_code.png.
set -euo pipefail
# shellcheck source=ciq-env.sh
source "$(dirname "${BASH_SOURCE[0]}")/ciq-env.sh"
@@ -26,6 +28,34 @@ ciq_start_display
ciq_start_simulator
out="${BUILD_DIR}/screenshots"
+
+# A new launch starts in the glance; screenshot it before anything opens the app.
+shoot_glance() {
+ local device="$1" glance_log="${out}/$1/glance.log"
+ : >"${glance_log}"
+ monkeydo "${BUILD_DIR}/uitest/${device}.prg" "${device}" >>"${glance_log}" 2>&1 &
+ CIQ_MONKEYDO_PID=$!
+ local shown=0
+ for _ in $(seq 1 600); do
+ if grep -q "DIAG shown glance_code" "${glance_log}"; then
+ shown=1
+ break
+ fi
+ sleep 0.05
+ done
+ if ((shown == 0)); then
+ ciq_stop_app
+ log "${device}: the glance with the favourite's code didn't appear; see ${glance_log}"
+ return 1
+ fi
+ sleep 1
+ local status=0
+ python3 /work/tools/ui_flow.py --shot glance_code --device-dir "${CIQ_HOME}/Devices/${device}" \
+ --window "$(ciq_simulator_window)" --out "${out}/${device}" --golden "/work/test/golden/${device}" \
+ "${approve[@]}" || status=1
+ ciq_stop_app
+ return "${status}"
+}
mkdir -p "${out}"
approve=()
[[ "${APPROVE:-0}" == 1 ]] && approve=(--approve)
@@ -43,6 +73,7 @@ for device in "$@"; do
--window "$(ciq_simulator_window)" --out "${out}/${device}" --golden "/work/test/golden/${device}" \
"${approve[@]}" || failed=1
ciq_stop_app
+ shoot_glance "${device}" || failed=1
done
((failed == 0)) || die "screenshot checks failed; see build/screenshots/"