<br><tt><font size=2>libvir-list-bounces@redhat.com wrote on 10/22/2010
01:02:15 PM:<br>
</font></tt>
<br><tt><font size=2>> <br>
> ---<br>
>  tests/qemuxml2argvtest.c |  240 ++++++++++++++++++++++++<br>
> +---------------------<br>
>  1 files changed, 132 insertions(+), 108 deletions(-)<br>
> <br>
> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c<br>
> index 551d6c4..4eb3cc6 100644<br>
> --- a/tests/qemuxml2argvtest.c<br>
> +++ b/tests/qemuxml2argvtest.c<br>
> @@ -4,6 +4,7 @@<br>
>  #include <stdlib.h><br>
>  #include <unistd.h><br>
>  #include <string.h><br>
> +#include <stdbool.h><br>
>  <br>
>  #include <sys/types.h><br>
>  #include <fcntl.h><br>
> @@ -26,7 +27,8 @@ static struct qemud_driver driver;<br>
>  static int testCompareXMLToArgvFiles(const char *xml,<br>
>                    
                  const char
*cmd,<br>
>                    
                  unsigned
long long extraFlags,<br>
> -                    
                const char *migrateFrom)
{<br>
> +                    
                const char *migrateFrom,<br>
> +                    
                bool expectError)
{<br>
>      char argvData[MAX_FILE];<br>
>      char *expectargv = &(argvData[0]);<br>
>      char *actualargv = NULL;<br>
> @@ -38,6 +40,7 @@ static int testCompareXMLToArgvFiles(const char
*xml,<br>
>      virDomainDefPtr vmdef = NULL;<br>
>      virDomainChrDef monitor_chr;<br>
>      virConnectPtr conn;<br>
> +    char *log = NULL;<br>
>  <br>
>      if (!(conn = virGetConnect()))<br>
>          goto fail;<br>
> @@ -80,12 +83,28 @@ static int testCompareXMLToArgvFiles(const char
*xml,<br>
>      }<br>
>  <br>
>  <br>
> +    free(virtTestLogContentAndReset());<br>
> +<br>
>      if (qemudBuildCommandLine(conn, &driver,<br>
>                    
           vmdef, &monitor_chr, 0, flags,<br>
>                    
           &argv, &qenv,<br>
>                    
           NULL, NULL, migrateFrom, NULL)
< 0)<br>
>          goto fail;<br>
>  <br>
> +    if ((log = virtTestLogContentAndReset()) == NULL)<br>
> +        goto fail;<br>
> +<br>
> +    if (!!strstr(log, ": error :") != expectError)
{<br>
> +        if (virTestGetDebug())<br>
> +            fprintf(stderr, "\n%s",
log);<br>
> +        goto fail;<br>
> +    }<br>
> +<br>
> +    if (expectError) {<br>
> +        /* need to suppress the errors */<br>
> +        virResetLastError();<br>
> +    }<br>
> +<br>
>      len = 1; /* for trailing newline */<br>
>      tmp = qenv;<br>
>      while (*tmp) {<br>
> @@ -125,6 +144,7 @@ static int testCompareXMLToArgvFiles(const char
*xml,<br>
>      ret = 0;<br>
>  <br>
>   fail:<br>
> +    free(log);<br>
>      free(actualargv);<br>
>      if (argv) {<br>
>          tmp = argv;<br>
> @@ -152,6 +172,7 @@ struct testInfo {<br>
>      const char *name;<br>
>      unsigned long long extraFlags;<br>
>      const char *migrateFrom;<br>
> +    bool expectError;<br>
>  };<br>
>  <br>
>  static int testCompareXMLToArgvHelper(const void *data) {<br>
> @@ -162,7 +183,8 @@ static int testCompareXMLToArgvHelper(const void
*data) {<br>
>               abs_srcdir, info->name);<br>
>      snprintf(args, PATH_MAX, "%s/qemuxml2argvdata/qemuxml2argv-%s.args",<br>
>               abs_srcdir, info->name);<br>
> -    return testCompareXMLToArgvFiles(xml, args, info->extraFlags,
<br>
> info->migrateFrom);<br>
> +    return testCompareXMLToArgvFiles(xml, args, info->extraFlags,<br>
> +                    
                info->migrateFrom,
info->expectError);<br>
>  }<br>
>  <br>
>  <br>
> @@ -193,16 +215,18 @@ mymain(int argc, char **argv)<br>
>      if ((driver.hugepage_path = strdup("/dev/hugepages/libvirt/<br>
> qemu")) == NULL)<br>
>          return EXIT_FAILURE;<br>
>  <br>
> -# define DO_TEST_FULL(name, extraFlags, migrateFrom)    
                \<br>
> +# define DO_TEST_FULL(name, extraFlags, migrateFrom, expectError)
      \<br>
>      do {            
                     
                     
       \<br>
> -        const struct testInfo info = { name,
extraFlags, migrateFrom }; \<br>
> +        const struct testInfo info = {  
                     
         \<br>
> +            name, extraFlags, migrateFrom,
expectError                  \<br>
> +        };          
                     
                     
       \<br>
>          if (virtTestRun("QEMU XML-2-ARGV
" name,                  
     \<br>
>                    
     1, testCompareXMLToArgvHelper, &info) < 0)  
   \<br>
>              ret = -1;    
                     
                     
  \<br>
>      } while (0)<br>
>  <br>
> -# define DO_TEST(name, extraFlags)          
            \<br>
> -        DO_TEST_FULL(name, extraFlags, NULL)<br>
> +# define DO_TEST(name, extraFlags, expectError)      
                  \<br>
> +        DO_TEST_FULL(name, extraFlags, NULL,
expectError)<br>
>  <br>
>      /* Unset or set all envvars here that are copied
in qemudBuildCommandLine<br>
>       * using ADD_ENV_COPY, otherwise these tests may
fail due to unexpected<br>
> @@ -217,175 +241,175 @@ mymain(int argc, char **argv)<br>
>      unsetenv("QEMU_AUDIO_DRV");<br>
>      unsetenv("SDL_AUDIODRIVER");<br>
>  <br>
> -    DO_TEST("minimal", QEMUD_CMD_FLAG_NAME);<br>
> -    DO_TEST("machine-aliases1", 0);<br>
</font></tt>
<br><tt><font size=2>[...]</font></tt>
<br>
<br><tt><font size=2>look good to me -- ACK</font></tt>
<br>
<br><tt><font size=2>    Stefan</font></tt>