From 56e0c351bb95cfdf63aa76ab8c5d725a694bad63 Mon Sep 17 00:00:00 2001 From: cirakg Date: Wed, 21 Oct 2026 03:55:10 +0200 Subject: test(build): add make watchdog, the glance memory budget and the glance screenshot - make watchdog (in make ci): a stress build encodes, packs, turns into runs and draws the largest code of every 2D symbology at two steps per event on the Forerunner 255S and 70; it fails on a watchdog trip, and the last code left on the screen must decode (bitmap path on the 70). - make memtest checks the glance (DIAG glance, budget 70 % of 64 KB). - screenshots.sh launches the app again after the flow and compares the glance with the favourite's code (glance_code.png on 7 watches); the About goldens show 0.8.0. Co-Authored-By: Claude Opus 5.5 --- docker/scripts/build-app.sh | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'docker/scripts/build-app.sh') diff --git a/docker/scripts/build-app.sh b/docker/scripts/build-app.sh index 1a7d59a..5ead272 100755 --- a/docker/scripts/build-app.sh +++ b/docker/scripts/build-app.sh @@ -1,21 +1,22 @@ #!/usr/bin/env bash # Author: cirakg & claude ai -# Summary: Compile the watch app for one device: debug, release, unit-test or UI-test build. +# Summary: Compile the watch app for one device: debug, release, unit-test, UI-test or watchdog stress build. # -# Usage: build-app.sh debug|release|test|uitest DEVICE +# Usage: build-app.sh debug|release|test|uitest|stress DEVICE # Output: build//.prg, and the compiler log next to it. # # Policy (README section 17.7): strict type checking (-l 3), and any compiler # warning fails the build. UI-test builds add uitest.jungle (fixed clock, -# fake entries; see source/util/TestMode.mc). Test builds add test.jungle, so test code never -# reaches debug or release builds; release builds (-r) also drop every +# fake entries; see source/util/TestMode.mc), stress builds stress.jungle (the +# watchdog stress test, source/util/StressTest.mc). Test builds add +# test.jungle, so test code never reaches debug or release builds; release builds (-r) also drop every # (:debug) declaration, such as the diagnostics in source/util/Diag.mc. set -euo pipefail # shellcheck source=ciq-env.sh source "$(dirname "${BASH_SOURCE[0]}")/ciq-env.sh" -mode="${1:?usage: build-app.sh debug|release|test|uitest DEVICE}" -device="${2:?usage: build-app.sh debug|release|test|uitest DEVICE}" +mode="${1:?usage: build-app.sh debug|release|test|uitest|stress DEVICE}" +device="${2:?usage: build-app.sh debug|release|test|uitest|stress DEVICE}" ciq_require_sdk ciq_require_key @@ -29,11 +30,12 @@ case "${mode}" in debug) ;; release) args+=(-r) ;; uitest) jungles="${jungles};/work/uitest.jungle" ;; + stress) jungles="${jungles};/work/stress.jungle" ;; test) jungles="${jungles};/work/test.jungle" args+=(-t) ;; - *) die "unknown build mode '${mode}' (use debug, release, test or uitest)" ;; + *) die "unknown build mode '${mode}' (use debug, release, test, uitest or stress)" ;; esac out_dir="${BUILD_DIR}/${mode}" -- cgit v1.2.3