Tree @debian/5.0.0-1 (Download .tar.gz)
- ..
- bhyveargv2xmldata
- bhyvexml2argvdata
- bhyvexml2xmloutdata
- capabilityschemadata
- commanddata
- cputestdata
- domaincapsschemadata
- domainconfdata
- domainschemadata
- domainsnapshotxml2xmlin
- domainsnapshotxml2xmlout
- fchostdata
- genericxml2xmlindata
- genericxml2xmloutdata
- interfaceschemadata
- libxlxml2domconfigdata
- lxcconf2xmldata
- lxcxml2xmldata
- lxcxml2xmloutdata
- networkxml2confdata
- networkxml2firewalldata
- networkxml2xmlin
- networkxml2xmlout
- networkxml2xmlupdatein
- networkxml2xmlupdateout
- nodedevschemadata
- nssdata
- nwfilterxml2firewalldata
- nwfilterxml2xmlin
- nwfilterxml2xmlout
- qemuagentdata
- qemuargv2xmldata
- qemublocktestdata
- qemucapabilitiesdata
- qemucaps2xmloutdata
- qemuhotplugtestcpus
- qemuhotplugtestdevices
- qemuhotplugtestdomains
- qemumemlockdata
- qemumigparamsdata
- qemumonitorjsondata
- qemustatusxml2xmldata
- qemuxml2argvdata
- qemuxml2startupxmloutdata
- qemuxml2xmloutdata
- secretxml2xmlin
- securityselinuxhelperdata
- securityselinuxlabeldata
- sexpr2xmldata
- storagepoolschemadata
- storagepoolxml2argvdata
- storagepoolxml2xmlin
- storagepoolxml2xmlout
- storagevolschemadata
- storagevolxml2argvdata
- storagevolxml2xmlin
- storagevolxml2xmlout
- sysinfodata
- vboxsnapshotxmldata
- vircaps2xmldata
- vircgroupdata
- virconfdata
- virfilecachedata
- virfiledata
- virhostcpudata
- virjsondata
- virmacmaptestdata
- virnetdaemondata
- virnetdevtestdata
- virnwfilterbindingxml2xmldata
- virpcitestdata
- virresctrldata
- virscsidata
- virstorageutildata
- virusbtestdata
- vmwareverdata
- vmx2xmldata
- xlconfigdata
- xmconfigdata
- xml2sexprdata
- xml2vmxdata
- .valgrind.supp
- bhyveargv2xmlmock.c
- bhyveargv2xmltest.c
- bhyvexml2argvmock.c
- bhyvexml2argvtest.c
- bhyvexml2xmltest.c
- check-file-access.pl
- commandhelper.c
- commandtest.c
- cputest.c
- domaincapsmock.c
- domaincapstest.c
- domainconftest.c
- domainsnapshotxml2xmltest.c
- esxutilstest.c
- eventtest.c
- fchosttest.c
- fdstreamtest.c
- file_access_whitelist.txt
- genericxml2xmltest.c
- interfacexml2xmltest.c
- libvirtd-fail
- libvirtd-pool
- libxlxml2domconfigtest.c
- lxcconf2xmltest.c
- lxcxml2xmltest.c
- Makefile.am
- Makefile.in
- metadatatest.c
- networkxml2conftest.c
- networkxml2firewalltest.c
- networkxml2xmltest.c
- networkxml2xmlupdatetest.c
- nodedevxml2xmltest.c
- nsslinktest.c
- nssmock.c
- nsstest.c
- nwfilterebiptablestest.c
- nwfilterxml2firewalltest.c
- nwfilterxml2xmltest.c
- objecteventtest.c
- objectlocking.ml
- oomtrace.pl
- openvzutilstest.c
- openvzutilstest.conf
- pkix_asn1_tab.c
- qemuagenttest.c
- qemuargv2xmltest.c
- qemublocktest.c
- qemucapabilitiestest.c
- qemucaps2xmlmock.c
- qemucaps2xmltest.c
- qemucapsprobe.c
- qemucapsprobemock.c
- qemucommandutiltest.c
- qemucpumock.c
- qemuhotplugtest.c
- qemumemlocktest.c
- qemumigparamstest.c
- qemumonitorjsontest.c
- qemumonitortestutils.c
- qemumonitortestutils.h
- qemusecuritymock.c
- qemusecuritytest.c
- qemusecuritytest.h
- qemuxml2argvmock.c
- qemuxml2argvtest.c
- qemuxml2xmltest.c
- scsihosttest.c
- seclabeltest.c
- secretxml2xmltest.c
- securityselinuxhelper.c
- securityselinuxlabeltest.c
- securityselinuxtest.c
- sexpr2xmltest.c
- shunloadhelper.c
- shunloadtest.c
- sockettest.c
- ssh.c
- storagebackendsheepdogtest.c
- storagepoolxml2argvtest.c
- storagepoolxml2xmltest.c
- storagevolxml2argvtest.c
- storagevolxml2xmltest.c
- sysinfotest.c
- test-lib.sh
- testutils.c
- testutils.h
- testutilshostcpus.h
- testutilslxc.c
- testutilslxc.h
- testutilsqemu.c
- testutilsqemu.h
- testutilsqemuschema.c
- testutilsqemuschema.h
- testutilsxen.c
- testutilsxen.h
- utiltest.c
- vboxsnapshotxmltest.c
- viralloctest.c
- viratomictest.c
- virauthconfigtest.c
- virbitmaptest.c
- virbuftest.c
- vircaps2xmltest.c
- vircapstest.c
- vircgroupmock.c
- vircgrouptest.c
- virconftest.c
- vircryptotest.c
- virdbusmock.c
- virdbustest.c
- virdeterministichashmock.c
- virdrivermoduletest.c
- virendiantest.c
- virerrortest.c
- virfilecachemock.c
- virfilecachetest.c
- virfilemock.c
- virfiletest.c
- virfilewrapper.c
- virfilewrapper.h
- virfirewalltest.c
- virhashdata.h
- virhashtest.c
- virhostcpumock.c
- virhostcputest.c
- virhostdevtest.c
- viridentitytest.c
- viriscsitest.c
- virjsontest.c
- virkeycodetest.c
- virkeyfiletest.c
- virkmodtest.c
- virlockspacetest.c
- virlogtest.c
- virmacmaptest.c
- virmock.h
- virmocklibxl.c
- virnetdaemonmock.c
- virnetdaemontest.c
- virnetdevbandwidthmock.c
- virnetdevbandwidthtest.c
- virnetdevmock.c
- virnetdevtest.c
- virnetmessagetest.c
- virnetserverclientmock.c
- virnetserverclienttest.c
- virnetsockettest.c
- virnettlscontexttest.c
- virnettlshelpers.c
- virnettlshelpers.h
- virnettlssessiontest.c
- virnumamock.c
- virnwfilterbindingxml2xmltest.c
- virpcimock.c
- virpcitest.c
- virpolkittest.c
- virportallocatormock.c
- virportallocatortest.c
- virrandommock.c
- virresctrltest.c
- virrotatingfiletest.c
- virschematest.c
- virscsitest.c
- virsh-cpuset
- virsh-define-dev-segfault
- virsh-int-overflow
- virsh-optparse
- virsh-read-bufsiz
- virsh-read-non-seekable
- virsh-schedinfo
- virsh-self-test
- virsh-start
- virsh-undefine
- virsh-uriprecedence
- virsh-vcpupin
- virshtest.c
- virstoragetest.c
- virstorageutiltest.c
- virstringtest.c
- virsystemdtest.c
- virt-aa-helper-test
- virt-admin-self-test
- virtestmock.c
- virtimetest.c
- virtypedparamtest.c
- viruritest.c
- virusbmock.c
- virusbtest.c
- vmwarevertest.c
- vmx2xmltest.c
- vshtabletest.c
- xlconfigtest.c
- xmconfigtest.c
- xml2sexprtest.c
- xml2vmxtest.c
vboxsnapshotxmltest.c @debian/5.0.0-1 — raw · history · blame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | #include <config.h> #include "testutils.h" #ifdef WITH_VBOX # include <regex.h> # include "vbox/vbox_snapshot_conf.h" # define VIR_FROM_THIS VIR_FROM_NONE static const char *testSnapshotXMLVariableLineRegexStr = "lastStateChange=[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z"; regex_t *testSnapshotXMLVariableLineRegex = NULL; static char * testFilterXML(char *xml) { virBuffer buf = VIR_BUFFER_INITIALIZER; char **xmlLines = NULL; char **xmlLine; char *ret = NULL; if (!(xmlLines = virStringSplit(xml, "\n", 0))) { VIR_FREE(xml); goto cleanup; } VIR_FREE(xml); for (xmlLine = xmlLines; *xmlLine; xmlLine++) { if (regexec(testSnapshotXMLVariableLineRegex, *xmlLine, 0, NULL, 0) == 0) continue; virBufferStrcat(&buf, *xmlLine, "\n", NULL); } if (virBufferError(&buf)) { virReportOOMError(); goto cleanup; } ret = virBufferContentAndReset(&buf); cleanup: virBufferFreeAndReset(&buf); virStringListFree(xmlLines); return ret; } static int testCompareXMLtoXMLFiles(const char *xml) { char *xmlData = NULL; char *actual = NULL; char *pathResult = NULL; int ret = -1; virVBoxSnapshotConfMachinePtr machine = NULL; if (VIR_STRDUP(pathResult, abs_builddir "/vboxsnapshotxmldata/testResult.vbox") < 0) return -1; if (virFileMakePath(abs_builddir "/vboxsnapshotxmldata") < 0) goto cleanup; if (virTestLoadFile(xml, &xmlData) < 0) goto cleanup; if (!(machine = virVBoxSnapshotConfLoadVboxFile(xml, (char*)""))) goto cleanup; if (virVBoxSnapshotConfSaveVboxFile(machine, pathResult) < 0) goto cleanup; if (virTestLoadFile(pathResult, &actual) < 0) goto cleanup; if (!(actual = testFilterXML(actual))) goto cleanup; if (!(xmlData = testFilterXML(xmlData))) goto cleanup; if (STRNEQ(actual, xmlData)) { virTestDifference(stderr, xmlData, actual); goto cleanup; } ret = 0; cleanup: unlink(pathResult); rmdir(abs_builddir "/vboxsnapshotxmldata"); VIR_FREE(xmlData); VIR_FREE(actual); virVBoxSnapshotConfMachineFree(machine); VIR_FREE(pathResult); return ret; } static int testCompareXMLToXMLHelper(const void *data) { int result = -1; char *xml = NULL; if (virAsprintf(&xml, "%s/vboxsnapshotxmldata/%s.vbox", abs_srcdir, (const char*)data) < 0) return -1; result = testCompareXMLtoXMLFiles(xml); VIR_FREE(xml); return result; } static int mymain(void) { int ret = 0; if (VIR_ALLOC(testSnapshotXMLVariableLineRegex) < 0) goto cleanup; if (regcomp(testSnapshotXMLVariableLineRegex, testSnapshotXMLVariableLineRegexStr, REG_EXTENDED | REG_NOSUB) != 0) { ret = -1; virReportError(VIR_ERR_INTERNAL_ERROR, "%s", "failed to compile test regex"); goto cleanup; } # define DO_TEST(name) \ if (virTestRun("VBox Snapshot XML-2-XML " name, \ testCompareXMLToXMLHelper, (name)) < 0) \ ret = -1 DO_TEST("2disks-nosnap"); DO_TEST("2disks-1snap"); DO_TEST("2disks-2snap"); DO_TEST("2disks-3snap"); DO_TEST("2disks-3snap-brother"); cleanup: if (testSnapshotXMLVariableLineRegex) regfree(testSnapshotXMLVariableLineRegex); VIR_FREE(testSnapshotXMLVariableLineRegex); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } VIR_TEST_MAIN(mymain) #else int main(void) { return EXIT_AM_SKIP; } #endif /*WITH_VBOX*/ |