We currently ignore unknown elements in the CPU XML description, e.g.
with virsh cpu-compare and hypervisor-cpu-compare. This makes
'<cpu><faeture name=3D"..."/></cpu>' (note the typo in
"faeture")
semantically identic to '<cpu/>'. No error is reported.
This series adds checks for unrecognized attributes and elements in
the "<cpu>" element, catching this kind of mistake.
V1:
https://www.redhat.com/archives/libvir-list/2020-September/msg00933.html
V2:
https://www.redhat.com/archives/libvir-list/2020-September/msg01073.html
V3:
https://www.redhat.com/archives/libvir-list/2020-September/msg01555.html
Changed:
* Some patches from V3 are merged
* Changes to commit messages
* Perform testing by means of virschematest
Tim Wiederhake (5):
schema: Make element "topology" in host CPU definition optional
cpu: Wire in XML validation
tests: Rename some test files in cputestdata
tests: Enable CPU XML validation in the tests.
virsh: Add "validate" argument to [hypervisor-]cpu-compare
docs/manpages/virsh.rst | 9 ++--
docs/schemas/cpu_test.rng | 48 +++++++++++++++++++
docs/schemas/cputypes.rng | 24 +++++-----
docs/schemas/meson.build | 1 +
include/libvirt/libvirt-host.h | 2 +
src/bhyve/bhyve_driver.c | 7 ++-
src/conf/cpu_conf.c | 25 ++++++++--
src/conf/cpu_conf.h | 6 ++-
src/conf/domain_conf.c | 3 +-
src/cpu/cpu.c | 5 +-
src/cpu/cpu.h | 3 +-
src/libxl/libxl_driver.c | 7 ++-
src/qemu/qemu_domain.c | 5 +-
src/qemu/qemu_driver.c | 18 +++++--
src/qemu/qemu_migration_cookie.c | 3 +-
tests/cputest.c | 15 +++---
...invalid.xml =3D> ppc64-guest-compat-bad.xml} | 0
...invalid.xml =3D> ppc64-guest-legacy-bad.xml} | 0
...id.xml =3D> ppc64-host+guest-compat-bad.xml} | 0
...id.xml =3D> ppc64-host+guest-legacy-bad.xml} | 0
tests/virschematest.c | 1 +
tools/virsh-host.c | 14 ++++++
22 files changed, 153 insertions(+), 43 deletions(-)
create mode 100644 docs/schemas/cpu_test.rng
rename tests/cputestdata/{ppc64-guest-compat-invalid.xml =3D> ppc64-guest-co=
mpat-bad.xml} (100%)
rename tests/cputestdata/{ppc64-guest-legacy-invalid.xml =3D> ppc64-guest-le=
gacy-bad.xml} (100%)
rename tests/cputestdata/{ppc64-host+guest-compat-invalid.xml =3D> ppc64-hos=
t+guest-compat-bad.xml} (100%)
rename tests/cputestdata/{ppc64-host+guest-legacy-invalid.xml =3D> ppc64-hos=
t+guest-legacy-bad.xml} (100%)
--=20
2.26.2