# Particle-OS WSL Testing Guide This guide provides quick instructions for testing Particle-OS rollback and deployment activation functionality in WSL environments. ## ๐Ÿš€ Quick Start for WSL ### Prerequisites ```bash # Install required packages sudo apt update sudo apt install jq squashfs-tools # Ensure Particle-OS tools are installed which apt-layer.sh which bootc-alternative.sh which bootupd-alternative.sh ``` ### Option 1: Safe Testing (No Reboot) - RECOMMENDED ```bash # Run the root-compatible test script ./test-rollback-deployment-root.sh ``` ### Option 2: Full Testing (With Reboot) - WARNING ```bash # Only use in a disposable VM, not in WSL # ./test-deployment-activation-reboot.sh ``` ## ๐Ÿ”ง WSL-Specific Considerations ### Why Use the Root Version? - WSL environments often run as root by default - Original scripts require regular user with sudo access - Root version removes sudo requirements for testing ### WSL Limitations - **No real reboot support** - WSL reboots restart the entire WSL instance - **Limited bootloader testing** - WSL doesn't use traditional bootloaders - **Container limitations** - Some container features may not work in WSL ### What Works in WSL - โœ… OSTree commit creation and management - โœ… Rollback preparation (without activation) - โœ… Live overlay functionality - โœ… Package installation and removal - โœ… System status and logging - โœ… Basic rollback commands ### What Doesn't Work in WSL - โŒ Actual deployment activation via reboot - โŒ Bootloader integration testing - โŒ Full system rollback testing - โŒ BootC alternative reboot testing ## ๐Ÿ“‹ Test Results Interpretation ### Expected Results in WSL ``` === Test Results === Total Tests: 10 Passed: 8-10 Failed: 0-2 Expected Warnings: - "BootC rollback may not have deployments to rollback" - "No pending deployment found (normal if no rollback was prepared)" ``` ### What Success Looks Like - โœ… All basic functionality tests pass - โœ… OSTree commits created successfully - โœ… Rollback preparation works - โœ… Live overlay functionality works - โœ… System remains functional after tests ### Common WSL Issues - **Permission errors** - Use the root version script - **Missing tools** - Install required packages - **Network issues** - Check WSL network connectivity - **Disk space** - Ensure sufficient space for testing ## ๐Ÿงช Manual Testing Steps ### 1. Basic Functionality Test ```bash # Check if tools are available which apt-layer.sh which jq which ostree # Test basic commands apt-layer.sh --help apt-layer.sh status ``` ### 2. OSTree Commit Test ```bash # Initialize if needed apt-layer.sh --init # Create test commit apt-layer.sh ostree compose install htop curl # Check status apt-layer.sh ostree status apt-layer.sh ostree log ``` ### 3. Rollback Preparation Test ```bash # Create second commit apt-layer.sh ostree compose install wget tree # Prepare rollback to first commit commits=($(apt-layer.sh ostree log | grep -o "ostree-[0-9]*-[0-9]*")) apt-layer.sh ostree rollback "${commits[1]}" # Check pending deployment apt-layer.sh ostree status ``` ### 4. Live Overlay Test ```bash # Start live overlay apt-layer.sh --live-overlay start # Install package apt-layer.sh --live-install sl # Test rollback apt-layer.sh --live-overlay rollback # Stop overlay apt-layer.sh --live-overlay stop ``` ## ๐Ÿ” Troubleshooting ### Issue: "Command not found" ```bash # Check if tools are installed ls -la apt-layer.sh ls -la bootc-alternative.sh # Install if missing ./install-particle-os.sh ``` ### Issue: "Permission denied" ```bash # Use the root version script ./test-rollback-deployment-root.sh # Or fix permissions chmod +x *.sh ``` ### Issue: "No such file or directory" ```bash # Create required directories sudo mkdir -p /var/lib/particle-os sudo mkdir -p /var/log/particle-os # Initialize apt-layer apt-layer.sh --init ``` ### Issue: "Network connectivity" ```bash # Check WSL network ping -c 3 8.8.8.8 # Update package lists apt update ``` ## ๐Ÿ“Š Test Validation ### Successful Test Indicators - [ ] All basic commands work without errors - [ ] OSTree commits can be created - [ ] Rollback preparation completes - [ ] Live overlay starts and stops - [ ] System remains functional ### Warning Signs - [ ] Multiple command failures - [ ] Permission errors - [ ] Network connectivity issues - [ ] System becomes unresponsive ## ๐ŸŽฏ Next Steps After WSL Testing ### If Tests Pass 1. **Document successful configuration** 2. **Test in a real VM environment** 3. **Validate with actual reboots** 4. **Create production deployment plan** ### If Tests Fail 1. **Review error logs** 2. **Check system requirements** 3. **Test in different WSL environment** 4. **Report issues with details** ## ๐Ÿ“ Log Analysis ### Check Test Logs ```bash # View test log cat /tmp/particle-os-rollback-test/test-rollback-deployment.log # Check for errors grep -i error /tmp/particle-os-rollback-test/test-rollback-deployment.log # Check for warnings grep -i warning /tmp/particle-os-rollback-test/test-rollback-deployment.log ``` ### Common Log Messages - `[SUCCESS]` - Test passed - `[ERROR]` - Test failed - `[WARNING]` - Potential issue (may be normal in WSL) - `[INFO]` - Informational message ## ๐Ÿ”— Related Documentation - [Particle-OS Testing Guide](TESTING_GUIDE.md) - [Rollback Deployment Testing Guide](ROLLBACK_DEPLOYMENT_TESTING_GUIDE.md) - [Particle-OS Installation Guide](INSTALLATION.md) ## ๐Ÿ“ž Support For WSL-specific issues: 1. Check this troubleshooting guide 2. Verify WSL configuration 3. Test in a different WSL environment 4. Report issues with WSL version and configuration details