[PATCH v2 7/9] tests: Add testing of qemu migration cookie
Ján Tomko
jtomko at redhat.com
Wed Nov 4 15:04:45 UTC 2020
On a Wednesday in 2020, Peter Krempa wrote:
>Migration cookie transports a lot of information but there are no tests
>for it.
>
>The test supports both xml2xml testing and also testing of the
>population of the migration cookie data from a domain object, although
>that option is not very useful as many things are collected from running
>qemu and thus can't be tested efficiently here.
>
>Signed-off-by: Peter Krempa <pkrempa at redhat.com>
>---
> tests/meson.build | 1 +
> .../basic-xml2xml-in.xml | 6 +
> .../basic-xml2xml-out.xml | 9 +
> .../modern-dom-out-dest.xml | 12 +
> .../modern-dom-out-source.xml | 12 +
> tests/qemumigrationcookiexmltest.c | 336 ++++++++++++++++++
> 6 files changed, 376 insertions(+)
> create mode 100644 tests/qemumigrationcookiexmldata/basic-xml2xml-in.xml
> create mode 100644 tests/qemumigrationcookiexmldata/basic-xml2xml-out.xml
> create mode 100644 tests/qemumigrationcookiexmldata/modern-dom-out-dest.xml
> create mode 100644 tests/qemumigrationcookiexmldata/modern-dom-out-source.xml
> create mode 100644 tests/qemumigrationcookiexmltest.c
>
>diff --git a/tests/meson.build b/tests/meson.build
>index 818fce65f3..68a309ebfb 100644
>--- a/tests/meson.build
>+++ b/tests/meson.build
>@@ -456,6 +456,7 @@ if conf.has('WITH_QEMU')
> { 'name': 'qemuxml2argvtest', 'link_with': [ test_qemu_driver_lib, test_utils_qemu_monitor_lib ], 'link_whole': [ test_utils_qemu_lib, test_file_wrapper_lib ] },
> { 'name': 'qemuxml2xmltest', 'link_with': [ test_qemu_driver_lib ], 'link_whole': [ test_utils_qemu_lib, test_file_wrapper_lib ] },
> { 'name': 'qemustatusxml2xmltest', 'link_with': [ test_qemu_driver_lib ], 'link_whole': [ test_utils_qemu_lib, test_file_wrapper_lib ] },
>+ { 'name': 'qemumigrationcookiexmltest', 'link_with': [ test_qemu_driver_lib ], 'link_whole': [ test_utils_qemu_lib, test_file_wrapper_lib ] },
Same comment about ordering.
> ]
> endif
>
>+
>+#define VIR_FROM_THIS VIR_FROM_NONE
>+
>+static virQEMUDriver driver;
>+
>+static virBuffer testnamebuf = VIR_BUFFER_INITIALIZER;
>+
>+static const char *
>+tn(const char *str, ...)
This name is not very descriptive.
How about testName?
>+{
>+ va_list ap;
>+
>+ virBufferFreeAndReset(&testnamebuf);
>+ virBufferAdd(&testnamebuf, str, -1);
>+
>+ va_start(ap, str);
>+ virBufferStrcatVArgs(&testnamebuf, ap);
>+ va_end(ap);
>+
>+ return virBufferCurrentContent(&testnamebuf);
>+}
>+
>+
>+struct testQemuMigrationCookieData {
>+ const char *name;
>+ char *inStatus;
>+ virDomainObjPtr vm;
>+
>+ unsigned int cookiePopulateFlags;
>+ unsigned int cookieParseFlags;
>+
>+ qemuMigrationParty cookiePopulateParty;
>+
>+ char *xmlstr;
>+ int xmlstrlen;
>+ char *infile;
>+ char *outfile;
>+};
>+
>+
>+static int
>+testQemuMigrationCookiePopulate(const void *opaque)
>+{
>+ struct testQemuMigrationCookieData *data = (struct testQemuMigrationCookieData *) opaque;
>+ g_autoptr(qemuMigrationCookie) cookie = NULL;
>+
>+ if (!(cookie = qemuMigrationCookieNew(data->vm->def, NULL)))
>+ return -1;
>+
>+ /* doctor the hostname and uuid, so that the output can be simply used for
>+ * the xml2xmltest where the parser validates UUID match (yuck) */
Please drop the yuck.
>+ g_free(cookie->localHostname);
>+ cookie->localHostname = g_strdup("hostname2");
>+
>+ /* uuidgen --sha1 --namespace @dns --name "hostname2" */
>+ if (virUUIDParse("8b3f4dc4-6a8e-5f9b-94a5-4c35babd8d95", cookie->localHostuuid) < 0) {
>+ VIR_TEST_DEBUG("\nfailed to parse fake UUID");
>+ return -1;
>+ }
>+
>+ /* allow re-run for checking both miration parties */
s/miration/migration/
>+ g_clear_pointer(&data->xmlstr, g_free);
>+
>+ if (qemuMigrationCookieFormat(cookie,
>+ &driver,
>+ data->vm,
>+ data->cookiePopulateParty,
>+ &data->xmlstr,
>+ &data->xmlstrlen,
>+ data->cookiePopulateFlags) < 0) {
>+ VIR_TEST_DEBUG("\n failed to populate and format qemu migration cookie");
>+ return -1;
>+ }
>+
>+ if (virTestCompareToFile(data->xmlstr, data->outfile) < 0)
>+ return -1;
>+
>+ return 0;
>+}
>+
>+
Reviewed-by: Ján Tomko <jtomko at redhat.com>
Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20201104/f5df4129/attachment-0001.sig>
More information about the libvir-list
mailing list