particle-os-tools/WSL_TESTING_GUIDE.md
2025-07-14 09:12:46 -07:00

240 lines
No EOL
5.5 KiB
Markdown

# 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