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@xxxxxxxxxx> -- Andrea Bolognani / Red Hat / Virtualization -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list