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