[libvirt] [PATCH 19/34] Probe for -device and use -nodefaults

Daniel Veillard veillard at redhat.com
Fri Jan 15 16:31:05 UTC 2010


On Fri, Jan 08, 2010 at 05:23:15PM +0000, Daniel P. Berrange wrote:
> Probe for the new -device flag and if available set the -nodefaults
> flag, instead of using -net none, -serial none or -parallel none.
> Other device types will be converted to use -device in later patches.
> The -nodefaults flag will help avoid unwelcome surprises from future
> QEMU releases
> 
> * src/qemu/qemu_conf.c: Probe for -device. Add -nodefaults flag.
>   Remove -net none, -serial none or -parallel none
> * src/qemu/qemu_conf.h: Define QEMU_CMD_FLAG_DEVICE
> * tests/qemuhelpdata/qemu-0.12.1: New data file for 0.12.1 QEMU
> * tests/qemuhelptest.c: Test feature extraction from 0.12.1 QEMU
[...]
> @@ -1115,6 +1115,8 @@ static unsigned int qemudComputeCmdFlags(const char *help,
>          flags |= QEMUD_CMD_FLAG_CHARDEV;
>      if (strstr(help, "-balloon"))
>          flags |= QEMUD_CMD_FLAG_BALLOON;
> +    if (strstr(help, "-device"))
> +        flags |= QEMUD_CMD_FLAG_DEVICE;
>  
[...]
> --- a/src/qemu/qemu_conf.h
> +++ b/src/qemu/qemu_conf.h
> @@ -78,6 +78,7 @@ enum qemud_cmd_flags {
>      QEMUD_CMD_FLAG_ENABLE_KVM    = (1 << 23), /* Is the -enable-kvm flag available to "enable KVM full virtualization support" */
>      QEMUD_CMD_FLAG_MONITOR_JSON  = (1 << 24), /* JSON mode for monitor */
>      QEMUD_CMD_FLAG_BALLOON       = (1 << 25), /* -balloon available */
> +    QEMUD_CMD_FLAG_DEVICE        = (1 << 26), /* Is the new -chardev arg available */
>  };

  comment error, it's -device arg, not -chardev which is tested there


> --- a/tests/qemuhelptest.c
> +++ b/tests/qemuhelptest.c
> @@ -21,6 +21,20 @@ struct testInfo {
>  static char *progname;
>  static char *abs_srcdir;
>  
> +static void printMismatchedFlags(int got, int expect)
> +{
> +    int i;
> +
> +    for (i = 0 ; i < (sizeof(got)*8) ; i++) {
> +        int gotFlag = (got & (1 << i));
> +        int expectFlag = (expect & (1 << i));
> +        if (gotFlag && !expectFlag)
> +            fprintf(stderr, "Extra flag %i\n", i);
> +        if (!gotFlag && expectFlag)
> +            fprintf(stderr, "Missing flag %i\n", i);
> +    }
> +}
> +
>  static int testHelpStrParsing(const void *data)
>  {
>      const struct testInfo *info = data;
> @@ -40,6 +54,10 @@ static int testHelpStrParsing(const void *data)
>      if (flags != info->flags) {
>          fprintf(stderr, "Computed flags do not match: got 0x%x, expected 0x%x\n",
>                  flags, info->flags);
> +
> +        if (getenv("VIR_TEST_DEBUG"))
> +            printMismatchedFlags(flags, info->flags);
> +
>          return -1;
>      }

  Ah, nice improvement !


  ACK, but comment need fix

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list