This comprehensive testing suite validates MeshPi installation on different RPi architectures to identify potential package installation issues.
# Test all architectures locally (Docker)
./run-rpi-tests.sh
# Test specific architecture
./run-rpi-tests.sh --arch arm32v6 # RPi Zero
./run-rpi-tests.sh --arch arm32v7 # RPi 3
./run-rpi-tests.sh --arch arm64v8 # RPi 4/5
# Quick test (skip builds)
./run-rpi-tests.sh --quick
# Test on real RPi hardware via SSH
./remote-rpi-test.sh pi@192.168.1.100
# Test multiple RPis simultaneously
./test/batch-rpi-test.sh
# Auto-diagnose and repair RPi issues
meshpi doctor pi@192.168.188.148
# Restart MeshPi service or reboot device
meshpi restart pi@192.168.188.148
# Interactive device list and management
meshpi ls
# Comprehensive service management
./rpi-service-manager.sh pi@192.168.188.148
# Start host service on remote RPi via SSH
meshpi host --ssh pi@192.168.188.148
# Local diagnostics only
meshpi doctor --local| Architecture | RPi Models | Status | Success Rate |
|---|---|---|---|
| arm64v8 | RPi 4, 5 | ✅ Excellent | 98% |
| arm32v7 | RPi 2, 3, Zero 2 W | ✅ Good | 95% |
| arm32v6 | RPi Zero, Zero W | 85% |
- Package Installation: PyPI, source, optional dependencies
- Import Tests: Core modules and optional dependencies
- CLI Functionality: Command-line interface operations
- System Compatibility: Python/pip versions, memory constraints
docker-compose.test-rpi.yml- Multi-architecture Docker setupdocker/test-rpi/- Test scripts and utilitiesrun-rpi-tests.sh- Main Docker test runner scriptremote-rpi-test.sh- SSH test script for real RPi hardwaretest/batch-rpi-test.sh- Batch testing script for multiple RPisscripts/diagnose-rpi.sh- Comprehensive RPi diagnostic scriptscripts/fix-rpi-meshpi.sh- Automated fix script for common issuesmeshpi/doctor.py- Enhanced doctor with auto-diagnosis and repairscripts/monitor-repair.sh- RPi-side repair status monitorscripts/show-repair-status.sh- Visual repair status displayscripts/rpi-service-manager.sh- Comprehensive service managementmeshpi/ssh_manager.py- SSH device management systemtest/test-doctor.sh- Test script for doctor functionalitytest/test-restart.sh- Test script for restart functionalitytest/test-list.sh- Test script for list functionalitytest/test-ssh-host.sh- Test script for SSH host functionalitytest/test-enhanced-cli.sh- Test script for enhanced CLI features.github/workflows/test-rpi-arch.yml- CI/CD workflowdocs/RPI-TESTING.md- Comprehensive testing guidedocs/RPI-TEST-RESULTS.md- Test results and known issues
arm32v6 (RPi Zero): Memory constraints, missing wheels, slow compilation arm32v7 (RPi 3): Occasional timeouts on Zero 2 W, memory limits arm64v8 (RPi 4/5): Generally excellent compatibility
- Docker with multi-architecture support (buildx)
- Docker Compose
- QEMU for cross-architecture emulation
- SSH enabled on RPi devices (for remote testing):
sudo raspi-config # Interface Options → SSH → Enable # OR: sudo systemctl enable --now ssh
- SSH key distribution (for remote testing):
ssh-keygen -t rsa -b 4096 -C 'meshpi-testing' -f ~/.ssh/meshpi_test ssh-copy-id -i ~/.ssh/meshpi_test.pub pi@<rpi-ip>
- Testing Guide:
docs/RPI-TESTING.md - Test Results:
docs/RPI-TEST-RESULTS.md - GitHub Actions: Automatic testing on PR/push
# Full Docker test suite
./run-rpi-tests.sh --clean
# Quick validation (Docker)
./run-rpi-tests.sh --quick --arch arm64v8
# CI-style testing (Docker)
./run-rpi-tests.sh --clean --sequential
# Test on real RPi hardware via SSH
./remote-rpi-test.sh pi@192.168.1.100
# Batch test multiple RPis
./test/batch-rpi-test.sh --devices "pi@rpi1.local pi@rpi2.local"
# Auto-diagnose and repair RPi issues
meshpi doctor pi@192.168.188.148
# Doctor with password authentication
meshpi doctor pi@rpi --password
# Doctor with custom SSH key
meshpi doctor pi@rpi --key ~/.ssh/custom_key
# Restart MeshPi service
meshpi restart pi@192.168.188.148
# Reboot the device
meshpi restart pi@192.168.188.148 --reboot
# Restart specific service
meshpi restart pi@192.168.188.148 --service host
# Interactive device list and management
meshpi ls
# Interactive device list with scanning
meshpi ls --scan
# Show all devices including offline
meshpi ls --all
# Comprehensive service management
./rpi-service-manager.sh pi@192.168.188.148
# Service management actions
./rpi-service-manager.sh pi@192.168.188.148 start
./rpi-service-manager.sh pi@192.168.188.148 stop
./rpi-service-manager.sh pi@192.168.188.148 restart
./rpi-service-manager.sh pi@192.168.188.148 status
# Start host service on remote RPi via SSH
meshpi host --ssh pi@192.168.188.148
# Enhanced device management with auto-detection
meshpi ls # Interactive device list with auto-detection
meshpi monitor # Monitor all devices
meshpi monitor --continuous # Continuous monitoring
meshpi monitor --group servers # Monitor specific group
# SSH management
meshpi ssh shell pi@192.168.188.148 # Interactive SSH shell
meshpi ssh batch "uptime" # Batch command execution
meshpi ssh system-update # Update package lists
meshpi ssh system-upgrade # Upgrade packages
# Group management
meshpi group create servers # Create device group
meshpi group add-device servers pi@rpi # Add device to group
meshpi group status servers # Group status check
meshpi group exec servers "uptime" # Execute on group
# Local diagnostics only
meshpi doctor --local
# Comprehensive diagnostic script
./diagnose-rpi.sh pi@192.168.188.148
# Automated fix script
./fix-rpi-meshpi.sh pi@192.168.188.148
# Monitor repair status on RPi (run on RPi)
./monitor-repair.sh --follow
# Visual repair status display (run on RPi)
./show-repair-status.sh --continuous
# Generate report
./run-rpi-tests.sh && cat test-results/test-report-*.mdThe testing suite provides comprehensive validation of MeshPi package installation across all major Raspberry Pi architectures, helping identify and resolve compatibility issues before deployment.