From 92695c0ee3c808853af88332dec0d84047f46136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hern=C3=A2ni=20Marques?= Date: Fri, 17 Jul 2026 21:22:45 +0200 Subject: [PATCH] monitoring: use inference fix branch by default; harden GUI chain ANR wait Default BUILD branch fix-bank-withdraw-auto-exchange; dismiss System UI ANR before confirm taps so low-RAM emulators fail less uselessly. --- .../android-test/AUTOMATED-GUI-NOTES.md | 23 +++++++++++++++---- .../out-gui-chain/run-211324/pay-uris.txt | 1 + .../out-gui-chain/run-211324/ui.xml | 1 + .../run-211324/withdraw-uris.txt | 1 + .../run-android-build-and-smoke.sh | 19 +++++++++++---- .../android-test/run-goa-gui-chain.sh | 22 +++++++++++++++--- 6 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 scripts/taler-monitoring/android-test/out-gui-chain/run-211324/pay-uris.txt create mode 100644 scripts/taler-monitoring/android-test/out-gui-chain/run-211324/ui.xml create mode 100644 scripts/taler-monitoring/android-test/out-gui-chain/run-211324/withdraw-uris.txt diff --git a/scripts/taler-monitoring/android-test/AUTOMATED-GUI-NOTES.md b/scripts/taler-monitoring/android-test/AUTOMATED-GUI-NOTES.md index 2e3993a..7a9447a 100644 --- a/scripts/taler-monitoring/android-test/AUTOMATED-GUI-NOTES.md +++ b/scripts/taler-monitoring/android-test/AUTOMATED-GUI-NOTES.md @@ -130,15 +130,30 @@ Open issues mirrored from upstream `ISSUES.md` (gui-workflows): - **I-and-gui-004** — emulator RAM cost (this host ~3.7 GiB) - **I-and-gui-007** — for reliable withdraw GUI, build/install app from **fix/bank-withdraw-auto-exchange** or **fix/withdraw-spinner-fallback**, not plain master alone -Recommended demo stack: +### Ground rule (ops) + +1. **Bring it to run** first (scripts + live stack). +2. **App code changes only if needed**, and **minimal**. +3. Prefer **existing** `dev/hernani-inference/*` branches over new ones; extend them rather than forking random trees. + +### Recommended demo stack (2026-07) ```text -1) Checkout taler-android: fix/withdraw-spinner-fallback (or merge fixes) -2) ./gradlew :wallet:installFdroidDebug -3) Boot emulator / phone +1) taler-android checkout: + dev/hernani-inference/fix-bank-withdraw-auto-exchange + (or fix/withdraw-spinner-fallback for spinner + OIM) +2) ./gradlew :wallet:assembleFdroidDebug # package net.taler.wallet.fdroid.debug +3) Boot emulator / phone (prefer ≥6–8 GiB host RAM; 4 GiB → System UI ANR) 4) android-test/run-goa-gui-chain.sh # STACK=goa|stage ``` +`run-android-build-and-smoke.sh` defaults `BRANCH=dev/hernani-inference/fix-bank-withdraw-auto-exchange` +so source smokes pick up the GOA exchange auto-add fix without manual checkout. + +### Runtime note (clementine) + +On ~3.7 GiB hosts the emulator often shows **System UI isn’t responding** before Confirm is tappable. Chain script now prioritizes **Wait** over hunting Confirm. For a green end-to-end GUI path use a physical device or more RAM — the **mint + deep-link + fix-branch APK** path is otherwise ready. + ```bash # GOA chain (explorer mint + GUI taps) EXP_PW_FILE=$HOME/src/koopa/koopa-admin-secrets/koopa/host-root/taler-bank/bank-explorer-password.txt \ diff --git a/scripts/taler-monitoring/android-test/out-gui-chain/run-211324/pay-uris.txt b/scripts/taler-monitoring/android-test/out-gui-chain/run-211324/pay-uris.txt new file mode 100644 index 0000000..6492537 --- /dev/null +++ b/scripts/taler-monitoring/android-test/out-gui-chain/run-211324/pay-uris.txt @@ -0,0 +1 @@ +taler://pay/taler.hacktivism.ch/instances/goa-shop/2026.198-93H450R000000/?c=1G3C43V1H89J8CQQ42TGDGVGMM diff --git a/scripts/taler-monitoring/android-test/out-gui-chain/run-211324/ui.xml b/scripts/taler-monitoring/android-test/out-gui-chain/run-211324/ui.xml new file mode 100644 index 0000000..afdddb9 --- /dev/null +++ b/scripts/taler-monitoring/android-test/out-gui-chain/run-211324/ui.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/scripts/taler-monitoring/android-test/out-gui-chain/run-211324/withdraw-uris.txt b/scripts/taler-monitoring/android-test/out-gui-chain/run-211324/withdraw-uris.txt new file mode 100644 index 0000000..e8e1589 --- /dev/null +++ b/scripts/taler-monitoring/android-test/out-gui-chain/run-211324/withdraw-uris.txt @@ -0,0 +1 @@ +taler://withdraw/bank.hacktivism.ch/taler-integration/39ba4ffc-f0e6-4e12-9e5b-d11fb8a2bcdd diff --git a/scripts/taler-monitoring/android-test/run-android-build-and-smoke.sh b/scripts/taler-monitoring/android-test/run-android-build-and-smoke.sh index 277ad07..5779b88 100755 --- a/scripts/taler-monitoring/android-test/run-android-build-and-smoke.sh +++ b/scripts/taler-monitoring/android-test/run-android-build-and-smoke.sh @@ -19,6 +19,9 @@ ROOT=$(cd "$(dirname "$0")" && pwd) SMOKE="$ROOT/run-android-pay-smoke.sh" SRC="${TALER_ANDROID_SRC:-$HOME/taler/taler-android}" SKIP_PULL="${SKIP_PULL:-0}" +# Prefer existing inference fix branch for GOA withdraw (spinner/exchange resolve). +# Override: BRANCH=master or BRANCH=dev/hernani-inference/fix-withdraw-spinner-fallback +BRANCH="${BRANCH:-dev/hernani-inference/fix-bank-withdraw-auto-exchange}" VARIANT="${VARIANT:-fdroidDebug}" # assemble task suffix: FdroidDebug / NightlyDebug / … export ANDROID_HOME="${ANDROID_HOME:-$HOME/Android/Sdk}" export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-$ANDROID_HOME}" @@ -35,13 +38,19 @@ fi printf 'sdk.dir=%s\n' "$ANDROID_HOME" >"$SRC/local.properties" cd "$SRC" -if [ "$SKIP_PULL" != "1" ] && [ -d .git ]; then - echo "git pull --ff-only origin $(git rev-parse --abbrev-ref HEAD)" - git pull --ff-only origin "$(git rev-parse --abbrev-ref HEAD)" || \ - git fetch origin && git merge --ff-only "origin/$(git rev-parse --abbrev-ref HEAD)" || true +if [ -d .git ]; then + git fetch origin 2>/dev/null || true + if [ -n "$BRANCH" ] && git rev-parse --verify "origin/$BRANCH" >/dev/null 2>&1; then + echo "checkout origin/$BRANCH (minimal GOA/automation fixes; override BRANCH=)" + git checkout -B "$BRANCH" "origin/$BRANCH" 2>/dev/null || git checkout "$BRANCH" 2>/dev/null || true + fi + if [ "$SKIP_PULL" != "1" ]; then + br=$(git rev-parse --abbrev-ref HEAD) + git pull --ff-only origin "$br" 2>/dev/null || true + fi fi COMMIT=$(git rev-parse --short=12 HEAD 2>/dev/null || echo unknown) -echo "source: $SRC @ $COMMIT" +echo "source: $SRC @ $COMMIT (branch $(git rev-parse --abbrev-ref HEAD 2>/dev/null || ?))" echo "variant: assemble${VARIANT^}" 2>/dev/null || true # Map VARIANT → gradle task (fdroidDebug → assembleFdroidDebug) diff --git a/scripts/taler-monitoring/android-test/run-goa-gui-chain.sh b/scripts/taler-monitoring/android-test/run-goa-gui-chain.sh index af48da6..571e825 100755 --- a/scripts/taler-monitoring/android-test/run-goa-gui-chain.sh +++ b/scripts/taler-monitoring/android-test/run-goa-gui-chain.sh @@ -249,14 +249,30 @@ PY click_through() { local labels=("$@") - local i lab - for i in 1 2 3 4 5 6 7 8; do + local i lab misses=0 + # Prefer dismissing ANR before hunting Confirm (low-RAM hosts thrash System UI) + for i in 1 2 3 4 5 6; do + if tap_text "Wait" 2>/dev/null || tap_text "Warten" 2>/dev/null; then + info "dismissed ANR (Wait)" + pause 2.0 + misses=0 + continue + fi + local hit=0 for lab in "${labels[@]}"; do if tap_text "$lab" 2>/dev/null; then + hit=1 + misses=0 pause 0.9 + break fi done - pause 0.4 + if [[ "$hit" -eq 0 ]]; then + misses=$((misses + 1)) + # stop early if hierarchy has nothing useful (avoid burning order deadlines) + [[ "$misses" -ge 3 ]] && break + fi + pause 0.5 done }