On 02/09/2011 09:02 AM, Jiri Denemark wrote:
This needs to be squashed into the previous patch but is provided
separately for easier review.
---
src/qemu/qemu_capabilities.c | 14 +
src/qemu/qemu_capabilities.h | 2 +
tests/qemuhelptest.c | 727 +++++++++++++++++++++---------------------
tests/qemuxml2argvtest.c | 468 ++++++++++++++--------------
4 files changed, 617 insertions(+), 594 deletions(-)
void
+qemuCapsSetList(virBitmapPtr caps, ...)
+{
+ va_list list;
+ int flag;
+
+ va_start(list, caps);
+ while ((flag = va_arg(list, int)) < QEMU_CAPS_LAST)
+ ignore_value(virBitmapSetBit(caps, flag));
+ va_end(list);
QEMU_CAPS_LAST as a terminal seems a bit awkward. Would it be any
better to require 0 to be the terminal? Then again, since it would be 0
and not NULL, we can't use ATTRIBUTE_SENTINEL as a compile-time aid that
we remembered to use the sentinel.
@@ -124,364 +137,358 @@ mymain(int argc, char **argv)
if (!abs_srcdir)
abs_srcdir = getcwd(cwd, sizeof(cwd));
-# define DO_TEST(name, flags, version, is_kvm, kvm_version) \
- do { \
- const struct testInfo info = { name, flags, version, is_kvm, kvm_version }; \
- if (virtTestRun("QEMU Help String Parsing " name,
\
- 1, testHelpStrParsing, &info) < 0)
\
- ret = -1; \
+# define DO_TEST(name, version, is_kvm, kvm_version, ...) \
+ do { \
+ struct testInfo info = { \
+ name, NULL, version, is_kvm, kvm_version \
+ }; \
+ if (!(info.flags = qemuCapsNew())) \
+ return EXIT_FAILURE; \
+ qemuCapsSetList(info.flags, __VA_ARGS__, QEMU_CAPS_LAST); \
And this is a nice trick for encapsulating the sentinel in only one place.
- DO_TEST("qemu-0.9.1",
- QEMU_CAPS_KQEMU |
- QEMU_CAPS_VNC_COLON |
- QEMU_CAPS_NO_REBOOT |
- QEMU_CAPS_DRIVE |
+ DO_TEST("qemu-0.9.1", 9001, 0, 0,
+ QEMU_CAPS_KQEMU,
+ QEMU_CAPS_VNC_COLON,
+ QEMU_CAPS_NO_REBOOT,
+ QEMU_CAPS_DRIVE,
+ QEMU_CAPS_NAME);
+ DO_TEST("kvm-74", 9001, 1, 74,
+ QEMU_CAPS_VNC_COLON,
+ QEMU_CAPS_NO_REBOOT,
+ QEMU_CAPS_DRIVE,
+ QEMU_CAPS_DRIVE_BOOT,
QEMU_CAPS_NAME,
How nice of git to mess up the context. But the change you made looks
obvious.
ACK.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org