Run this test after flashing full firmware. It verifies the complete system end-to-end.
Prerequisites
- Full firmware flashed and running
alarm.wav present in LittleFS at /lfs/alarms/alarm.wav (partition image flashed)
- WiFi credentials configured in NVS
- Serial monitor open
Test Checklist
T1 — Boot and Clock Display
| # | Action | Expected |
|---|
| T1.1 | Power on | Serial shows startup sequence: NVS, LittleFS mount, RTC read, display render |
| T1.2 | Observe display | Clock face shows correct time and date |
| T1.3 | Wait 1 minute | Clock updates the displayed minutes |
T2 — WiFi and NTP Sync
| # | Action | Expected |
|---|
| T2.1 | Wait 30–60 s after boot | Serial shows "WiFi Connected" and "NTP Synced" |
| T2.2 | Power cycle | Time reads correctly after reboot (from RTC, no WiFi required) |
T3 — Alarm Set and Fire
| # | Action | Expected |
|---|
| T3.1 | Long-press SELECT | Menu appears on display |
| T3.2 | Press DOWN to "Set alarm", press SELECT | Alarm set screen appears |
| T3.3 | Use UP/DOWN to set time 2 minutes from now, press SELECT to save | Alarm confirmed on display |
| T3.4 | Wait 2 minutes | Audio plays; display shows alarm screen |
| T3.5 | Observe serial | I (...) alarm: Alarm fired: HH:MM |
T4 — Snooze
| # | Action | Expected |
|---|
| T4.1 | While alarm is ringing, press SNOOZE | Audio stops; display shows "Snoozed" screen with refire time |
| T4.2 | Wait 9 minutes | Alarm refires; audio plays again |
| T4.3 | Press DISMISS | Audio stops; clock face returns |
T5 — Dismiss
| # | Action | Expected |
|---|
| T5.1 | Set a second alarm 1 minute out | — |
| T5.2 | When it fires, press DISMISS immediately | Audio stops; clock face returns; alarm does not refire |
T6 — Persistence Across Power Cycle
| # | Action | Expected |
|---|
| T6.1 | Set an alarm for tomorrow at 07:00 | — |
| T6.2 | Power off and on | Alarm is still configured (read back from NVS) |
T7 — WiFi Not Available
| # | Action | Expected |
|---|
| T7.1 | Disable WiFi access point (or put wrong password in NVS temporarily) | ESP32 boots, shows clock, operates normally |
| T7.2 | Verify time is accurate | RTC maintains time without WiFi |
Pass Criteria
All 7 test groups must pass. Any failure indicates a bug in the corresponding subsystem:
- T1 failure → display driver or startup sequence
- T2 failure → WiFi/NTP integration or RTC write-back
- T3 failure → alarm scheduling logic
- T4 failure → snooze logic
- T5 failure → dismiss logic or one-shot alarm flag
- T6 failure → NVS persistence
- T7 failure → boot sequence incorrectly depends on WiFi