30 lines
1014 B
Bash
30 lines
1014 B
Bash
#!/usr/bin/env bash
|
||
# throttle_test.sh - 节流测试
|
||
# 同类 CONTROL 命令 2 秒内连续投递多条,验证只保留最后一条(文档 §7.5)
|
||
# 用法: throttle_test.sh [action] [count]
|
||
# action 默认 PAUSE
|
||
# count 默认 5(2 秒内投递 5 次)
|
||
|
||
set -e
|
||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
# shellcheck disable=SC1091
|
||
source "${SCRIPT_DIR}/lib/common.sh"
|
||
|
||
require_adb
|
||
check_receiver_exists
|
||
|
||
ACTION="${1:-PAUSE}"
|
||
COUNT="${2:-5}"
|
||
|
||
print_header "节流测试 CONTROL/${ACTION} × ${COUNT}(2 秒内)"
|
||
log_warn "请先确保正在播放页(run_all.sh 已跳转到播放页),否则会被守卫拦截"
|
||
|
||
for i in $(seq 1 "${COUNT}"); do
|
||
PAYLOAD=$(build_control_payload "${ACTION}")
|
||
log_info "[${i}/${COUNT}] 投递 ${ACTION}"
|
||
send_voice_broadcast "CONTROL" "${PAYLOAD}" "throttle-$(date +%s%3N)-${i}" >/dev/null
|
||
sleep 0.3
|
||
done
|
||
|
||
log_ok "投递完成,预期服务端只执行最后一条 ${ACTION}"
|
||
log_info "可通过 logcat 过滤 VoiceCommandLogger 验证 throttle 日志" |