6 KiB
6 KiB
Particle-OS Testing Guide
Overview
This guide provides a systematic approach to testing the Particle-OS system, from initial installation to full integration testing.
Quick Start
1. Run Complete Test Suite
# Transfer the test script to your VM
scp tools/test-particle-os-complete.sh particle-os:~/particle-os-tools-test/
# On the VM, run the complete test suite
sudo ./test-particle-os-complete.sh
2. Manual Testing Steps
If you prefer to test manually, follow these phases:
Phase 1: Installation Testing
# Check if tools are installed and accessible
which apt-layer
which composefs-alternative
which bootc-alternative
which bootupd-alternative
which particle-orchestrator
# Test basic commands
apt-layer --help
composefs-alternative --help
bootc-alternative --help
bootupd-alternative --help
particle-orchestrator help
# Verify configuration
ls -la /usr/local/etc/particle-config.sh
Phase 2: Component Testing
# Test apt-layer
apt-layer --init
apt-layer status
# Test composefs-alternative
composefs-alternative --help
# Test bootc-alternative
bootc-alternative --help
# Test bootupd-alternative
bootupd-alternative --help
Phase 3: Integration Testing
# Test orchestrator
particle-orchestrator help
particle-orchestrator status
# Test OCI integration
oci-integration --help
Phase 4: System Testing
# Check directory structure
ls -la /var/lib/particle-os/
ls -la /var/log/particle-os/
ls -la /var/cache/particle-os/
# Check permissions
test -w /var/log/particle-os && echo "Log directory writable"
test -w /var/lib/particle-os && echo "Workspace directory writable"
Phase 5: Dependency Testing
# Check system dependencies
dpkg -l | grep squashfs-tools
dpkg -l | grep jq
dpkg -l | grep coreutils
dpkg -l | grep util-linux
which podman
which skopeo
# Check kernel modules
modprobe -n squashfs
Test Results Interpretation
Pass Rate Categories
- 90-100%: Excellent - System is ready for production use
- 80-89%: Good - Minor issues to address
- 70-79%: Fair - Several issues need attention
- Below 70%: Poor - Major issues requiring immediate attention
Common Issues and Solutions
Missing Dependencies
# Install missing system packages
sudo apt update
sudo apt install squashfs-tools jq coreutils util-linux podman skopeo
Permission Issues
# Fix directory permissions
sudo mkdir -p /var/lib/particle-os /var/log/particle-os /var/cache/particle-os
sudo chown -R root:root /var/lib/particle-os /var/log/particle-os /var/cache/particle-os
sudo chmod -R 755 /var/lib/particle-os /var/log/particle-os /var/cache/particle-os
Configuration Issues
# Reinstall configuration
sudo apt-layer --init
sudo apt-layer --reset
Tool Installation Issues
# Reinstall all tools
sudo ./install-particle-os.sh
Advanced Testing
Functional Testing
# Test apt-layer package management
apt-layer install-packages curl wget
# Test atomic OSTree workflow
apt-layer ostree compose install curl wget
apt-layer ostree log
apt-layer ostree status
apt-layer ostree rollback
# Test ComposeFS image creation (official tools)
mkcomposefs testdir test.cfs
composefs-fuse test.cfs /mnt/test-cfs
# Test bootc image building
bootc-alternative build test-image
# Test bootupd boot management
bootupd-alternative add-entry test-image
Integration Testing
# Test full workflow
particle-orchestrator create-layer test-layer
particle-orchestrator build-image test-layer
particle-orchestrator deploy-image test-layer
Performance Testing
# Test layer creation performance
time apt-layer install-packages curl wget
# Test image building performance
time composefs-alternative create large-image /large-source
# Test deployment performance
time particle-orchestrator deploy-image test-image
Overlay/dpkg Install Workflow
Download .deb files on host
sudo apt-get install --download-only htop
Copy .deb files to overlay
sudo cp /var/cache/apt/archives/*.deb /var/lib/particle-os/live-overlay/mount/tmp/packages/
Install in overlay with dpkg
sudo chroot /var/lib/particle-os/live-overlay/mount dpkg -i /tmp/packages/*.deb
Clean up before commit
sudo rm -rf /var/lib/particle-os/live-overlay/mount/tmp/packages/ sudo rm -rf /var/lib/particle-os/live-overlay/mount/var/cache/apt/archives/*
Troubleshooting
Debug Mode
Enable debug output for detailed troubleshooting:
# Set debug environment variable
export PARTICLE_DEBUG=1
# Run tools with debug output
apt-layer --debug status
particle-orchestrator --debug help
Log Analysis
Check logs for detailed error information:
# View system logs
sudo journalctl -u particle-os
# View tool-specific logs
tail -f /var/log/particle-os/apt-layer.log
tail -f /var/log/particle-os/orchestrator.log
Configuration Validation
Validate configuration files:
# Check configuration syntax
bash -n /usr/local/etc/particle-config.sh
# Validate JSON configuration
jq . /usr/local/etc/particle-os/*.json
Reporting Issues
When reporting issues, include:
- Test Results: Output from
test-particle-os-complete.sh - System Information:
uname -a,lsb_release -a - Configuration: Contents of
/usr/local/etc/particle-config.sh - Logs: Relevant log files from
/var/log/particle-os/ - Steps to Reproduce: Exact commands that caused the issue
Continuous Testing
For ongoing development, consider:
- Automated Testing: Set up CI/CD pipeline with automated tests
- Regression Testing: Run tests after each code change
- Performance Monitoring: Track performance metrics over time
- User Acceptance Testing: Test with real-world scenarios
Next Steps
After successful testing:
- Documentation: Update user and developer guides
- Deployment: Prepare for production deployment
- Monitoring: Set up monitoring and alerting
- Maintenance: Establish maintenance procedures