Files
pi-pm3/TEST_RESULTS_2026-03-03.md
michael a9acdb85ce Build optimization: pre-built PM3 binaries, ARM64 CI, base image caching
Replace PM3 compile-from-source in pi-gen with pre-built tarball extraction
(saves 43-58 min). Merge stagePM3 into stageDangerousPi as 02-pm3-install
substage, renumber all subsequent substages. Switch CI PM3 build to native
ARM64 runner (ubuntu-24.04-arm64) eliminating QEMU overhead. Add weekly
base-image workflow for pre-baking stages 0-2. Support PM3_TARBALL,
BASE_IMAGE, and APT_PROXY env vars in build-image.sh.

Also includes prior Phase 5 work: theme system, design system integration,
component update system, OS updates, CI build pipeline, and test results.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 12:01:01 -08:00

6.9 KiB

Dangerous Pi - Hardware Test Results

Test Date: 2026-03-03 14:40:12 Target: dangerous-pi.local (http://dangerous-pi.local:8000/api) Serial: /dev/ttyUSB0 @ 115200 Tester: Automated (test_hardware_2026-03-03.py)


Summary

Metric Count
Total Tests 77
PASS 62
FAIL 0
WARN 3
SKIP 12
Pass Rate 80.5% (excl. skips: 95.4%)

⚠️ Phase 1: Regression - Jan 23 Issues

# Test Status Detail
1.1 WiFi status reports connected PASS ssid=XFSETUP-0D80, ip=10.0.0.249
1.2 UPS detected at boot PASS battery=100.0%, source=battery
1.3 BLE advertising active PASS name=DangerousPi
1.4 Pydantic namespace warning ⚠️ WARN Warning still present in logs

Phase Summary: 3 pass, 0 fail, 1 warn, 0 skip


Phase 2: Core Health & System Endpoints

# Test Status Detail
2.1 Health check PASS 137ms
2.2 Readiness check PASS 35ms
2.3 System info PASS temp=46.16°C, mem=193.0MB
2.4 System config PASS 16ms
2.5 Pi model info PASS {'model': 'Raspberry Pi Zero 2 W Rev 1.0', 'model_short': 'Pi Zero 2 W', 'total_cores': 4, 'default_active_cores': 2, 'm
2.6 CPU cores PASS total=4, online=2
2.7 Power restrictions PASS 19ms
2.8 Header widgets PASS 0 widgets
2.9 Response time < 100ms avg PASS avg=41ms, min=8ms, max=91ms

Phase Summary: 9 pass, 0 fail, 0 warn, 0 skip


⚠️ Phase 3: PM3 Hardware Integration

# Test Status Detail
3.1 Device discovery PASS 1 device(s), id=pm3_119fea49
3.2 Device status PASS {'device_id': 'pm3_119fea49', 'device_path': '/dev/ttyACM0', 'friendly_name': 'ttyACM0', 'serial_number': 'iceman', 'con
3.3 PM3 overall status PASS connected=None
3.4 Create session PASS id=d47ea1bd-1eb5-42af-aa29-99ce066566d6
3.5 Execute hw version ⚠️ WARN Unexpected output:
3.6 Execute hw status PASS 362ms
3.7 Execute hw tune ⚠️ WARN No tune data in output (438ms)
3.8 HF search PASS 474ms
3.9 LF search PASS 426ms
3.10 LED identify PASS 5700ms
3.11 Command history PASS ? entries
3.12 Session release PASS 13ms
3.14 Command time < 1s ⏭️ SKIP hw version not tested

Phase Summary: 10 pass, 0 fail, 2 warn, 1 skip


Phase 4: WiFi Manager

# Test Status Detail
4.1 WiFi status PASS mode=client, ssid=XFSETUP-0D80
4.2 Interface detection (wlan0) PASS mac=2c:cf:67:87:db:13, up=True
4.3 Network scan PASS 16 networks found
4.4 Saved networks PASS ? saved
4.5 Current connection PASS ip=10.0.0.249
4.6 WiFi mode report PASS mode=client

Phase Summary: 6 pass, 0 fail, 0 warn, 0 skip


Phase 5: HTTPS & SSL

# Test Status Detail
5.1 SSL info endpoint PASS 833ms
5.2 SSL enabled field present PASS enabled=True
5.3 Certificate SANs PASS SANs=['IP Address:192.168.4.1', 'DNS:dangerous-pi.local', 'DNS:dangerous-pi', 'DNS:localhost', 'IP Address:127.0.0.1']
5.4 HTTPS access PASS 78ms
5.5 SSL toggle endpoint ⏭️ SKIP Skipped to avoid disrupting connection
5.6 Cert regeneration ⏭️ SKIP Skipped to avoid disrupting HTTPS state
5.7 SSL cert script exists PASS Script at /opt/dangerous-pi/scripts/generate-ssl-cert.sh
5.8 nginx config files PASS Found configs

Phase Summary: 6 pass, 0 fail, 0 warn, 2 skip


Phase 6: Authentication & WebSocket

# Test Status Detail
6.1 Auth status check PASS auth_enabled=False
6.2 Enable auth via serial ⏭️ SKIP Auth is disabled, skipping auth toggle tests (use --phase 6 to run interactively)
6.3 Auth test 6.3 ⏭️ SKIP Auth disabled on Pi
6.4 Auth test 6.4 ⏭️ SKIP Auth disabled on Pi
6.5 Auth test 6.5 ⏭️ SKIP Auth disabled on Pi
6.6 Auth test 6.6 ⏭️ SKIP Auth disabled on Pi
6.7 Auth test 6.7 ⏭️ SKIP Auth disabled on Pi
6.8 Auth test 6.8 ⏭️ SKIP Auth disabled on Pi
6.9 Auth test 6.9 ⏭️ SKIP Auth disabled on Pi
6.10 WebSocket event stream ⏭️ SKIP websockets not installed

Phase Summary: 1 pass, 0 fail, 0 warn, 9 skip


Phase 7: Plugin System & Hooks

# Test Status Detail
7.1 Plugin discovery PASS Found: ['hello_world']
7.2 Plugin list PASS 1 plugin(s)
7.3 Plugin info (hello_world) PASS version=1.0.0
7.4 Load plugin PASS 18ms
7.5 Enable plugin PASS 11ms
7.6 Hook trigger (pm3_command) PASS PM3 command executed with plugin enabled
7.7 Plugin widgets PASS 14ms
7.8 Disable plugin PASS 15ms
7.9 Unload plugin PASS 27ms
7.10 Invalid plugin returns 404 PASS 12ms

Phase Summary: 10 pass, 0 fail, 0 warn, 0 skip


Phase 8: BLE & UPS Hardware

# Test Status Detail
8.1 BLE status API PASS enabled=True, advertising=True, name=DangerousPi
8.3 Start BLE advertising PASS 13ms
8.2 BLE scan from laptop PASS Found DangerousPi in BLE scan
8.4 Stop BLE advertising PASS 588ms
8.5 Send BLE notification PASS 16ms
8.7 UPS status PASS battery=100.0%, voltage=4160.2755V, source=battery
8.8 UPS thresholds PASS 10ms
8.9 Power source detection PASS source=battery
8.10 I2C device at 0x75 PASS PiSugar responds

Phase Summary: 9 pass, 0 fail, 0 warn, 0 skip


Phase 9: Frontend & Performance

# Test Status Detail
9.1 Frontend loads PASS 9938 bytes, has app markup
9.2 Dashboard page PASS 9938 bytes, has app markup
9.3 Commands page PASS 7226 bytes, has app markup
9.4 Settings page PASS 7589 bytes, has app markup
9.5 Logs page PASS 5584 bytes, has app markup
9.6 Response time (10 requests) PASS avg=20ms, p95=28ms, min=13ms, max=28ms
9.7 Memory usage PASS system total used: 192MB
9.8 CPU temperature PASS 47.236°C (target < 70°C idle)

Phase Summary: 8 pass, 0 fail, 0 warn, 0 skip


Warnings

  • 1.4 Pydantic namespace warning: Warning still present in logs
  • 3.5 Execute hw version: Unexpected output:
  • 3.7 Execute hw tune: No tune data in output (438ms)

Generated by test_hardware_2026-03-03.py