summaryrefslogtreecommitdiff
path: root/docker/scripts/build-app.sh
diff options
context:
space:
mode:
authorcirakg <cirakg@cirakg.xyz>2026-10-19 22:28:09 +0200
committercirakg <cirakg@cirakg.xyz>2026-10-19 22:28:09 +0200
commit2373b6f02ef027a423762d5d6349cd9e0f36090e (patch)
tree7509b0b1905d7c593074bba8ed4c94e30e437604 /docker/scripts/build-app.sh
parent35042ff04ffc50e55ff59a385849442be4429d6b (diff)
test(ui): drive the simulator with a scripted flow and check every screen
tools/ui_flow.py clicks buttons and taps from the device files, waits for DIAG shown lines and compares 10 screens per watch with goldens on four test and three spot-check devices. Adds the fixture-wrap generator, UI logic tests and driver tests; the launcher opens apps from their glance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docker/scripts/build-app.sh')
-rwxr-xr-xdocker/scripts/build-app.sh14
1 files changed, 8 insertions, 6 deletions
diff --git a/docker/scripts/build-app.sh b/docker/scripts/build-app.sh
index 74dd042..1a7d59a 100755
--- a/docker/scripts/build-app.sh
+++ b/docker/scripts/build-app.sh
@@ -1,20 +1,21 @@
#!/usr/bin/env bash
# Author: cirakg & claude ai
-# Summary: Compile the watch app for one device: debug, release or unit-test build.
+# Summary: Compile the watch app for one device: debug, release, unit-test or UI-test build.
#
-# Usage: build-app.sh debug|release|test DEVICE
+# Usage: build-app.sh debug|release|test|uitest 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. Test builds add test.jungle, so test code never
+# 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
# (: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 DEVICE}"
-device="${2:?usage: build-app.sh debug|release|test DEVICE}"
+mode="${1:?usage: build-app.sh debug|release|test|uitest DEVICE}"
+device="${2:?usage: build-app.sh debug|release|test|uitest DEVICE}"
ciq_require_sdk
ciq_require_key
@@ -27,11 +28,12 @@ args=(-d "${device}" -y "${DEV_KEY}" -l 3 -w)
case "${mode}" in
debug) ;;
release) args+=(-r) ;;
+ uitest) jungles="${jungles};/work/uitest.jungle" ;;
test)
jungles="${jungles};/work/test.jungle"
args+=(-t)
;;
- *) die "unknown build mode '${mode}' (use debug, release or test)" ;;
+ *) die "unknown build mode '${mode}' (use debug, release, test or uitest)" ;;
esac
out_dir="${BUILD_DIR}/${mode}"