Host tests that compile the production variant files (TLoraPagerBoard.cpp,
PagerHaptics.cpp, PagerImu.cpp from #748-#751) against register-level fakes of
the BQ25896, BQ27220, DRV2605 and BHI260AP (test/pager_hw_fakes/):
- test_pager_power: REG0B decoding (USB host, adapter, power-good alone, OTG not
counted as USB, the 1 s cache), the temperature guard with its 3 C band, user
limits and implausible readings, battery care 80/75 %, both holds through the
one charger switch, charge limits rounded to the chip's 64 mA / 16 mV steps,
the gauge capacity written once per target (a sealed gauge is left alone on
later boots), and ship mode refused on USB, read afresh, BATFET_DLY cleared
and BATFET_DIS set on battery.
- test_pager_haptics: the waveform slots of every pattern and strength, all
eight slots rewritten, standby only after GO clears, no bus traffic without
the chip.
- test_pager_imu: one firmware upload per boot at 1 MHz with the bus clock put
back, scaling to g, stale samples refused, the 3 s idle stop and restart, no
retry storm after a failed upload.
Each was checked against a mutated copy of its subject (hysteresis removed,
care resume moved, ship mode on USB, OTG as USB, stale waveform tail, standby
mid-pattern, capacity written every boot): all eight mutants fail.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>