On Mon, Aug 19, 2024 at 12:00:56 +0200, Anthony Harivel wrote:
Hi,
I'm trying to implement the libvirt part of a new feature that has
landed in QEMU staging [1].
The current draft of this implementations is the following [2].
It compiles on top of master.
But when I want to run the tests suites, I hit an issue I don't managed
to find the problem.
It runs until:
[...]
278/279 libvirt:bin / qemuxmlconftest FAIL 8.63s exit status 1
[...]
then it tells me to run the following to understand the issue:
VIR_TEST_DEBUG=1 VIR_TEST_RANGE=850-851,854-855
/home/aharivel/work/libvirt/build/tests/qemuxmlconftest
It outputs this:
[...]
850) QEMU XML def -> XML kvm-features.x86_64-latest ...
In
'/home/aharivel/work/libvirt/tests/qemuxmlconfdata/kvm-features.x86_64-latest.xml':
Offset 533
Expect [ socket='/run/qemu-vmsr-helper.sock'/]
Actual [/]
These test cases parse an XML and format it back.
You've got a bug in the code formatting the socket into the XML:
if (def->kvm_features->socket == NULL) {
virBufferAsprintf(&childBuf, "
socket='%s'/>\n",
def->kvm_features->socket);
} else {
virBufferAddLit(&childBuf, "/>\n");
}
The above hunk formats the socket only if it's NULL, and skips it if
it's non-null (inverted condition).
851) QEMU XML OUT -> XML kvm-features.x86_64-latest
...
In
'/home/aharivel/work/libvirt/tests/qemuxmlconfdata/kvm-features.x86_64-latest.xml':
Offset 533
Expect [ socket='/run/qemu-vmsr-helper.sock'/]
Actual [/]
So it's missing in the output file when you provide it in the input
file.
... FAILED
854) QEMU XML def -> XML kvm-features-off.x86_64-latest ...
In
'/home/aharivel/work/libvirt/tests/qemuxmlconfdata/kvm-features-off.x86_64-latest.xml':
Offset 527
Expect [/]
Actual [ socket='(null)'/]
And formats it when it's NULL.
... FAILED
855) QEMU XML OUT -> XML kvm-features-off.x86_64-latest ...
In
'/home/aharivel/work/libvirt/tests/qemuxmlconfdata/kvm-features-off.x86_64-latest.xml':
Offset 527
Expect [/]
Actual [ socket='(null)'/]
[...] ... FAILED