The test filled the chardev type to VIR_DOMAIN_CHR_TYPE_FILE and thus set the 'data.emulator.source->data.file.path' pointer, but the commandline formatter is unconditionally expecting VIR_DOMAIN_CHR_TYPE_UNIX and thus reading 'data.emulator.source->data.nix.path'. Since it's an union it happened to land in the correct place. Fix the faked data. Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- tests/qemuxml2argvtest.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 1d0d6e14ba..a5d162958e 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -450,9 +450,9 @@ testCompareXMLToArgvCreateArgs(virQEMUDriver *drv, if (vm->def->tpms[i]->type != VIR_DOMAIN_TPM_TYPE_EMULATOR) continue; - VIR_FREE(vm->def->tpms[i]->data.emulator.source->data.file.path); - vm->def->tpms[i]->data.emulator.source->data.file.path = g_strdup("/dev/test"); - vm->def->tpms[i]->data.emulator.source->type = VIR_DOMAIN_CHR_TYPE_FILE; + VIR_FREE(vm->def->tpms[i]->data.emulator.source->data.nix.path); + vm->def->tpms[i]->data.emulator.source->type = VIR_DOMAIN_CHR_TYPE_UNIX; + vm->def->tpms[i]->data.emulator.source->data.nix.path = g_strdup("/dev/test"); } for (i = 0; i < vm->def->nvideos; i++) { -- 2.31.1