[libvirt] [PATCH] tests: Silence qemuxml2argv test

Stefan Berger stefanb at us.ibm.com
Fri Oct 22 17:24:18 UTC 2010


libvir-list-bounces at redhat.com wrote on 10/22/2010 01:02:15 PM:

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

[...]

look good to me -- ACK

    Stefan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20101022/c93c7718/attachment-0001.htm>


More information about the libvir-list mailing list