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

195 lines
7.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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*