fix: revert TUNNEL_LOCAL_SSH_PORT to 2223, fix registry, add incident docs
- wizard.sh + connect.conf: TUNNEL_LOCAL_SSH_PORT back to 2223 (Synology SSH port) - port-registry: renamed x6340 → x4662 (matches QuickConnect ID) - port-registry: added MR2200ac mesh satellite note for x4662 - deployment checklist: added kit-connect section, post-deployment rules, incident log, and complete fleet port registry table - memory: added fleet-router-inventory.md with full fleet state - hub README: updated with current status and locations Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
LIBDIR="$(cd "$BATS_TEST_DIRNAME/../.."/package/kit-busrouter/files/usr/lib/busrouter && pwd)"
|
||||
|
||||
setup() {
|
||||
export LIB_DIR="$LIBDIR"
|
||||
export STATE_DIR="$BATS_TMPDIR/daemon_state"
|
||||
rm -rf "$STATE_DIR"
|
||||
mkdir -p "$STATE_DIR"
|
||||
export SCORE_SAMPLES=3
|
||||
export CELL_IFACE=rmnet_mhi0 CELL_MBR=modem_0001
|
||||
export ETH_IFACE=eth0 ETH_MBR=wan
|
||||
export INTERVAL=30
|
||||
# Load all libs (daemon.sh's while loop is guarded by case "${0##*/}" so safe to load)
|
||||
load '../../package/kit-busrouter/files/usr/lib/busrouter/lib-decide.sh'
|
||||
load '../../package/kit-busrouter/files/usr/lib/busrouter/lib-score.sh'
|
||||
load '../../package/kit-busrouter/files/usr/lib/busrouter/metrics-net.sh'
|
||||
load '../../package/kit-busrouter/files/usr/lib/busrouter/speedtest.sh'
|
||||
load '../../package/kit-busrouter/files/usr/lib/busrouter/modem-sim.sh'
|
||||
load '../../package/kit-busrouter/files/usr/lib/busrouter/starlink.sh'
|
||||
load '../../package/kit-busrouter/files/usr/lib/busrouter/wan-mwan.sh'
|
||||
load '../../package/kit-busrouter/files/usr/lib/busrouter/telemetry.sh'
|
||||
load '../../package/kit-busrouter/files/usr/lib/busrouter/daemon.sh'
|
||||
}
|
||||
|
||||
@test "daemon.sh loads without error and does not start loop" {
|
||||
run true
|
||||
[ "$status" -eq 0 ]
|
||||
# If we reach here, the load in setup() did not hang -> loop guard works
|
||||
}
|
||||
|
||||
@test "_score_history_update: primes from default 50 50 50 and appends new score" {
|
||||
run _score_history_update "modem_0001" 70
|
||||
[ "$status" -eq 0 ]
|
||||
echo "$output" | grep -qE '^50 50 70$'
|
||||
}
|
||||
|
||||
@test "_score_history_update: keeps last SCORE_SAMPLES scores only" {
|
||||
export SCORE_SAMPLES=3
|
||||
_score_history_update "modem_0001" 60 >/dev/null
|
||||
_score_history_update "modem_0001" 70 >/dev/null
|
||||
_score_history_update "modem_0001" 80 >/dev/null
|
||||
run _score_history_update "modem_0001" 90
|
||||
[ "$status" -eq 0 ]
|
||||
# Should be "70 80 90" (last 3 of: 50 50 50 60 70 80 90)
|
||||
echo "$output" | grep -qE '^70 80 90$'
|
||||
}
|
||||
|
||||
@test "_collect_wan: writes metric and score files" {
|
||||
net_probe_iface() { echo "20 5 0"; }
|
||||
speed_test_due() { return 0; }
|
||||
speed_test_iface() { echo "50.0 10.0"; }
|
||||
score_composite() { echo "75"; }
|
||||
rolling_avg() { echo "72"; }
|
||||
|
||||
run _collect_wan "eth0" "wan"
|
||||
[ "$status" -eq 0 ]
|
||||
[ -f "${STATE_DIR}/metric_wan" ]
|
||||
[ -f "${STATE_DIR}/score_wan" ]
|
||||
score=$(cat "${STATE_DIR}/score_wan")
|
||||
[ "$score" -eq 72 ]
|
||||
}
|
||||
|
||||
@test "_collect_wan: fail-open when net_probe_iface returns error" {
|
||||
net_probe_iface() { return 1; }
|
||||
speed_test_due() { return 1; }
|
||||
score_composite() { echo "0"; }
|
||||
rolling_avg() { echo "0"; }
|
||||
|
||||
run _collect_wan "rmnet_mhi0" "modem_0001" "-99"
|
||||
[ "$status" -eq 0 ]
|
||||
[ -f "${STATE_DIR}/metric_modem_0001" ]
|
||||
}
|
||||
Reference in New Issue
Block a user