android-test: headless emulator default for GUI smokes
Default EMULATOR_HEADLESS=1 (-no-window, QT offscreen) while guest GLES still runs via SwiftShader. Auto-start AVD when no adb device; WINDOWED=1 for a host window on laptops.
This commit is contained in:
parent
a935f69582
commit
91b79ab807
8 changed files with 320 additions and 59 deletions
|
|
@ -37,19 +37,12 @@ step() { echo; echo "======== $* ========"; }
|
|||
info() { echo " $*"; }
|
||||
pause() { sleep "${1:-${PAUSE:-0.8}}"; }
|
||||
|
||||
# Platform flags — Linux default Android+GUI (see GUI-AUTOMATION-NOTES.md)
|
||||
os=$(uname -s)
|
||||
case "${AUTO_PLATFORM:-auto}" in
|
||||
auto) case "$os" in Linux|Darwin) : "${AUTO_ANDROID:=1}"; : "${AUTO_GUI:=1}" ;; *) : "${AUTO_ANDROID:=0}"; : "${AUTO_GUI:=0}" ;; esac ;;
|
||||
linux|macos) : "${AUTO_ANDROID:=1}"; : "${AUTO_GUI:=1}" ;;
|
||||
*) : "${AUTO_ANDROID:=0}"; : "${AUTO_GUI:=0}" ;;
|
||||
esac
|
||||
# Platform flags + headless emulator defaults (see GUI-AUTOMATION-NOTES.md)
|
||||
# shellcheck source=lib_android_env.sh
|
||||
. "$ROOT/lib_android_env.sh"
|
||||
[ "${AUTO_ANDROID}" = "1" ] || { echo "skipped: AUTO_ANDROID=${AUTO_ANDROID}"; exit 0; }
|
||||
[ "${AUTO_GUI}" = "1" ] || { echo "skipped: AUTO_GUI=${AUTO_GUI} (chain is GUI)"; exit 0; }
|
||||
|
||||
if ! command -v adb >/dev/null 2>&1; then
|
||||
[ -x "$HOME/Android/Sdk/platform-tools/adb" ] && export PATH="$HOME/Android/Sdk/platform-tools:$PATH"
|
||||
fi
|
||||
command -v adb >/dev/null || die "adb not found"
|
||||
command -v python3 >/dev/null || die "python3 required"
|
||||
|
||||
|
|
@ -112,12 +105,11 @@ if [[ ! -f "${EXP_PW_FILE:-}" && "$STACK" = "stage" ]]; then
|
|||
fi
|
||||
[[ -n "${EXP_PW_FILE:-}" && -f "$EXP_PW_FILE" ]] || die "set EXP_PW_FILE (explorer password)"
|
||||
|
||||
if [[ -z "${ANDROID_SERIAL:-}" ]]; then
|
||||
n=$(adb devices | awk 'NR>1 && $2=="device"{c++} END{print c+0}')
|
||||
[[ "$n" -ge 1 ]] || die "no adb device (start emulator or plug phone)"
|
||||
export ANDROID_SERIAL=$(adb devices | awk 'NR>1 && $2=="device"{print $1; exit}')
|
||||
fi
|
||||
info "ANDROID_SERIAL=$ANDROID_SERIAL STACK=$STACK PKG=$PKG SHOTDIR=$SHOTDIR"
|
||||
# Headless AVD by default (no host window). WINDOWED=1 for a visible emulator.
|
||||
SERIAL="${SERIAL:-${ANDROID_SERIAL:-}}"
|
||||
android_ensure_device || die "no adb device (./start-android-emulator.sh --wait)"
|
||||
export ANDROID_SERIAL="$SERIAL"
|
||||
info "ANDROID_SERIAL=$ANDROID_SERIAL STACK=$STACK PKG=$PKG SHOTDIR=$SHOTDIR headless=$EMULATOR_HEADLESS gpu=$EMULATOR_GPU"
|
||||
ADB=(adb -s "$ANDROID_SERIAL")
|
||||
|
||||
adb_sh() { "${ADB[@]}" shell "$@"; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue