Talk:Google Summer of Code 2019: Difference between revisions

From QEMU
Line 32: Line 32:
bugs that break guest ABI.  It should be possible to write
bugs that break guest ABI.  It should be possible to write
automated test cases that will compare a virtual machine to a
automated test cases that will compare a virtual machine to a
previously stored dump of guest ABI information, including:
previously stored dump of guest ABI information.


* CPUID data
A guest ABI dump may include:
 
* Data returned by CPUID instruction (or equivalent)
* Physical memory and I/O port maps
* Physical memory and I/O port maps
* Device addresses (PCI, USB, etc.)
* Device addresses (PCI, USB, etc.)
* Device IDs or other readily available device information
* 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 and/or improving the qtest protocol, to provide information to be validated by the automated test case.
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:'''
'''Links:'''
* [https://github.com/autotest/tp-qemu/tree/master/qemu/deps/cpuid Ancient test code for CPUID compatibility]
* [https://github.com/autotest/tp-qemu/tree/master/qemu/deps/cpuid Ancient test code for CPUID compatibility]
* [https://github.com/ehabkost/qemu-hacks/commits/work/guest-abi-tests incomplete proof of concept]
* [https://github.com/ehabkost/qemu-hacks/commits/work/guest-abi-tests incomplete proof of concept for validating CPUID data]


'''Details:'''
'''Details:'''

Revision as of 17:49, 21 January 2019

Drafts

I'm saving some drafts here before including it on the wiki page. -Ehabkost (talk) 19:36, 16 January 2019 (UTC)

API documentation generation

Summary: Generation of API documentation from doc comments

QEMU currently has many functions documented using the GTK-Doc syntax, but there is no mechanism to actually generate API documentation from these doc comments. We need tools to generate API documentation from C and Python source code.

Links:

Details:

  • Skill level: beginner
  • Language: C, Python
  • Mentor: Eduardo Habkost <ehabkost@redhat.com> ("ehabkost" on IRC)
  • Suggested by: Eduardo Habkost

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 bugs 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:

  • 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:

Details:

  • Skill level: intermediate
  • Language: C, Python
  • Mentor: Eduardo Habkost <ehabkost@redhat.com> ("ehabkost" on IRC)
  • Suggested by: Eduardo Habkost