There are a mind bending number of possible ways to configure the firmware with/without NVRAM. Only a small portion are tested and many error scenarios are silently ignored. This series attempts to get coverage of every possible XML config scenario and report explicit errors in all invalid configs. There is an open question on patch 4. Essentially the use of NVRAM combined with writable executable feels like an accidental feature in libvirt that hasn't really been thought through. I'd like to better define expectations here but there are several possible strategies and I'm undecided which is best. Daniel P. Berrangé (10): qemu: fix bad indentation for qemuDomainNVRAMPathFormat tests: add explicit test case for pflash loader lacking path tests: add test case for NVRAM with template conf: validate NVRAM template usage with R/W loader binary tests: don't permit NVRAM path when using firmware auto-select qemu: inline code for filling in per-VM NVRAM path conf: rename struct field for NVRAM template conf: switch nvram parsing to use XML node / property helpers conf: move nvram parsing into virDomainLoaderDefParseXML conf: stop ignoring <loader>/<nvram> with firmware auto-select src/conf/domain_conf.c | 121 +++++++++++------- src/conf/domain_conf.h | 2 +- src/qemu/qemu_domain.c | 18 +-- src/qemu/qemu_domain.h | 8 +- src/qemu/qemu_firmware.c | 13 +- src/qemu/qemu_process.c | 4 +- tests/qemuxml2argvdata/bios-nvram-no-path.err | 1 + tests/qemuxml2argvdata/bios-nvram-no-path.xml | 19 +++ ...-nvram-rw-template-vars.x86_64-latest.args | 41 ++++++ .../bios-nvram-rw-template-vars.xml | 36 ++++++ .../bios-nvram-rw-template.err | 1 + .../bios-nvram-rw-template.xml | 36 ++++++ .../bios-nvram-rw-vars.x86_64-latest.args | 41 ++++++ tests/qemuxml2argvdata/bios-nvram-rw-vars.xml | 36 ++++++ .../bios-nvram-template.x86_64-latest.args | 37 ++++++ .../qemuxml2argvdata/bios-nvram-template.xml | 21 +++ tests/qemuxml2argvdata/os-firmware-bios.xml | 1 - .../os-firmware-efi-bad-loader-path.err | 1 + .../os-firmware-efi-bad-loader-path.xml | 67 ++++++++++ .../os-firmware-efi-bad-loader-type.err | 1 + .../os-firmware-efi-bad-loader-type.xml | 67 ++++++++++ .../os-firmware-efi-bad-nvram-path.err | 1 + .../os-firmware-efi-bad-nvram-path.xml | 68 ++++++++++ .../os-firmware-efi-bad-nvram-template.err | 1 + .../os-firmware-efi-bad-nvram-template.xml | 68 ++++++++++ .../os-firmware-efi-secboot.xml | 1 - tests/qemuxml2argvdata/os-firmware-efi.xml | 1 - tests/qemuxml2argvtest.c | 9 ++ .../os-firmware-bios.x86_64-latest.xml | 1 - .../os-firmware-efi-secboot.x86_64-latest.xml | 1 - .../os-firmware-efi.x86_64-latest.xml | 1 - 31 files changed, 647 insertions(+), 77 deletions(-) create mode 100644 tests/qemuxml2argvdata/bios-nvram-no-path.err create mode 100644 tests/qemuxml2argvdata/bios-nvram-no-path.xml create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template-vars.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template-vars.xml create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template.err create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-template.xml create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-vars.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/bios-nvram-rw-vars.xml create mode 100644 tests/qemuxml2argvdata/bios-nvram-template.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/bios-nvram-template.xml create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-path.err create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-path.xml create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-type.err create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-loader-type.xml create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.err create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-path.xml create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-template.err create mode 100644 tests/qemuxml2argvdata/os-firmware-efi-bad-nvram-template.xml -- 2.34.1