1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2024-12-26 03:21:44 +03:00
libvirt/tests/qemucapabilitiesdata
Andrea Bolognani 20a5f77156 tests: Add capabilities for QEMU 8.2.0 on s390x
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2024-02-12 11:28:14 +01:00
..
caps_4.2.0_aarch64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_4.2.0_aarch64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_4.2.0_ppc64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_4.2.0_ppc64.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_4.2.0_s390x.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_4.2.0_s390x.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_4.2.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_4.2.0_x86_64.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_5.0.0_aarch64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.0.0_aarch64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_5.0.0_ppc64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.0.0_ppc64.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_5.0.0_riscv64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.0.0_riscv64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_5.0.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.0.0_x86_64.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_5.1.0_sparc.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.1.0_sparc.xml qemu: capabilities: Retire QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS 2023-09-04 10:31:52 +02:00
caps_5.1.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.1.0_x86_64.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_5.2.0_aarch64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.2.0_aarch64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_5.2.0_ppc64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.2.0_ppc64.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_5.2.0_riscv64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.2.0_riscv64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_5.2.0_s390x.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.2.0_s390x.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_5.2.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_5.2.0_x86_64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_6.0.0_aarch64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_6.0.0_aarch64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_6.0.0_s390x.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_6.0.0_s390x.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_6.0.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_6.0.0_x86_64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_6.1.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_6.1.0_x86_64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_6.2.0_aarch64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_6.2.0_aarch64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_6.2.0_ppc64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_6.2.0_ppc64.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_6.2.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_6.2.0_x86_64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_7.0.0_aarch64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_7.0.0_aarch64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_7.0.0_aarch64+hvf.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_7.0.0_aarch64+hvf.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_7.0.0_ppc64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_7.0.0_ppc64.xml qemu_capabilities: Retire QEMU_CAPS_DEVICE_VFIO_PCI 2023-09-06 14:09:43 +02:00
caps_7.0.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_7.0.0_x86_64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_7.1.0_ppc64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_7.1.0_ppc64.xml qemu: Introduce QEMU_CAPS_SMP_CLUSTERS 2024-01-15 14:56:35 +01:00
caps_7.1.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_7.1.0_x86_64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_7.2.0_ppc.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_7.2.0_ppc.xml qemu: Introduce QEMU_CAPS_SMP_CLUSTERS 2024-01-15 14:56:35 +01:00
caps_7.2.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_7.2.0_x86_64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_7.2.0_x86_64+hvf.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_7.2.0_x86_64+hvf.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_8.0.0_riscv64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_8.0.0_riscv64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_8.0.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_8.0.0_x86_64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_8.1.0_s390x.replies tests: Update capabilities for QEMU 8.1.0 on s390x 2024-02-12 11:28:12 +01:00
caps_8.1.0_s390x.xml tests: Update capabilities for QEMU 8.1.0 on s390x 2024-02-12 11:28:12 +01:00
caps_8.1.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_8.1.0_x86_64.xml qemu: Retire QEMU_CAPS_OBJECT_GPEX 2024-01-17 19:28:19 +01:00
caps_8.2.0_aarch64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_8.2.0_aarch64.xml qemu_capabilities: Add QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI_DYNAMIC_MEMSLOTS capability 2024-01-30 10:44:36 +01:00
caps_8.2.0_s390x.replies tests: Add capabilities for QEMU 8.2.0 on s390x 2024-02-12 11:28:14 +01:00
caps_8.2.0_s390x.xml tests: Add capabilities for QEMU 8.2.0 on s390x 2024-02-12 11:28:14 +01:00
caps_8.2.0_x86_64.replies tests: qemucaps: Make JSON output identical to python's 'json.dump' method 2024-02-01 10:39:40 +01:00
caps_8.2.0_x86_64.xml qemu_capabilities: Add QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI_DYNAMIC_MEMSLOTS capability 2024-01-30 10:44:36 +01:00
caps_9.0.0_x86_64.replies tests: qemucapabilitiesdata: Update 'caps_9.0.0_x86_64.replies' 2024-02-02 16:03:08 +01:00
caps_9.0.0_x86_64.xml qemu: capabilities: Introduce QEMU_CAPS_BLOCKJOB_BACKING_MASK_PROTOCOL 2024-02-02 16:03:08 +01:00
README.rst tests: Rename 'qemuxml2argvtest' to 'qemuxmlconftest' 2024-01-17 17:31:12 +01:00

=========================
QEMU capabilities testing
=========================

Purpose
=======

Test data in this directory is used:

 - to excercise the capability parsing code in ``qemucapabilitiestest``

 - provides "real" capabilities data for test suites such as ``domaincapstest``
   ``qemuxmlconftest``, and others

 - provides the required data to validate the QMP commands used by libvirt
   against qemu's QMP schema

Naming
======

Files in this directory have the following naming scheme::

  caps_$QEMUVERSION_$ARCHITECTURE.$SUFFIX

or::

  caps_$QEMUVERSION_$ARCHITECTURE+$VARIANT.$SUFFIX

``$QEMUVERSION``

  Numeric representation of the qemu version, e.g.: ``7.0.0``

``$ARCHITECTURE``

  Architecture string such as ``x86_64``, ``aarch64``, etc.

``$SUFFIX``

  ``.replies`` for the dump of the QMP communication used to probe qemu.
  ``.xml`` for the generated capability dump

``$VARIANT``

  The variant name is an optional arbitrary string, not containing any dot.

  A variant is an additional named version of capabilities for given version and
  architecture tuple. This allows for testing special cases which e.g. depend
  on a specific host platform or operating system feature, which differs from
  the main tests. Note that in the test code the variant name is an empty string
  or includes the '+' sign for ease of use.

Known test variants
-------------------

``+hvf``

  Variant of the test data using the Apple OSX Hypervisor Framework acceleration
  for qemu.


Usage in tests
==============

Test suites such as ``qemucapabilitiestest`` or ``domaincapstest`` pick up the
test data automatically once the corresponding ``.xml`` or ``.replies`` file
is present in ``tests/qemucapabilitiesdata``.

Other test suites such as ``qemuxmlconftest`` provide macros which invoke test
cases using this data such as ``DO_TEST_CAPS_LATEST``.

Capturing QEMU capabilities
===========================

QEMU capabilities are captured by running the ``qemucapsprobe`` on the QEMU
binary on given architecture and then capturing the output. Since virtualization
acceleration is also probed it's required to run it on real hardware.

The capabilities dumps contain also host-specific information such as the exact
CPU definition of the machine where it was ran on, thus they can differ
significantly when run on other machines.

Probing QEMU
------------

Run the ``qemucapsprobe`` tool::

  $ LIBVIRT_BUILDDIR/tests/qemucapsprobe /path/to/qemu > output.replies

The tool spawns the qemu binary and performs probing as if libvirt would do that.
The QMP conversation between qemu and libvirt is dumped to stdout. User
running the probe must be able to access the virtualization accelerator (e.g.
have proper permissions on ``/dev/kvm``)

Generating the output files
---------------------------

Place the captured output ``.replies`` file into this directory and run::

  $ VIR_TEST_REGENERATE_OUTPUT=1 ninja test

This runs the test-suite instructing it to update and/or generate all new data
the test would normally expect.

Manual modifications the ``.replies`` file
==========================================

In certain cases it's impractical or impossible to re-generate the ``.replies``
file on a code change causing a change to the actual QMP query process.

In such case a careful manual modification of the ``.replies`` is tolerated.

To aid such modification the tool ``tests/qemucapabilitiesnumbering`` can be
used.

The tool validates and updates the numbering of the entries in the QMP dump in
case something was modified.

The tool also allows programatic modification of the ``.replies`` file.

See ``tests/qemucapabilitiesnumbering.c``.