From 69dde2e6538f99edca3c8738e1d72e5179829632 Mon Sep 17 00:00:00 2001 From: Michael Ellerman Date: Fri, 13 Jan 2012 14:39:24 +1100 Subject: [PATCH] tests: Teach qemuxml2argvtest about spapr-vio addresses We can't call qemuCapsExtractVersionInfo() from test code, because it expects to be able to call the emulator, and for testing we have fake emulators that can't be executed. For that reason qemuxml2argvtest.c doesn't call qemuDomainAssignPCIAddresses(), instead it open codes its own version. That means we can't call qemuDomainAssignAddresses() from the test code, instead we need to manually call qemuDomainAssignSpaprVioAddresses(). Also add logic to cope with qemuDomainAssignSpaprVioAddresses() failing, so that we can write a test that checks for a known failure in there. Signed-off-by: Michael Ellerman --- src/qemu/qemu_command.c | 2 +- src/qemu/qemu_command.h | 1 + tests/qemuxml2argvtest.c | 18 +++++++++++++----- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 00da72e5e6..98824ac95a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -735,7 +735,7 @@ qemuAssignSpaprVIOAddress(virDomainDefPtr def, virDomainDeviceInfoPtr info, return 0; } -static int qemuDomainAssignSpaprVIOAddresses(virDomainDefPtr def) +int qemuDomainAssignSpaprVIOAddresses(virDomainDefPtr def) { int i, rc; diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index de61cf30de..2f8b5bac7a 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -175,6 +175,7 @@ virDomainDefPtr qemuParseCommandLinePid(virCapsPtr caps, bool *monJSON); int qemuDomainAssignAddresses(virDomainDefPtr def); +int qemuDomainAssignSpaprVIOAddresses(virDomainDefPtr def); int qemuDomainAssignPCIAddresses(virDomainDefPtr def); qemuDomainPCIAddressSetPtr qemuDomainPCIAddressSetCreate(virDomainDefPtr def); diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 7d09fb8016..74d4f17484 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -153,6 +153,13 @@ static int testCompareXMLToArgvFiles(const char *xml, if (qemuCapsGet(extraFlags, QEMU_CAPS_DEVICE)) { qemuDomainPCIAddressSetPtr pciaddrs; + + if (qemuDomainAssignSpaprVIOAddresses(vmdef)) { + if (expectError) + goto ok; + goto fail; + } + if (!(pciaddrs = qemuDomainPCIAddressSetCreate(vmdef))) goto fail; @@ -190,11 +197,6 @@ static int testCompareXMLToArgvFiles(const char *xml, goto fail; } - if (expectError) { - /* need to suppress the errors */ - virResetLastError(); - } - if (!(actualargv = virCommandToString(cmd))) goto fail; @@ -212,6 +214,12 @@ static int testCompareXMLToArgvFiles(const char *xml, goto fail; } + ok: + if (expectError) { + /* need to suppress the errors */ + virResetLastError(); + } + ret = 0; fail: