Automated testing infrastructure using Proxmox VMs with GPU passthrough to validate desktop applications across multiple Linux distributions and display server configurations.
Testing desktop apps properly requires real environments — different distros, display servers, GPU configurations. Containers can't do this. Manual testing doesn't scale.
mOSdat uses Proxmox to orchestrate VMs with actual NVIDIA GPUs passed through via VFIO, enabling automated testing across real hardware configurations.
┌─────────────────────────────────────────────────────────────────────────┐
│ mOSdat │
│ │
│ ┌─────────┐ ┌──────────────┐ ┌─────────────────────────────┐ │
│ │ Your │───▶│ Proxmox │───▶│ Test VMs │ │
│ │ Code │ │ Orchestrator│ │ ┌───────┐ ┌───────┐ │ │
│ └─────────┘ └──────────────┘ │ │Fedora │ │Ubuntu │ ... │ │
│ │ │ │+GPU │ │+GPU │ │ │
│ │ │ │+Wayland│ │+X11 │ │ │
│ ▼ │ └───────┘ └───────┘ │ │
│ ┌──────────────┐ └─────────────────────────────┘ │
│ │ Results │ │ │
│ │ Report │◀──────────────────┘ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
GPU Passthrough — Real NVIDIA GPUs via VFIO, not emulated
Display Server Matrix — Native Wayland, X11, XWayland, and misconfigured environments
Full Pipeline — Build from git ref → deploy to VM → run tests → collect results
Reproducible — Same VM snapshot, same test sequence, consistent results
Validated a Wayland compatibility fix for Rocket.Chat Desktop:
| Scenario | Before Fix | After Fix |
|---|---|---|
| Real Wayland session | PASS | PASS |
| Fake Wayland socket | SEGFAULT | PASS |
| Missing display variable | SEGFAULT | PASS |
| X11 fallback | SEGFAULT | PASS |
Real hardware validation with NVIDIA RTX 3060 via VFIO:
| OS | gpu-wayland-real | gpu-wayland-fake | gpu-x11 | gpu-wayland-nodisp |
|---|---|---|---|---|
| Fedora 42 | PASS | PASS | PASS | PASS |
| Ubuntu 22.04 | SKIP (X11 default) | PASS | PASS | PASS |
| Ubuntu 24.04 | PASS | PASS | PASS | PASS |
| openSUSE Leap 16.0 | SKIP (X11 default) | PASS | PASS | N/A |
| Manjaro Linux 26.0.1 | PASS | PASS | PASS | N/A |
See Test Matrix and Case Studies for details.
| Distribution | Desktop | Without GPU | With GPU | Status |
|---|---|---|---|---|
| Fedora 42 | GNOME (Wayland) | PASS | PASS | Complete |
| Ubuntu 22.04 LTS | GNOME (X11) | PASS | PASS | Complete |
| Ubuntu 24.04 LTS | GNOME (Wayland) | PASS | PASS | Complete |
| openSUSE Leap 16.0 | KDE (X11) | PASS | PASS | Complete |
| Manjaro Linux 26.0.1 | KDE (Wayland) | PASS | PASS | Complete |
Notes:
- All 5 target distributions fully tested with real GPU passthrough
- openSUSE using nouveau driver (open source) with software rendering
- Manjaro running latest kernel (6.18) with KDE Plasma on Wayland
See Linux Coverage Strategy for why these distributions were selected.
| Document | Description |
|---|---|
| Architecture | System design |
| Hardware | Test environment specs |
| Linux Coverage | Distribution selection strategy |
| Test Matrix | Test results by OS |
| Proxmox Setup | VFIO and GPU passthrough |
| Case Studies | Test examples |
| Troubleshooting | Common issues |
- Proxmox VE — VM orchestration
- VFIO/IOMMU — GPU passthrough
- opencode + oh-my-opencode