
On Thu, 2019-03-14 at 10:44 -0400, Cole Robinson wrote: [...]
+# define DO_TEST_CAPS_INTERNAL(name, suffix, \ + arch, capsfile, stripmachinealiases, ...) \ do { \ static struct testInfo info = { \ - name, "." suffix, NULL, NULL, -1,\ - (flags | FLAG_REAL_CAPS), parseFlags, \ + name, "." suffix, NULL, NULL, -1, 0, 0, \ }; \ if (!(info.qemuCaps = qemuTestParseCapabilitiesArch(virArchFromString(arch), \ capsfile))) \ return EXIT_FAILURE; \ if (stripmachinealiases) \ virQEMUCapsStripMachineAliases(info.qemuCaps); \ + if (testInfoSetArgs(&info, __VA_ARGS__, ARG_END) < 0) \ + return EXIT_FAILURE; \
Since you already have an explicit ARG_END here, it's kinda ugly that you need another one... [...]
+# define DO_TEST_CAPS_ARCH_VER_FULL(name, arch, ver, ...) \ + DO_TEST_CAPS_INTERNAL(name, arch "-" ver, \ + arch, TEST_CAPS_PATH ver "." arch ".xml", false, \ + __VA_ARGS__)
# define DO_TEST_CAPS_ARCH_VER(name, arch, ver) \ - DO_TEST_CAPS_ARCH_VER_FULL(name, 0, 0, arch, ver) + DO_TEST_CAPS_ARCH_VER_FULL(name, arch, ver, ARG_END)
... both here... [...]
+# define DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, ...) \ + DO_TEST_CAPS_INTERNAL(name, arch "-latest", arch, \ + virHashLookup(capslatest, arch), true, \ + __VA_ARGS__)
# define DO_TEST_CAPS_ARCH_LATEST(name, arch) \ - DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, 0, 0) + DO_TEST_CAPS_ARCH_LATEST_FULL(name, arch, ARG_END)
... and here, but the underlying macro can't take zero variadic arguments so there's no way around it I guess... Reviewed-by: Andrea Bolognani <abologna@redhat.com> -- Andrea Bolognani / Red Hat / Virtualization