AI_UIAutomation/scripts/run-ctrl-both-oneround.sh

48 lines
2.5 KiB
Bash

#!/bin/bash
# 一轮双端控制(不分 BLE/WiFi;两端 radio 保持当前态 —— WiFi+蓝牙都开,不做任何切换):
# 1) Android 控制:CONTROL_ONLY=1 NO_PROTO_SPLIT=1 run-p0-all.sh
# └ 跳过 复位/添加、跳过 平台/账号;控制清单只跑一遍;不切 BLE/WiFi。
# 2) iOS 控制:NO_PROTO_SPLIT=1 run-ios-controls.sh
# └ 跳过 协议切换、跳过 平台/账号 TAIL;控制清单只跑一遍。
# 两端共用 reports/.results.json → iOS 开跑前清一次,产出两份独立报告
# (Android: reports/P0_All_Android_*.html;iOS: reports/iOSAll_*.html + P0_iOS_Ctrl_真实.md)。
# 启动:nohup caffeinate -dimsu bash scripts/run-ctrl-both-oneround.sh > reports/ctrl-both.out 2>&1 &
set -u
cd "$(dirname "$0")/.."
log(){ echo "[$(date '+%m-%d %H:%M:%S')] $*"; }
# 归档上次 HTML/关键日志,避免与本轮混淆
log "===== 归档上次报告产物 ====="
mkdir -p reports/archive
ts=$(date '+%Y%m%d-%H%M%S')
for f in reports/*P0_All_Android*.html reports/iOSAll_*.html reports/iOSBLE_*.html reports/AIHub_IOS_*.html reports/p0-all.log reports/ios-controls.log; do
[ -e "$f" ] && mv "$f" "reports/archive/$(basename "$f" | sed "s/\(\.[^.]*\)$/_$ts\1/")" 2>/dev/null
done
# 1) Android 控制(run-p0-all.sh 开头自清 .results.json;末尾 gen-combined 出 P0_All_Android)
log "等待 Android adb 就绪..."
for i in $(seq 1 10); do
adb devices 2>/dev/null | grep -qE "device$" && { log " adb 就绪"; break; }
log " 无 adb 设备,等待 ${i}/10 min..."; sleep 60
done
log "===== Android 控制(单轮, 不分协议)开始 ====="
CONTROL_ONLY=1 NO_PROTO_SPLIT=1 bash scripts/run-p0-all.sh
log "===== Android 控制结束(报告 reports/P0_All_Android_*.html)====="
# iOS 阶段前:只刷 iproxy 端口转发(不重装 WDA,避免弹授权)
log "===== 刷新 iproxy 端口转发(不重装 WDA)====="
pkill -f "iproxy 8100" 2>/dev/null; sleep 1
UDID=$(idevice_id -l 2>/dev/null | head -1)
nohup iproxy 8100 8100 -u "$UDID" >/dev/null 2>&1 &
sleep 5
if curl -s --max-time 5 http://localhost:8100/status 2>/dev/null | grep -q '"ready"'; then
log "WDA 连通正常"
rm -f reports/.results.json # 清掉 Android 结果 → iOS 报告独立
log "===== iOS 控制(单轮, 不分协议)开始 ====="
NO_PROTO_SPLIT=1 bash scripts/run-ios-controls.sh
log "===== iOS 控制结束(报告 reports/iOSAll_*.html)====="
else
log "!! WDA(8100)不在线,跳过 iOS 阶段(检查 iproxy/WDA)"
fi
log "全链完成。Android: reports/P0_All_Android_*.html;iOS: reports/iOSAll_*.html + P0_iOS_Ctrl_真实.md"