1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

tests: qemuxml2argv: handle flags with varargs

This allows us to drop flags from DO_TEST_FULL

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
Cole Robinson 2019-03-13 16:04:44 -04:00
parent 0ecf885be1
commit 4cbf6830c1

View File

@ -610,6 +610,7 @@ typedef enum {
ARG_GIC, ARG_GIC,
ARG_MIGRATE_FROM, ARG_MIGRATE_FROM,
ARG_MIGRATE_FD, ARG_MIGRATE_FD,
ARG_FLAGS,
/* ARG_END is our va_args sentinel. The value QEMU_CAPS_LATEST is /* ARG_END is our va_args sentinel. The value QEMU_CAPS_LATEST is
* necessary to handle the DO_TEST(..., NONE) case, which through macro * necessary to handle the DO_TEST(..., NONE) case, which through macro
@ -653,6 +654,10 @@ testInfoSetArgs(struct testInfo *info, ...)
info->migrateFd = va_arg(argptr, int); info->migrateFd = va_arg(argptr, int);
break; break;
case ARG_FLAGS:
info->flags = va_arg(argptr, int);
break;
case ARG_END: case ARG_END:
default: default:
fprintf(stderr, "Unexpected test info argument"); fprintf(stderr, "Unexpected test info argument");
@ -845,10 +850,10 @@ mymain(void)
# define DO_TEST_CAPS(name, ver) \ # define DO_TEST_CAPS(name, ver) \
DO_TEST_CAPS_FULL(name, 0, 0, ver) DO_TEST_CAPS_FULL(name, 0, 0, ver)
# define DO_TEST_FULL(name, flags, parseFlags, ...) \ # define DO_TEST_FULL(name, parseFlags, ...) \
do { \ do { \
static struct testInfo info = { \ static struct testInfo info = { \
name, NULL, NULL, NULL, -1, (flags), parseFlags, \ name, NULL, NULL, NULL, -1, 0, parseFlags, \
}; \ }; \
if (!(info.qemuCaps = virQEMUCapsNew())) \ if (!(info.qemuCaps = virQEMUCapsNew())) \
return EXIT_FAILURE; \ return EXIT_FAILURE; \
@ -861,29 +866,30 @@ mymain(void)
} while (0) } while (0)
# define DO_TEST(name, ...) \ # define DO_TEST(name, ...) \
DO_TEST_FULL(name, 0, 0, \ DO_TEST_FULL(name, 0, \
ARG_QEMU_CAPS, __VA_ARGS__) ARG_QEMU_CAPS, __VA_ARGS__)
# define DO_TEST_GIC(name, gic, ...) \ # define DO_TEST_GIC(name, gic, ...) \
DO_TEST_FULL(name, 0, 0, \ DO_TEST_FULL(name, 0, \
ARG_GIC, gic, \ ARG_GIC, gic, \
ARG_QEMU_CAPS, __VA_ARGS__) ARG_QEMU_CAPS, __VA_ARGS__)
# define DO_TEST_FAILURE(name, ...) \ # define DO_TEST_FAILURE(name, ...) \
DO_TEST_FULL(name, FLAG_EXPECT_FAILURE, \ DO_TEST_FULL(name, \
0, \ 0, \
ARG_FLAGS, FLAG_EXPECT_FAILURE, \
ARG_QEMU_CAPS, __VA_ARGS__) ARG_QEMU_CAPS, __VA_ARGS__)
# define DO_TEST_PARSE_ERROR(name, ...) \ # define DO_TEST_PARSE_ERROR(name, ...) \
DO_TEST_FULL(name, \ DO_TEST_FULL(name, \
FLAG_EXPECT_PARSE_ERROR | FLAG_EXPECT_FAILURE, \
0, \ 0, \
ARG_FLAGS, FLAG_EXPECT_PARSE_ERROR | FLAG_EXPECT_FAILURE, \
ARG_QEMU_CAPS, __VA_ARGS__) ARG_QEMU_CAPS, __VA_ARGS__)
# define DO_TEST_PARSE_FLAGS_ERROR(name, parseFlags, ...) \ # define DO_TEST_PARSE_FLAGS_ERROR(name, parseFlags, ...) \
DO_TEST_FULL(name, \ DO_TEST_FULL(name, \
FLAG_EXPECT_PARSE_ERROR | FLAG_EXPECT_FAILURE, \
parseFlags, \ parseFlags, \
ARG_FLAGS, FLAG_EXPECT_PARSE_ERROR | FLAG_EXPECT_FAILURE, \
ARG_QEMU_CAPS, __VA_ARGS__) ARG_QEMU_CAPS, __VA_ARGS__)
# define NONE QEMU_CAPS_LAST # define NONE QEMU_CAPS_LAST
@ -1722,23 +1728,23 @@ mymain(void)
QEMU_CAPS_CCW_CSSID_UNRESTRICTED, QEMU_CAPS_CCW_CSSID_UNRESTRICTED,
QEMU_CAPS_DEVICE_VFIO_CCW); QEMU_CAPS_DEVICE_VFIO_CCW);
DO_TEST_FULL("restore-v2", 0, 0, DO_TEST_FULL("restore-v2", 0,
ARG_MIGRATE_FROM, "exec:cat", ARG_MIGRATE_FROM, "exec:cat",
ARG_MIGRATE_FD, 7, ARG_MIGRATE_FD, 7,
ARG_QEMU_CAPS, NONE); ARG_QEMU_CAPS, NONE);
DO_TEST_FULL("restore-v2-fd", 0, 0, DO_TEST_FULL("restore-v2-fd", 0,
ARG_MIGRATE_FROM, "stdio", ARG_MIGRATE_FROM, "stdio",
ARG_MIGRATE_FD, 7, ARG_MIGRATE_FD, 7,
ARG_QEMU_CAPS, NONE); ARG_QEMU_CAPS, NONE);
DO_TEST_FULL("restore-v2-fd", 0, 0, DO_TEST_FULL("restore-v2-fd", 0,
ARG_MIGRATE_FROM, "fd:7", ARG_MIGRATE_FROM, "fd:7",
ARG_MIGRATE_FD, 7, ARG_MIGRATE_FD, 7,
ARG_QEMU_CAPS, NONE); ARG_QEMU_CAPS, NONE);
DO_TEST_FULL("migrate", 0, 0, DO_TEST_FULL("migrate", 0,
ARG_MIGRATE_FROM, "tcp:10.0.0.1:5000", ARG_MIGRATE_FROM, "tcp:10.0.0.1:5000",
ARG_QEMU_CAPS, NONE); ARG_QEMU_CAPS, NONE);
DO_TEST_FULL("migrate-numa-unaligned", 0, 0, DO_TEST_FULL("migrate-numa-unaligned", 0,
ARG_MIGRATE_FROM, "stdio", ARG_MIGRATE_FROM, "stdio",
ARG_MIGRATE_FD, 7, ARG_MIGRATE_FD, 7,
ARG_QEMU_CAPS, ARG_QEMU_CAPS,
@ -1784,11 +1790,12 @@ mymain(void)
DO_TEST("cpu-host-model", NONE); DO_TEST("cpu-host-model", NONE);
DO_TEST("cpu-host-model-vendor", NONE); DO_TEST("cpu-host-model-vendor", NONE);
DO_TEST_FULL("cpu-host-model-fallback", DO_TEST_FULL("cpu-host-model-fallback",
FLAG_SKIP_LEGACY_CPUS, 0, 0,
ARG_FLAGS, FLAG_SKIP_LEGACY_CPUS,
ARG_QEMU_CAPS, NONE); ARG_QEMU_CAPS, NONE);
DO_TEST_FULL("cpu-host-model-nofallback", DO_TEST_FULL("cpu-host-model-nofallback",
FLAG_SKIP_LEGACY_CPUS | FLAG_EXPECT_FAILURE,
0, 0,
ARG_FLAGS, FLAG_SKIP_LEGACY_CPUS | FLAG_EXPECT_FAILURE,
ARG_QEMU_CAPS, NONE); ARG_QEMU_CAPS, NONE);
DO_TEST("cpu-host-passthrough", QEMU_CAPS_KVM); DO_TEST("cpu-host-passthrough", QEMU_CAPS_KVM);
DO_TEST_FAILURE("cpu-qemu-host-passthrough", QEMU_CAPS_KVM); DO_TEST_FAILURE("cpu-qemu-host-passthrough", QEMU_CAPS_KVM);
@ -2877,7 +2884,7 @@ mymain(void)
DO_TEST("ppc64-usb-controller-legacy", DO_TEST("ppc64-usb-controller-legacy",
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
QEMU_CAPS_PIIX3_USB_UHCI); QEMU_CAPS_PIIX3_USB_UHCI);
DO_TEST_FULL("ppc64-usb-controller-qemu-xhci", 0, DO_TEST_FULL("ppc64-usb-controller-qemu-xhci",
VIR_DOMAIN_DEF_PARSE_ABI_UPDATE, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE,
ARG_QEMU_CAPS, ARG_QEMU_CAPS,
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,