1.2 KiB
1.2 KiB
GEL bounded-outbox test plan
Static gate
Run tools/verify_stock_callsite.py. It must match the golden APK hash and
prove GEL_WORK, policy integer 4 (APPEND_OR_REPLACE), continuation
construction, and enqueue in GatheringService.onStartCommand.
Offline model gates
Run tools/test_bounded_outbox.py and require:
- 10,000 coalescible alarms keep bounded queue depth;
- 10,000 non-coalescible commands preserve FIFO order;
- active WorkManager graph remains O(1), never an APPEND chain;
- queue caps and dropped-event telemetry are deterministic;
- crash after dispatch/before acknowledgement produces at-least-once retry;
- reboot watchdog resumes a non-empty outbox.
Firmware integration gates
With a signed recoverable build, test every action family handled by
GELWorker.doWork, airplane/network loss, process death at each durability
boundary, standby/reboot, full disk, corrupt outbox, clock jumps, and a 30-day
soak. Compare delivered action IDs and ordering to stock. Verify WorkDatabase
rows plateau and old successful/cancelled specs prune. Do not ship the tempting
single-byte APPEND_OR_REPLACE to KEEP edit: it can discard distinct Intents.