Internships/ProjectIdeas/GuestABITesting
Guest ABI automated testing
Summary: Automated test of Guest ABI and compatibility
QEMU tries to provide a stable guest ABI on versioned machine-types. Despite investing lots of effort keeping compatibility, we have no automated testing to detect common mistakes that break guest ABI. It should be possible to write automated test cases that will compare a virtual machine to a previously stored dump of guest ABI information.
A guest ABI dump may include, for example:
- Data returned by CPUID instruction (or equivalent)
- Physical memory and I/O port maps
- Device addresses (PCI, USB, etc.)
- Device IDs and other guest-visible device fields
- Value of QOM properties that affect device behavior
This might require improving or adding new QMP commands to provide information to be validated by the automated test cases. Some test cases may use a custom kernel image for collecting guest-visible data, or extending the qtest protocol.
Links:
- Ancient test code for CPUID compatibility
- incomplete proof of concept for validating CPUID data
- Hack that uses GDB to extract machine-type information from QEMU
Details:
- Skill level: intermediate
- Language: C, Python
- Mentor: Eduardo Habkost <ehabkost@redhat.com> ("ehabkost" on IRC)
- Suggested by: Eduardo Habkost