Files
pi-pm3/TEST_RESULTS_2026-03-03_v3.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

7.3 KiB

Dangerous Pi - Hardware Test Results

Test Date: 2026-03-03 12:41:00 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 58
FAIL 0
WARN 9
SKIP 10
Pass Rate 75.3% (excl. skips: 86.6%)

⚠️ 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 17ms
2.2 Readiness check PASS 15ms
2.3 System info PASS temp=48.312°C, mem=170.0MB
2.4 System config PASS 10ms
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 12ms
2.8 Header widgets PASS 0 widgets
2.9 Response time < 100ms avg PASS avg=12ms, min=8ms, max=23ms

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=0ca1fbe4-6218-46a5-9545-746797c866d2
3.5 Execute hw version PASS 1548ms
3.6 Execute hw status PASS 2051ms
3.7 Execute hw tune PASS 8602ms
3.8 HF search PASS 9815ms
3.9 LF search PASS 4950ms
3.10 LED identify ⚠️ WARN HTTP timeout
3.11 Command history PASS ? entries
3.12 Session release PASS 10ms
3.14 Command time < 1s ⚠️ WARN 1548ms (target < 1000ms)

Phase Summary: 11 pass, 0 fail, 2 warn, 0 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 13 networks found
4.4 Saved networks ⚠️ WARN HTTP 404
4.5 Current connection PASS ip=10.0.0.249
4.6 WiFi mode report PASS mode=client

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


⚠️ Phase 5: HTTPS & SSL

# Test Status Detail
5.1 SSL info endpoint PASS 11ms
5.2 SSL enabled field present PASS enabled=False
5.3 Certificate SANs ⚠️ WARN No certificate generated yet
5.4 HTTPS access ⚠️ WARN HTTPS not responding (may not be enabled): timeout
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 ⚠️ WARN Script not at expected path
5.8 nginx config files PASS Found configs

Phase Summary: 3 pass, 0 fail, 3 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 PASS Received event: {'type': 'event', 'event': 'connected', 'data': {'message': 'Connected to Dangerous Pi event stream'

Phase Summary: 2 pass, 0 fail, 0 warn, 8 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 76ms
7.5 Enable plugin PASS 13ms
7.6 Hook trigger (pm3_command) PASS PM3 command executed with plugin enabled
7.7 Plugin widgets PASS 13ms
7.8 Disable plugin PASS 127ms
7.9 Unload plugin PASS 17ms
7.10 Invalid plugin returns 404 PASS 13ms

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.2 BLE scan from laptop ⚠️ WARN DangerousPi not found in scan (may need longer scan)
8.3 Start BLE advertising PASS 5087ms
8.4 Stop BLE advertising PASS 108ms
8.5 Send BLE notification ⚠️ WARN HTTP 400
8.7 UPS status PASS battery=100.0%, voltage=4208.6145V, source=battery
8.8 UPS thresholds PASS 27ms
8.9 Power source detection PASS source=battery
8.10 I2C device at 0x75 PASS PiSugar responds

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


Phase 9: Frontend & Performance

# Test Status Detail
9.1 Frontend loads PASS 9955 bytes, has app markup
9.2 Dashboard page PASS 9959 bytes, has app markup
9.3 Commands page PASS 7226 bytes, has app markup
9.4 Settings page PASS 7588 bytes, has app markup
9.5 Logs page PASS 5584 bytes, has app markup
9.6 Response time (10 requests) PASS avg=11ms, p95=16ms, min=8ms, max=16ms
9.7 Memory usage PASS system total used: 184MB
9.8 CPU temperature PASS 50.464°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.10 LED identify: HTTP timeout
  • 3.14 Command time < 1s: 1548ms (target < 1000ms)
  • 4.4 Saved networks: HTTP 404
  • 5.3 Certificate SANs: No certificate generated yet
  • 5.4 HTTPS access: HTTPS not responding (may not be enabled): timeout
  • 5.7 SSL cert script exists: Script not at expected path
  • 8.2 BLE scan from laptop: DangerousPi not found in scan (may need longer scan)
  • 8.5 Send BLE notification: HTTP 400

Generated by test_hardware_2026-03-03.py