[libvirt] [PATCH 1/3] qemuhotplugtest: Allow testing of live data
John Ferlan
jferlan at redhat.com
Thu Mar 31 12:29:52 UTC 2016
On 03/30/2016 11:13 AM, Martin Kletzander wrote:
> For now, the test was dumping an XML of inactive domain (well, setting
> the id to '-1' to be precise) when checking the results. This patch
> enables future additions to test the live XML output as well.
>
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
> tests/qemuhotplugtest.c | 27 +++++++++++++++++----------
> 1 file changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
> index 1eb2b6a881f2..2b0de94fb4a6 100644
> --- a/tests/qemuhotplugtest.c
> +++ b/tests/qemuhotplugtest.c
> @@ -52,6 +52,7 @@ struct qemuHotplugTestData {
> bool keep;
> virDomainObjPtr vm;
> bool deviceDeletedEvent;
> + bool live;
> };
>
> static int
> @@ -177,12 +178,13 @@ static int
> testQemuHotplugCheckResult(virDomainObjPtr vm,
> const char *expected,
> const char *expectedFile,
> - bool fail)
> + bool fail, bool live)
> {
> char *actual;
> int ret;
>
> - vm->def->id = -1;
> + if (!live)
> + vm->def->id = -1;
> actual = virDomainDefFormat(vm->def, driver.caps,
> VIR_DOMAIN_DEF_FORMAT_SECURE);
> if (!actual)
> @@ -219,6 +221,7 @@ testQemuHotplug(const void *data)
> const char *const *tmp;
> bool fail = test->fail;
> bool keep = test->keep;
> + bool live = test->live;
> unsigned int device_parse_flags = 0;
> virDomainObjPtr vm = NULL;
> virDomainDeviceDefPtr dev = NULL;
> @@ -300,14 +303,14 @@ testQemuHotplug(const void *data)
> }
> if (ret == 0 || fail)
> ret = testQemuHotplugCheckResult(vm, result_xml,
> - result_filename, fail);
> + result_filename, fail, live);
> break;
>
> case DETACH:
> ret = testQemuHotplugDetach(vm, dev);
> if (ret == 0 || fail)
> ret = testQemuHotplugCheckResult(vm, domain_xml,
> - domain_filename, fail);
> + domain_filename, fail, live);
> break;
>
> case UPDATE:
> @@ -371,7 +374,7 @@ mymain(void)
> /* wait only 100ms for DEVICE_DELETED event */
> qemuDomainRemoveDeviceWaitTime = 100;
>
> -#define DO_TEST(file, ACTION, dev, event, fial, kep, ...) \
> +#define DO_TEST(file, ACTION, dev, event, fial, kep, liv, ...) \
"Typically" rather than misspelling "fail", "keep", or "live" one would
use an underscore, such as "_fail", "_keep", and "_live" in order to
represent a macro argument...
Not required for ACK, but nice nonetheless
John
> do { \
> const char *my_mon[] = { __VA_ARGS__, NULL}; \
> const char *name = file " " #ACTION " " dev; \
> @@ -381,25 +384,29 @@ mymain(void)
> data.fail = fial; \
> data.mon = my_mon; \
> data.keep = kep; \
> + data.live = liv; \
> data.deviceDeletedEvent = event; \
> if (virtTestRun(name, testQemuHotplug, &data) < 0) \
> ret = -1; \
> } while (0)
>
> #define DO_TEST_ATTACH(file, dev, fial, kep, ...) \
> - DO_TEST(file, ATTACH, dev, false, fial, kep, __VA_ARGS__)
> + DO_TEST(file, ATTACH, dev, false, fial, kep, false, __VA_ARGS__)
> +
> +#define DO_TEST_ATTACH_LIVE(file, dev, fial, kep, ...) \
> + DO_TEST(file, ATTACH, dev, false, fial, kep, true, __VA_ARGS__)
>
> #define DO_TEST_DETACH(file, dev, fial, kep, ...) \
> - DO_TEST(file, DETACH, dev, false, fial, kep, __VA_ARGS__)
> + DO_TEST(file, DETACH, dev, false, fial, kep, false, __VA_ARGS__)
>
> #define DO_TEST_ATTACH_EVENT(file, dev, fial, kep, ...) \
> - DO_TEST(file, ATTACH, dev, true, fial, kep, __VA_ARGS__)
> + DO_TEST(file, ATTACH, dev, true, fial, kep, false, __VA_ARGS__)
>
> #define DO_TEST_DETACH_EVENT(file, dev, fial, kep, ...) \
> - DO_TEST(file, DETACH, dev, true, fial, kep, __VA_ARGS__)
> + DO_TEST(file, DETACH, dev, true, fial, kep, false, __VA_ARGS__)
>
> #define DO_TEST_UPDATE(file, dev, fial, kep, ...) \
> - DO_TEST(file, UPDATE, dev, false, fial, kep, __VA_ARGS__)
> + DO_TEST(file, UPDATE, dev, false, fial, kep, false, __VA_ARGS__)
>
>
> #define QMP_OK "{\"return\": {}}"
>
More information about the libvir-list
mailing list