[libvirt] [PATCH] tests: Allow multiple mock libraries

Jiri Denemark jdenemar at redhat.com
Fri May 20 16:58:03 UTC 2016


On Fri, May 20, 2016 at 16:27:00 +0200, Peter Krempa wrote:
> Make virtTestMain take variable number of libraries to mock.
> ---
>  tests/testutils.c | 11 ++++++++---
>  tests/testutils.h | 10 +++++-----
>  2 files changed, 13 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/testutils.c b/tests/testutils.c
> index 9180e86..f4fbad2 100644
> --- a/tests/testutils.c
> +++ b/tests/testutils.c
> @@ -24,6 +24,7 @@
> 
>  #include <stdio.h>
>  #include <stdlib.h>
> +#include <stdarg.h>
>  #include <sys/time.h>
>  #include <sys/types.h>
>  #include <sys/stat.h>
> @@ -842,9 +843,11 @@ virTestSetEnvPath(void)
> 
>  int virtTestMain(int argc,
>                   char **argv,
> -                 const char *lib,
> -                 int (*func)(void))
> +                 int (*func)(void),
> +                 ...)
>  {
> +    const char *lib;
> +    va_list ap;
>      int ret;
>      char *testRange = NULL;
>  #ifdef TEST_OOM
> @@ -854,8 +857,10 @@ int virtTestMain(int argc,
>      if (getenv("VIR_TEST_FILE_ACCESS"))
>          VIRT_TEST_PRELOAD(TEST_MOCK);
> 
> -    if (lib)
> +    va_start(ap, func);
> +    while ((lib = va_arg(ap, const char *)))
>          VIRT_TEST_PRELOAD(lib);
> +    va_end(ap);
> 
>      progname = last_component(argv[0]);
>      if (STRPREFIX(progname, "lt-"))

No doubt this is better than passing a string with comma separated list
of libraries, but contrary to what you promised, it still adds one
library followed by exec() at a time :-)

Jirka




More information about the libvir-list mailing list