Skip to content

fitzgeraldtech/expunge-testing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Expunge Testing

QEMU-based test harness for expunge-bootable ISO development.

Overview

This repo contains scripts and configuration for automated testing of Expunge bootable ISOs using QEMU/KVM virtual machines with simulated drives.

Requirements

  • QEMU with KVM support
  • User in kvm group (or use sg kvm -c wrapper)
  • SSH client with sshpass for automated login
  • Virtual disk images in drives/ directory

Setup

Create virtual drives for testing:

# Create drives directory
mkdir -p drives

# Create virtual SATA drives (sparse, use minimal space)
qemu-img create -f qcow2 drives/sata1.qcow2 100G
qemu-img create -f qcow2 drives/sata2.qcow2 100G

# Create virtual NVMe drive
qemu-img create -f qcow2 drives/nvme1.qcow2 250G

Scripts

test-iso.sh

Interactive QEMU launcher with SSH access for manual testing.

./test-iso.sh /path/to/expunge-live.iso

Features:

  • Boots ISO with SATA and NVMe virtual drives
  • SSH port forwarded to localhost:2222
  • Serial console output to terminal
  • Uses -nographic for headless operation

test-wipe-flow.sh

Automated wipe flow test that:

  1. Boots the ISO
  2. Connects via SSH
  3. Selects a drive for wiping
  4. Starts a wipe operation
  5. Monitors progress
  6. Reports results
./test-wipe-flow.sh /path/to/expunge-live.iso

Directory Structure

expunge-testing/
├── drives/           # Virtual disk images (gitignored)
│   ├── sata1.qcow2
│   ├── sata2.qcow2
│   └── nvme1.qcow2
├── logs/             # Test output logs (gitignored)
├── test-iso.sh       # Interactive test launcher
├── test-wipe-flow.sh # Automated wipe test
└── README.md

Usage Notes

KVM Permissions

If you get "permission denied" for /dev/kvm, either:

  • Add user to kvm group: sudo usermod -aG kvm $USER (requires re-login)
  • Use sg wrapper: sg kvm -c './test-iso.sh ...'

SSH Access

The Expunge ISO generates a random root password at build time. The password is displayed on the console during boot and written to /etc/issue.

For automated testing, the scripts extract the password from boot output.

Serial Console

Scripts use -nographic -serial mon:stdio for serial console access, which works well for:

  • Headless servers
  • CI/CD pipelines
  • Remote development

Related Projects

About

QEMU test harness for expunge-bootable ISO development

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages