While checking for ABI stability, drivers might pose additional
checks that are not valid for general case. For instance, qemu
driver might check some memory backing attributes because of how
qemu works. But those attributes may work well in other drivers.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/conf/domain_conf.c | 19 ++++++++++++++++---
src/conf/domain_conf.h | 16 ++++++++++++++--
src/conf/snapshot_conf.c | 5 +++--
src/conf/snapshot_conf.h | 3 ++-
src/libxl/libxl_conf.c | 2 +-
src/libxl/libxl_domain.c | 4 +++-
src/lxc/lxc_conf.c | 3 ++-
src/openvz/openvz_driver.c | 2 +-
src/phyp/phyp_driver.c | 2 +-
src/qemu/qemu_capabilities.c | 2 +-
src/qemu/qemu_conf.c | 3 ++-
src/qemu/qemu_domain.c | 1 +
src/qemu/qemu_driver.c | 7 ++++---
src/test/test_driver.c | 8 +++++---
src/uml/uml_driver.c | 2 +-
src/vbox/vbox_common.c | 2 +-
src/vmware/vmware_driver.c | 2 +-
src/vmx/vmx.c | 2 +-
src/xen/xen_driver.c | 2 +-
src/xenapi/xenapi_driver.c | 2 +-
tests/qemuargv2xmltest.c | 2 +-
tests/qemuxml2argvtest.c | 2 +-
tests/sexpr2xmltest.c | 2 +-
tests/testutils.c | 4 ++--
tests/vmx2xmltest.c | 2 +-
tests/xlconfigtest.c | 2 +-
tests/xmconfigtest.c | 2 +-
tests/xml2sexprtest.c | 2 +-
tests/xml2vmxtest.c | 2 +-
29 files changed, 72 insertions(+), 37 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index ef5b9d7f4..ab34cddfa 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -76,6 +76,9 @@ struct _virDomainXMLOption {
/* XML namespace callbacks */
virDomainXMLNamespace ns;
+
+ /* ABI stability callbacks */
+ virDomainABIStability abi;
};
#define VIR_DOMAIN_DEF_FORMAT_COMMON_FLAGS \
@@ -1050,7 +1053,8 @@ virDomainKeyWrapDefParseXML(virDomainDefPtr def, xmlXPathContextPtr
ctxt)
virDomainXMLOptionPtr
virDomainXMLOptionNew(virDomainDefParserConfigPtr config,
virDomainXMLPrivateDataCallbacksPtr priv,
- virDomainXMLNamespacePtr xmlns)
+ virDomainXMLNamespacePtr xmlns,
+ virDomainABIStabilityPtr abi)
{
virDomainXMLOptionPtr xmlopt;
@@ -1069,6 +1073,9 @@ virDomainXMLOptionNew(virDomainDefParserConfigPtr config,
if (xmlns)
xmlopt->ns = *xmlns;
+ if (abi)
+ xmlopt->abi = *abi;
+
/* Technically this forbids to use one of Xerox's MAC address prefixes in
* our hypervisor drivers. This shouldn't ever be a problem.
*
@@ -19967,6 +19974,7 @@ virDomainDefVcpuCheckAbiStability(virDomainDefPtr src,
bool
virDomainDefCheckABIStabilityFlags(virDomainDefPtr src,
virDomainDefPtr dst,
+ virDomainXMLOptionPtr xmlopt,
unsigned int flags)
{
size_t i;
@@ -20368,6 +20376,10 @@ virDomainDefCheckABIStabilityFlags(virDomainDefPtr src,
!virDomainIOMMUDefCheckABIStability(src->iommu, dst->iommu))
goto error;
+ if (xmlopt && xmlopt->abi.domain &&
+ !xmlopt->abi.domain(src, dst))
+ goto error;
+
/* Coverity is not very happy with this - all dead_error_condition */
#if !STATIC_ANALYSIS
/* This switch statement is here to trigger compiler warning when adding
@@ -20427,9 +20439,10 @@ virDomainDefCheckABIStabilityFlags(virDomainDefPtr src,
bool
virDomainDefCheckABIStability(virDomainDefPtr src,
- virDomainDefPtr dst)
+ virDomainDefPtr dst,
+ virDomainXMLOptionPtr xmlopt)
{
- return virDomainDefCheckABIStabilityFlags(src, dst, 0);
+ return virDomainDefCheckABIStabilityFlags(src, dst, xmlopt, 0);
}
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 34a35965b..1f536b9bd 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2536,9 +2536,19 @@ struct _virDomainXMLPrivateDataCallbacks {
virDomainXMLPrivateDataParseFunc parse;
};
+typedef bool (*virDomainABIStabilityDomain)(const virDomainDef *src,
+ const virDomainDef *dst);
+
+typedef struct _virDomainABIStability virDomainABIStability;
+typedef virDomainABIStability *virDomainABIStabilityPtr;
+struct _virDomainABIStability {
+ virDomainABIStabilityDomain domain;
+};
+
virDomainXMLOptionPtr virDomainXMLOptionNew(virDomainDefParserConfigPtr config,
virDomainXMLPrivateDataCallbacksPtr priv,
- virDomainXMLNamespacePtr xmlns);
+ virDomainXMLNamespacePtr xmlns,
+ virDomainABIStabilityPtr abi);
void virDomainNetGenerateMAC(virDomainXMLOptionPtr xmlopt, virMacAddrPtr mac);
@@ -2805,10 +2815,12 @@ virDomainObjPtr virDomainObjParseFile(const char *filename,
unsigned int flags);
bool virDomainDefCheckABIStability(virDomainDefPtr src,
- virDomainDefPtr dst);
+ virDomainDefPtr dst,
+ virDomainXMLOptionPtr xmlopt);
bool virDomainDefCheckABIStabilityFlags(virDomainDefPtr src,
virDomainDefPtr dst,
+ virDomainXMLOptionPtr xmlopt,
unsigned int flags);
int virDomainDefAddImplicitDevices(virDomainDefPtr def);
diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c
index 5daa8d11a..cdba60b4d 100644
--- a/src/conf/snapshot_conf.c
+++ b/src/conf/snapshot_conf.c
@@ -1194,7 +1194,8 @@ virDomainSnapshotIsExternal(virDomainSnapshotObjPtr snap)
}
int
-virDomainSnapshotRedefinePrep(virDomainPtr domain,
+virDomainSnapshotRedefinePrep(virDomainXMLOptionPtr xmlopt,
+ virDomainPtr domain,
virDomainObjPtr vm,
virDomainSnapshotDefPtr *defptr,
virDomainSnapshotObjPtr *snap,
@@ -1286,7 +1287,7 @@ virDomainSnapshotRedefinePrep(virDomainPtr domain,
if (other->def->dom) {
if (def->dom) {
if (!virDomainDefCheckABIStability(other->def->dom,
- def->dom))
+ def->dom, xmlopt))
goto cleanup;
} else {
/* Transfer the domain def */
diff --git a/src/conf/snapshot_conf.h b/src/conf/snapshot_conf.h
index fcf7a1e82..a8a51d323 100644
--- a/src/conf/snapshot_conf.h
+++ b/src/conf/snapshot_conf.h
@@ -177,7 +177,8 @@ int virDomainListSnapshots(virDomainSnapshotObjListPtr snapshots,
bool virDomainSnapshotDefIsExternal(virDomainSnapshotDefPtr def);
bool virDomainSnapshotIsExternal(virDomainSnapshotObjPtr snap);
-int virDomainSnapshotRedefinePrep(virDomainPtr domain,
+int virDomainSnapshotRedefinePrep(virDomainXMLOptionPtr xmlopt,
+ virDomainPtr domain,
virDomainObjPtr vm,
virDomainSnapshotDefPtr *def,
virDomainSnapshotObjPtr *snap,
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index c56b05b38..886dc629f 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -2255,5 +2255,5 @@ libxlCreateXMLConf(void)
{
return virDomainXMLOptionNew(&libxlDomainDefParserConfig,
&libxlDomainXMLPrivateDataCallbacks,
- NULL);
+ NULL, NULL);
}
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index 256cf1dc1..68a501cf1 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -1452,7 +1452,9 @@ libxlDomainDefCheckABIStability(libxlDriverPrivatePtr driver,
!(migratableDefDst = virDomainDefCopy(dst, cfg->caps, driver->xmlopt, NULL,
true)))
goto cleanup;
- ret = virDomainDefCheckABIStability(migratableDefSrc, migratableDefDst);
+ ret = virDomainDefCheckABIStability(migratableDefSrc,
+ migratableDefDst,
+ driver->xmlopt);
cleanup:
virDomainDefFree(migratableDefSrc);
diff --git a/src/lxc/lxc_conf.c b/src/lxc/lxc_conf.c
index 508b98ba2..ff975decc 100644
--- a/src/lxc/lxc_conf.c
+++ b/src/lxc/lxc_conf.c
@@ -215,7 +215,8 @@ lxcDomainXMLConfInit(void)
{
return virDomainXMLOptionNew(&virLXCDriverDomainDefParserConfig,
&virLXCDriverPrivateDataCallbacks,
- &virLXCDriverDomainXMLNamespace);
+ &virLXCDriverDomainXMLNamespace,
+ NULL);
}
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
index 9c4a19635..8e305a85c 100644
--- a/src/openvz/openvz_driver.c
+++ b/src/openvz/openvz_driver.c
@@ -1483,7 +1483,7 @@ static virDrvOpenStatus openvzConnectOpen(virConnectPtr conn,
goto cleanup;
if (!(driver->xmlopt = virDomainXMLOptionNew(&openvzDomainDefParserConfig,
- NULL, NULL)))
+ NULL, NULL, NULL)))
goto cleanup;
if (openvzLoadDomains(driver) < 0)
diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
index 0cc288f36..4465ac862 100644
--- a/src/phyp/phyp_driver.c
+++ b/src/phyp/phyp_driver.c
@@ -1202,7 +1202,7 @@ phypConnectOpen(virConnectPtr conn,
goto failure;
if (!(phyp_driver->xmlopt =
virDomainXMLOptionNew(&virPhypDriverDomainDefParserConfig,
- NULL, NULL)))
+ NULL, NULL, NULL)))
goto failure;
conn->privateData = phyp_driver;
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 546dfd759..3af9a9601 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -5024,7 +5024,7 @@ virQEMUCapsInitQMPCommandRun(virQEMUCapsInitQMPCommandPtr cmd,
goto ignore;
}
- if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL)) ||
+ if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL, NULL)) ||
!(cmd->vm = virDomainObjNew(xmlopt)))
goto cleanup;
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 19ddf787d..78f55c0e7 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -909,7 +909,8 @@ virQEMUDriverCreateXMLConf(virQEMUDriverPtr driver)
virQEMUDriverDomainDefParserConfig.priv = driver;
return virDomainXMLOptionNew(&virQEMUDriverDomainDefParserConfig,
&virQEMUDriverPrivateDataCallbacks,
- &virQEMUDriverDomainXMLNamespace);
+ &virQEMUDriverDomainXMLNamespace,
+ NULL);
}
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index c8dc74813..35fd79de8 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -5816,6 +5816,7 @@ qemuDomainDefCheckABIStability(virQEMUDriverPtr driver,
if (!virDomainDefCheckABIStabilityFlags(migratableDefSrc,
migratableDefDst,
+ driver->xmlopt,
check_flags))
goto cleanup;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index cd513ff9f..f5f4a39c0 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -6130,7 +6130,7 @@ qemuDomainSaveImageUpdateDef(virQEMUDriverPtr driver,
VIR_DOMAIN_XML_MIGRATABLE)))
goto cleanup;
- if (!virDomainDefCheckABIStability(def, newdef_migr)) {
+ if (!virDomainDefCheckABIStability(def, newdef_migr, driver->xmlopt)) {
virErrorPtr err = virSaveLastError();
/* Due to a bug in older version of external snapshot creation
@@ -6139,7 +6139,7 @@ qemuDomainSaveImageUpdateDef(virQEMUDriverPtr driver,
* saved XML type, we need to check the ABI compatibility against
* the user provided XML if the check against the migratable XML
* fails. Snapshots created prior to v1.1.3 have this issue. */
- if (!virDomainDefCheckABIStability(def, newdef)) {
+ if (!virDomainDefCheckABIStability(def, newdef, driver->xmlopt)) {
virSetError(err);
virFreeError(err);
goto cleanup;
@@ -14583,7 +14583,8 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain,
qemuDomainObjSetAsyncJobMask(vm, QEMU_JOB_NONE);
if (redefine) {
- if (virDomainSnapshotRedefinePrep(domain, vm, &def, &snap,
+ if (virDomainSnapshotRedefinePrep(driver->xmlopt,
+ domain, vm, &def, &snap,
&update_current, flags) < 0)
goto endjob;
} else {
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 2db3f7ddf..a644e5ccf 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -414,7 +414,7 @@ testDriverNew(void)
goto error;
}
- if (!(ret->xmlopt = virDomainXMLOptionNew(NULL, NULL, &ns)) ||
+ if (!(ret->xmlopt = virDomainXMLOptionNew(NULL, NULL, &ns, NULL)) ||
!(ret->eventState = virObjectEventStateNew()) ||
!(ret->domains = virDomainObjListNew()) ||
!(ret->networks = virNetworkObjListNew()))
@@ -6359,7 +6359,8 @@ testDomainSnapshotCreateXML(virDomainPtr domain,
goto cleanup;
if (redefine) {
- if (virDomainSnapshotRedefinePrep(domain, vm, &def, &snap,
+ if (virDomainSnapshotRedefinePrep(privconn->xmlopt,
+ domain, vm, &def, &snap,
&update_current, flags) < 0)
goto cleanup;
} else {
@@ -6635,7 +6636,8 @@ testDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
if (virDomainObjIsActive(vm)) {
/* Transitions 5, 6, 8, 9 */
/* Check for ABI compatibility. */
- if (!virDomainDefCheckABIStability(vm->def, config)) {
+ if (!virDomainDefCheckABIStability(vm->def, config,
+ privconn->xmlopt)) {
virErrorPtr err = virGetLastError();
if (!(flags & VIR_DOMAIN_SNAPSHOT_REVERT_FORCE)) {
diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c
index 03edc897c..58ab033c8 100644
--- a/src/uml/uml_driver.c
+++ b/src/uml/uml_driver.c
@@ -533,7 +533,7 @@ umlStateInitialize(bool privileged,
goto out_of_memory;
if (!(uml_driver->xmlopt =
virDomainXMLOptionNew(¨DriverDomainDefParserConfig,
- &privcb, NULL)))
+ &privcb, NULL, NULL)))
goto error;
if ((uml_driver->inotifyFD = inotify_init()) < 0) {
diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
index d6d363e45..c66939e01 100644
--- a/src/vbox/vbox_common.c
+++ b/src/vbox/vbox_common.c
@@ -142,7 +142,7 @@ vboxDriverObjNew(void)
if (!(driver->caps = vboxCapsInit()) ||
!(driver->xmlopt = virDomainXMLOptionNew(&vboxDomainDefParserConfig,
- NULL, NULL)))
+ NULL, NULL, NULL)))
goto cleanup;
return driver;
diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c
index 685365833..9e369e67b 100644
--- a/src/vmware/vmware_driver.c
+++ b/src/vmware/vmware_driver.c
@@ -114,7 +114,7 @@ vmwareDomainXMLConfigInit(void)
virDomainXMLPrivateDataCallbacks priv = { .alloc = vmwareDataAllocFunc,
.free = vmwareDataFreeFunc };
- return virDomainXMLOptionNew(&vmwareDomainDefParserConfig, &priv, NULL);
+ return virDomainXMLOptionNew(&vmwareDomainDefParserConfig, &priv, NULL,
NULL);
}
static virDrvOpenStatus
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index 31af2e9df..3289a2002 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -591,7 +591,7 @@ virDomainXMLOptionPtr
virVMXDomainXMLConfInit(void)
{
return virDomainXMLOptionNew(&virVMXDomainDefParserConfig, NULL,
- &virVMXDomainXMLNamespace);
+ &virVMXDomainXMLNamespace, NULL);
}
char *
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
index 4d1408927..f81ee20ad 100644
--- a/src/xen/xen_driver.c
+++ b/src/xen/xen_driver.c
@@ -401,7 +401,7 @@ virDomainXMLOptionPtr
xenDomainXMLConfInit(void)
{
return virDomainXMLOptionNew(&xenDomainDefParserConfig,
- NULL, NULL);
+ NULL, NULL, NULL);
}
diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c
index 37d1a6fd9..380c3a1de 100644
--- a/src/xenapi/xenapi_driver.c
+++ b/src/xenapi/xenapi_driver.c
@@ -200,7 +200,7 @@ xenapiConnectOpen(virConnectPtr conn, virConnectAuthPtr auth,
}
if (!(privP->xmlopt = virDomainXMLOptionNew(&xenapiDomainDefParserConfig,
- NULL, NULL))) {
+ NULL, NULL, NULL))) {
xenapiSessionErrorHandler(conn, VIR_ERR_INTERNAL_ERROR,
_("Failed to create XML conf object"));
goto error;
diff --git a/tests/qemuargv2xmltest.c b/tests/qemuargv2xmltest.c
index 0b519a460..1adbcfef6 100644
--- a/tests/qemuargv2xmltest.c
+++ b/tests/qemuargv2xmltest.c
@@ -95,7 +95,7 @@ static int testCompareXMLToArgvFiles(const char *xmlfile,
if (testSanitizeDef(vmdef) < 0)
goto fail;
- if (!virDomainDefCheckABIStability(vmdef, vmdef)) {
+ if (!virDomainDefCheckABIStability(vmdef, vmdef, driver.xmlopt)) {
VIR_TEST_DEBUG("ABI stability check failed on %s", xmlfile);
goto fail;
}
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 426959857..4c5b80011 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -463,7 +463,7 @@ testCompareXMLToArgv(const void *data)
if (virBitmapParse("0-3", &priv->autoNodeset, 4) < 0)
goto cleanup;
- if (!virDomainDefCheckABIStability(vm->def, vm->def)) {
+ if (!virDomainDefCheckABIStability(vm->def, vm->def, driver.xmlopt)) {
VIR_TEST_DEBUG("ABI stability check failed on %s", xml);
goto cleanup;
}
diff --git a/tests/sexpr2xmltest.c b/tests/sexpr2xmltest.c
index 107509b31..5dfc45d7d 100644
--- a/tests/sexpr2xmltest.c
+++ b/tests/sexpr2xmltest.c
@@ -57,7 +57,7 @@ testCompareFiles(const char *xml, const char *sexpr)
tty, vncport, caps, xmlopt)))
goto fail;
- if (!virDomainDefCheckABIStability(def, def)) {
+ if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
fprintf(stderr, "ABI stability check failed on %s", xml);
goto fail;
}
diff --git a/tests/testutils.c b/tests/testutils.c
index 817fffa04..4fb2338bb 100644
--- a/tests/testutils.c
+++ b/tests/testutils.c
@@ -1136,7 +1136,7 @@ virDomainXMLOptionPtr virTestGenericDomainXMLConfInit(void)
{
return virDomainXMLOptionNew(&virTestGenericDomainDefParserConfig,
&virTestGenericPrivateDataCallbacks,
- NULL);
+ NULL, NULL);
}
@@ -1169,7 +1169,7 @@ testCompareDomXML2XMLFiles(virCapsPtr caps, virDomainXMLOptionPtr
xmlopt,
goto out;
}
- if (!virDomainDefCheckABIStability(def, def)) {
+ if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
VIR_TEST_DEBUG("ABI stability check failed on %s", infile);
result = TEST_COMPARE_DOM_XML2XML_RESULT_FAIL_STABILITY;
goto out;
diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c
index 4eedbac2b..00385dfa7 100644
--- a/tests/vmx2xmltest.c
+++ b/tests/vmx2xmltest.c
@@ -81,7 +81,7 @@ testCompareFiles(const char *vmx, const char *xml)
if (!(def = virVMXParseConfig(&ctx, xmlopt, caps, vmxData)))
goto cleanup;
- if (!virDomainDefCheckABIStability(def, def)) {
+ if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
fprintf(stderr, "ABI stability check failed on %s", vmx);
goto cleanup;
}
diff --git a/tests/xlconfigtest.c b/tests/xlconfigtest.c
index 05f7c2042..3fe42988d 100644
--- a/tests/xlconfigtest.c
+++ b/tests/xlconfigtest.c
@@ -97,7 +97,7 @@ testCompareParseXML(const char *xlcfg, const char *xml, bool
replaceVars)
goto fail;
}
- if (!virDomainDefCheckABIStability(def, def)) {
+ if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
fprintf(stderr, "ABI stability check failed on %s", xml);
goto fail;
}
diff --git a/tests/xmconfigtest.c b/tests/xmconfigtest.c
index aa3845bf0..345223ffe 100644
--- a/tests/xmconfigtest.c
+++ b/tests/xmconfigtest.c
@@ -67,7 +67,7 @@ testCompareParseXML(const char *xmcfg, const char *xml)
VIR_DOMAIN_DEF_PARSE_INACTIVE)))
goto fail;
- if (!virDomainDefCheckABIStability(def, def)) {
+ if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
fprintf(stderr, "ABI stability check failed on %s", xml);
goto fail;
}
diff --git a/tests/xml2sexprtest.c b/tests/xml2sexprtest.c
index fddccf029..0ba8a765b 100644
--- a/tests/xml2sexprtest.c
+++ b/tests/xml2sexprtest.c
@@ -31,7 +31,7 @@ testCompareFiles(const char *xml, const char *sexpr)
VIR_DOMAIN_DEF_PARSE_INACTIVE)))
goto fail;
- if (!virDomainDefCheckABIStability(def, def)) {
+ if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
fprintf(stderr, "ABI stability check failed on %s", xml);
goto fail;
}
diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c
index 71c4cb9dc..13f53e7d2 100644
--- a/tests/xml2vmxtest.c
+++ b/tests/xml2vmxtest.c
@@ -82,7 +82,7 @@ testCompareFiles(const char *xml, const char *vmx, int
virtualHW_version)
if (def == NULL)
goto failure;
- if (!virDomainDefCheckABIStability(def, def)) {
+ if (!virDomainDefCheckABIStability(def, def, xmlopt)) {
fprintf(stderr, "ABI stability check failed on %s", xml);
goto failure;
}
--
2.13.0