aboutsummaryrefslogtreecommitdiff
path: root/docker/scripts/build-app.sh
diff options
context:
space:
mode:
authorcirakg <cirakg@cirakg.xyz>2026-10-21 03:55:10 +0200
committercirakg <cirakg@cirakg.xyz>2026-10-21 03:55:10 +0200
commit56e0c351bb95cfdf63aa76ab8c5d725a694bad63 (patch)
treee99c7af6eca0656948279055c20a5f87d855d4c8 /docker/scripts/build-app.sh
parent5e8ac1e2f5a660e55ea132996e1d5730cfa4fa64 (diff)
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 <noreply@anthropic.com>
Diffstat (limited to 'docker/scripts/build-app.sh')
-rwxr-xr-xdocker/scripts/build-app.sh16
1 files changed, 9 insertions, 7 deletions
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/<mode>/<DEVICE>.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}"