SIGN IN SIGN UP

tests: add vm_backend dimension to microvm

Add a VmBackend field to the Microvm class. Microvm delegates
basic_config to the backend-specific helper introduced by the previous
commits and asks the backend to perform any required preparation before
starting. Microvm owns the shared InstanceStart, state validation, and
SSH readiness sequence. Route CPU-template application through
backend-owned basic_config so backend-specific machine configuration
stays behind that interface.

Add the vm_backend fixture as a dimension of the uvm fixtures. Tests
using it multiply over the backends the host can run. Backend discovery
may return an empty set so backend-independent pytest targets can
collect without KVM. After test selection, fail cleanly if any
selected test requires a VM backend and none is available.

MicroVMFactory now takes its backend explicitly; custom-factory
callsites pass the fixture through or stay on KVM.

The kernel_file property resolves through the backend interface
unless a test explicitly selects another boot image. KVM defaults
to the guest kernel's vmlinux; document the pre-configuration
override contract and the logical identity retained by snapshots.

Signed-off-by: James Curtis <jxcurtis@amazon.co.uk>
J
James Curtis committed
838bbfbc3a83cc48d2b9662a3f783ebd15c76ec9
Parent: c7be019