static int testCompareXMLToXMLFiles(const char *inxml, const char *outxml, const char *uuid, bool internal, bool redefine) { char *inXmlData = NULL; char *outXmlData = NULL; char *actual = NULL; int ret = -1; virDomainSnapshotDefPtr def = NULL; unsigned int flags = VIR_DOMAIN_SNAPSHOT_PARSE_DISKS; if (internal) flags |= VIR_DOMAIN_SNAPSHOT_PARSE_INTERNAL; if (redefine) flags |= VIR_DOMAIN_SNAPSHOT_PARSE_REDEFINE; if (virtTestLoadFile(inxml, &inXmlData) < 0) goto cleanup; if (virtTestLoadFile(outxml, &outXmlData) < 0) goto cleanup; if (!(def = virDomainSnapshotDefParseString(inXmlData, driver.caps, driver.xmlopt, QEMU_EXPECTED_VIRT_TYPES, flags))) goto cleanup; if (!(actual = virDomainSnapshotDefFormat(uuid, def, VIR_DOMAIN_XML_SECURE, internal))) goto cleanup; if (!redefine) { if (!(actual = testFilterXML(actual))) goto cleanup; if (!(outXmlData = testFilterXML(outXmlData))) goto cleanup; } if (STRNEQ(outXmlData, actual)) { virtTestDifference(stderr, outXmlData, actual); goto cleanup; } ret = 0; cleanup: VIR_FREE(inXmlData); VIR_FREE(outXmlData); VIR_FREE(actual); virDomainSnapshotDefFree(def); return ret; }
static int testCompareXMLToXMLFiles(const char *inxml, const char *uuid, int internal) { char *inXmlData = NULL; char *actual = NULL; int ret = -1; virDomainSnapshotDefPtr def = NULL; unsigned int flags = (VIR_DOMAIN_SNAPSHOT_PARSE_REDEFINE | VIR_DOMAIN_SNAPSHOT_PARSE_DISKS); if (virtTestLoadFile(inxml, &inXmlData) < 0) goto fail; if (internal) flags |= VIR_DOMAIN_SNAPSHOT_PARSE_INTERNAL; if (!(def = virDomainSnapshotDefParseString(inXmlData, driver.caps, driver.xmlopt, QEMU_EXPECTED_VIRT_TYPES, flags))) goto fail; if (!(actual = virDomainSnapshotDefFormat(uuid, def, VIR_DOMAIN_XML_SECURE, internal))) goto fail; if (STRNEQ(inXmlData, actual)) { virtTestDifference(stderr, inXmlData, actual); goto fail; } ret = 0; fail: VIR_FREE(inXmlData); VIR_FREE(actual); virDomainSnapshotDefFree(def); return ret; }