[libvirt] [PATCH 1/2] tests: simplify common setup

Eric Blake eblake at redhat.com
Fri Apr 29 17:29:30 UTC 2011


A few of the tests were missing basic sanity checks, while most
of them were doing copy-and-paste initialization (in fact, some
of them pasted the argc > 1 check more than once!).  It's much
nicer to do things in one common place, and minimizes the size of
the next patch that fixes getcwd usage.

* tests/testutils.h (EXIT_AM_HARDFAIL): New define.
(progname, abs_srcdir): Define for all tests.
(VIRT_TEST_MAIN): Change callback signature.
* tests/testutils.c (virtTestMain): Do more common init.
* tests/commandtest.c (mymain): Simplify.
* tests/cputest.c (mymain): Likewise.
* tests/esxutilstest.c (mymain): Likewise.
* tests/eventtest.c (mymain): Likewise.
* tests/hashtest.c (mymain): Likewise.
* tests/networkxml2xmltest.c (mymain): Likewise.
* tests/nodedevxml2xmltest.c (myname): Likewise.
* tests/nodeinfotest.c (mymain): Likewise.
* tests/nwfilterxml2xmltest.c (mymain): Likewise.
* tests/qemuargv2xmltest.c (mymain): Likewise.
* tests/qemuhelptest.c (mymain): Likewise.
* tests/qemuxml2argvtest.c (mymain): Likewise.
* tests/qemuxml2xmltest.c (mymain): Likewise.
* tests/qparamtest.c (mymain): Likewise.
* tests/sexpr2xmltest.c (mymain): Likewise.
* tests/sockettest.c (mymain): Likewise.
* tests/statstest.c (mymain): Likewise.
* tests/storagepoolxml2xmltest.c (mymain): Likewise.
* tests/storagevolxml2xmltest.c (mymain): Likewise.
* tests/virbuftest.c (mymain): Likewise.
* tests/virshtest.c (mymain): Likewise.
* tests/vmx2xmltest.c (mymain): Likewise.
* tests/xencapstest.c (mymain): Likewise.
* tests/xmconfigtest.c (mymain): Likewise.
* tests/xml2sexprtest.c (mymain): Likewise.
* tests/xml2vmxtest.c (mymain): Likewise.
---
 tests/commandtest.c            |   18 +-----------------
 tests/cputest.c                |   18 ++----------------
 tests/esxutilstest.c           |   17 +----------------
 tests/eventtest.c              |   11 +----------
 tests/hashtest.c               |    3 +--
 tests/interfacexml2xmltest.c   |   17 +----------------
 tests/networkxml2xmltest.c     |   17 +----------------
 tests/nodedevxml2xmltest.c     |   17 +----------------
 tests/nodeinfotest.c           |   17 +----------------
 tests/nwfilterxml2xmltest.c    |   17 +----------------
 tests/qemuargv2xmltest.c       |   16 +---------------
 tests/qemuhelptest.c           |   17 +----------------
 tests/qemuxml2argvtest.c       |   16 +---------------
 tests/qemuxml2xmltest.c        |   16 +---------------
 tests/qparamtest.c             |    3 +--
 tests/sexpr2xmltest.c          |   21 +--------------------
 tests/sockettest.c             |    5 ++---
 tests/statstest.c              |    3 +--
 tests/storagepoolxml2xmltest.c |   17 +----------------
 tests/storagevolxml2xmltest.c  |   17 +----------------
 tests/testutils.c              |   29 +++++++++++++++++++++++------
 tests/testutils.h              |   15 ++++++++++-----
 tests/virbuftest.c             |    3 +--
 tests/virshtest.c              |   18 +++---------------
 tests/vmx2xmltest.c            |   23 +----------------------
 tests/xencapstest.c            |   17 +----------------
 tests/xmconfigtest.c           |   18 ++----------------
 tests/xml2sexprtest.c          |   16 +---------------
 tests/xml2vmxtest.c            |   23 +----------------------
 29 files changed, 65 insertions(+), 380 deletions(-)

diff --git a/tests/commandtest.c b/tests/commandtest.c
index c313a2c..509c888 100644
--- a/tests/commandtest.c
+++ b/tests/commandtest.c
@@ -46,10 +46,6 @@ mymain(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)

 #else

-static char *progname;
-static char *abs_srcdir;
-
-
 static int checkoutput(const char *testname)
 {
     int ret = -1;
@@ -754,23 +750,11 @@ cleanup:
 }

 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
     int fd;

-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return(EXIT_FAILURE);
-    }
-
     if (chdir("/tmp") < 0)
         return(EXIT_FAILURE);

diff --git a/tests/cputest.c b/tests/cputest.c
index bd06958..a8d28dc 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -1,7 +1,7 @@
 /*
  * cputest.c: Test the libvirtd internal CPU APIs
  *
- * Copyright (C) 2010 Red Hat, Inc.
+ * Copyright (C) 2010-2011 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -39,8 +39,6 @@
 #include "cpu/cpu.h"
 #include "cpu/cpu_map.h"

-static const char *progname;
-static const char *abs_srcdir;
 static const char *abs_top_srcdir;

 #define VIR_FROM_THIS VIR_FROM_CPU
@@ -494,23 +492,11 @@ static const char *nomodel[]    = { "nomodel" };
 static const char *models[]     = { "qemu64", "core2duo", "Nehalem" };

 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
     char map[PATH_MAX];

-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return EXIT_FAILURE;
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));
-
     abs_top_srcdir = getenv("abs_top_srcdir");
     if (!abs_top_srcdir)
         abs_top_srcdir = "..";
diff --git a/tests/esxutilstest.c b/tests/esxutilstest.c
index b6bf87b..830f79c 100644
--- a/tests/esxutilstest.c
+++ b/tests/esxutilstest.c
@@ -14,9 +14,6 @@
 # include "esx/esx_util.h"
 # include "esx/esx_vi_types.h"

-static char *progname;
-
-

 static void
 testQuietError(void *userData ATTRIBUTE_UNUSED,
@@ -323,22 +320,10 @@ testConvertWindows1252ToUTF8(const void *data ATTRIBUTE_UNUSED)


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int result = 0;

-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return EXIT_FAILURE;
-    }
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return EXIT_FAILURE;
-    }
-
     virSetErrorFunc(NULL, testQuietError);

 # define DO_TEST(_name)                                                       \
diff --git a/tests/eventtest.c b/tests/eventtest.c
index eb4b755..4c45860 100644
--- a/tests/eventtest.c
+++ b/tests/eventtest.c
@@ -259,20 +259,12 @@ resetAll(void)
 }

 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
-    char *progname;
     int i;
     pthread_t eventThread;
     char one = '1';

-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return EXIT_FAILURE;
-    }
-
     for (i = 0 ; i < NUM_FDS ; i++) {
         if (pipe(handles[i].pipeFD) < 0) {
             fprintf(stderr, "Cannot create pipe: %d", errno);
@@ -483,5 +475,4 @@ mymain(int argc, char **argv)
     return EXIT_SUCCESS;
 }

-
 VIRT_TEST_MAIN(mymain)
diff --git a/tests/hashtest.c b/tests/hashtest.c
index bb3a812..525ae06 100644
--- a/tests/hashtest.c
+++ b/tests/hashtest.c
@@ -476,8 +476,7 @@ cleanup:


 static int
-mymain(int argc ATTRIBUTE_UNUSED,
-       char **argv ATTRIBUTE_UNUSED)
+mymain(void)
 {
     int ret = 0;

diff --git a/tests/interfacexml2xmltest.c b/tests/interfacexml2xmltest.c
index 094ccf5..fb454c1 100644
--- a/tests/interfacexml2xmltest.c
+++ b/tests/interfacexml2xmltest.c
@@ -13,9 +13,6 @@
 #include "interface_conf.h"
 #include "testutilsqemu.h"

-static char *progname;
-static char *abs_srcdir;
-
 #define MAX_FILE 4096


@@ -57,21 +54,9 @@ static int testCompareXMLToXMLHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return (EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

 #define DO_TEST(name) \
     if (virtTestRun("Interface XML-2-XML " name, \
diff --git a/tests/networkxml2xmltest.c b/tests/networkxml2xmltest.c
index 7805548..f7489f5 100644
--- a/tests/networkxml2xmltest.c
+++ b/tests/networkxml2xmltest.c
@@ -13,9 +13,6 @@
 #include "network_conf.h"
 #include "testutilsqemu.h"

-static char *progname;
-static char *abs_srcdir;
-
 #define MAX_FILE 4096


@@ -64,21 +61,9 @@ static int testCompareXMLToXMLHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return (EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

 #define DO_TEST(name) \
     if (virtTestRun("Network XML-2-XML " name, \
diff --git a/tests/nodedevxml2xmltest.c b/tests/nodedevxml2xmltest.c
index 2bc6743..f6a1335 100644
--- a/tests/nodedevxml2xmltest.c
+++ b/tests/nodedevxml2xmltest.c
@@ -13,9 +13,6 @@
 #include "node_device_conf.h"
 #include "testutilsqemu.h"

-static char *progname;
-static char *abs_srcdir;
-
 #define MAX_FILE 4096


@@ -57,21 +54,9 @@ static int testCompareXMLToXMLHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return (EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

 #define DO_TEST(name) \
     if (virtTestRun("Node device XML-2-XML " name, \
diff --git a/tests/nodeinfotest.c b/tests/nodeinfotest.c
index c690403..9a87dc0 100644
--- a/tests/nodeinfotest.c
+++ b/tests/nodeinfotest.c
@@ -21,9 +21,6 @@ mymain(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)

 #else

-static char *progname;
-static char *abs_srcdir;
-
 # define MAX_FILE 4096

 extern int linuxNodeInfoCPUPopulate(FILE *cpuinfo, virNodeInfoPtr nodeinfo,
@@ -89,7 +86,7 @@ static int linuxTestNodeInfo(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
     int i;
@@ -101,18 +98,6 @@ mymain(int argc, char **argv)
         "nodeinfo-5",
         "nodeinfo-6",
     };
-    char cwd[PATH_MAX];
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return(EXIT_FAILURE);
-    }

     if (virInitialize() < 0)
         return EXIT_FAILURE;
diff --git a/tests/nwfilterxml2xmltest.c b/tests/nwfilterxml2xmltest.c
index 575177a..a1f57fa 100644
--- a/tests/nwfilterxml2xmltest.c
+++ b/tests/nwfilterxml2xmltest.c
@@ -16,9 +16,6 @@
 #include "nwfilter_conf.h"
 #include "testutilsqemu.h"

-static char *progname;
-static char *abs_srcdir;
-
 #define MAX_FILE 4096


@@ -85,21 +82,9 @@ static int testCompareXMLToXMLHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return (EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

 #define DO_TEST(NAME, EXPECT_WARN)                                \
     do {                                                          \
diff --git a/tests/qemuargv2xmltest.c b/tests/qemuargv2xmltest.c
index 0214db0..60dce46 100644
--- a/tests/qemuargv2xmltest.c
+++ b/tests/qemuargv2xmltest.c
@@ -16,8 +16,6 @@

 # include "testutilsqemu.h"

-static char *progname;
-static char *abs_srcdir;
 static struct qemud_driver driver;

 # define MAX_FILE 4096
@@ -103,21 +101,9 @@ static int testCompareXMLToArgvHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return (EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

     if ((driver.caps = testQemuCapsInit()) == NULL)
         return EXIT_FAILURE;
diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c
index c86c578..792b5ab 100644
--- a/tests/qemuhelptest.c
+++ b/tests/qemuhelptest.c
@@ -19,9 +19,6 @@ struct testInfo {
     unsigned int kvm_version;
 };

-static char *progname;
-static char *abs_srcdir;
-
 static void printMismatchedFlags(virBitmapPtr got,
                                  virBitmapPtr expect)
 {
@@ -121,21 +118,9 @@ cleanup:
 }

 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return (EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

 # define DO_TEST(name, version, is_kvm, kvm_version, ...)                   \
     do {                                                                    \
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index c06bdf6..ebde3a1 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -19,8 +19,6 @@

 # include "testutilsqemu.h"

-static char *progname;
-static char *abs_srcdir;
 static const char *abs_top_srcdir;
 static struct qemud_driver driver;

@@ -190,23 +188,11 @@ static int testCompareXMLToArgvHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
     char map[PATH_MAX];

-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return (EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));
-
     abs_top_srcdir = getenv("abs_top_srcdir");
     if (!abs_top_srcdir)
         abs_top_srcdir = "..";
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 27330a9..6f51d1e 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -15,8 +15,6 @@
 # include "qemu/qemu_conf.h"
 # include "testutilsqemu.h"

-static char *progname;
-static char *abs_srcdir;
 static struct qemud_driver driver;

 # define MAX_FILE 4096
@@ -83,21 +81,9 @@ static int testCompareXMLToXMLHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return (EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

     if ((driver.caps = testQemuCapsInit()) == NULL)
         return (EXIT_FAILURE);
diff --git a/tests/qparamtest.c b/tests/qparamtest.c
index a4ed1fb..6dfac43 100644
--- a/tests/qparamtest.c
+++ b/tests/qparamtest.c
@@ -183,8 +183,7 @@ static const struct qparamParseDataEntry params5[] = { { "foo", "one two" } };
 static const struct qparamParseDataEntry params6[] = { { "foo", "one" } };

 static int
-mymain(int argc ATTRIBUTE_UNUSED,
-       char **argv ATTRIBUTE_UNUSED)
+mymain(void)
 {
     int ret = 0;

diff --git a/tests/sexpr2xmltest.c b/tests/sexpr2xmltest.c
index 9f74ece..0919435 100644
--- a/tests/sexpr2xmltest.c
+++ b/tests/sexpr2xmltest.c
@@ -13,8 +13,6 @@
 #include "testutils.h"
 #include "testutilsxen.h"

-static char *progname;
-static char *abs_srcdir;
 static virCapsPtr caps;

 #define MAX_FILE 4096
@@ -99,26 +97,9 @@ static int testCompareHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return(EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return(EXIT_FAILURE);
-    }

     if (!(caps = testXenCapsInit()))
         return(EXIT_FAILURE);
diff --git a/tests/sockettest.c b/tests/sockettest.c
index 2c9ff03..b9e37ab 100644
--- a/tests/sockettest.c
+++ b/tests/sockettest.c
@@ -1,7 +1,7 @@
 /*
  * sockettest.c: Testing for src/util/network.c APIs
  *
- * Copyright (C) 2010 Red Hat, Inc.
+ * Copyright (C) 2010-2011 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -159,8 +159,7 @@ static int testNetmaskHelper(const void *opaque)


 static int
-mymain(int argc ATTRIBUTE_UNUSED,
-       char **argv ATTRIBUTE_UNUSED)
+mymain(void)
 {
     int ret = 0;
     /* Some of our tests deliberately test failure cases, so
diff --git a/tests/statstest.c b/tests/statstest.c
index 36cbea4..d18bb0c 100644
--- a/tests/statstest.c
+++ b/tests/statstest.c
@@ -41,8 +41,7 @@ static int testDeviceHelper(const void *data)
 }

 static int
-mymain(int argc ATTRIBUTE_UNUSED,
-       char **argv ATTRIBUTE_UNUSED)
+mymain(void)
 {
     int ret = 0;
     /* Some of our tests delibrately test failure cases, so
diff --git a/tests/storagepoolxml2xmltest.c b/tests/storagepoolxml2xmltest.c
index 2ec29e3..6641153 100644
--- a/tests/storagepoolxml2xmltest.c
+++ b/tests/storagepoolxml2xmltest.c
@@ -13,9 +13,6 @@
 #include "storage_conf.h"
 #include "testutilsqemu.h"

-static char *progname;
-static char *abs_srcdir;
-
 #define MAX_FILE 4096


@@ -64,21 +61,9 @@ static int testCompareXMLToXMLHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return (EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

 #define DO_TEST(name) \
     if (virtTestRun("Storage Pool XML-2-XML " name, \
diff --git a/tests/storagevolxml2xmltest.c b/tests/storagevolxml2xmltest.c
index ffa5dfe..0cd57af 100644
--- a/tests/storagevolxml2xmltest.c
+++ b/tests/storagevolxml2xmltest.c
@@ -13,9 +13,6 @@
 #include "storage_conf.h"
 #include "testutilsqemu.h"

-static char *progname;
-static char *abs_srcdir;
-
 #define MAX_FILE 4096


@@ -85,21 +82,9 @@ static int testCompareXMLToXMLHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return (EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

 #define DO_TEST(pool, name) \
     do {                    \
diff --git a/tests/testutils.c b/tests/testutils.c
index 1f3b569..456a735 100644
--- a/tests/testutils.c
+++ b/tests/testutils.c
@@ -55,6 +55,9 @@ static unsigned int testVerbose = -1;
 static unsigned int testOOM = 0;
 static unsigned int testCounter = 0;

+char *progname;
+char *abs_srcdir;
+
 double
 virtTestCountAverage(double *items, int nitems)
 {
@@ -472,9 +475,10 @@ virTestGetVerbose(void) {

 int virtTestMain(int argc,
                  char **argv,
-                 int (*func)(int, char **))
+                 int (*func)(void))
 {
     int ret;
+    char cwd[PATH_MAX];
 #if TEST_OOM
     int approxAlloc = 0;
     int n;
@@ -485,7 +489,20 @@ int virtTestMain(int argc,
     int worker = 0;
 #endif

-    fprintf(stderr, "TEST: %s\n", STRPREFIX(argv[0], "./") ? argv[0] + 2 : argv[0]);
+    abs_srcdir = getenv("abs_srcdir");
+    if (!abs_srcdir)
+        abs_srcdir = getcwd(cwd, sizeof(cwd));
+    if (!abs_srcdir)
+        exit(EXIT_AM_HARDFAIL);
+
+    progname = argv[0];
+    if (STRPREFIX(progname, "./"))
+        progname += 2;
+    if (argc > 1) {
+        fprintf(stderr, "Usage: %s\n", argv[0]);
+        return EXIT_FAILURE;
+    }
+    fprintf(stderr, "TEST: %s\n", progname);
     if (!virTestGetVerbose())
         fprintf(stderr, "      ");

@@ -520,7 +537,7 @@ int virtTestMain(int argc,
     }

     /* Run once to prime any static allocations & ensure it passes */
-    ret = (func)(argc, argv);
+    ret = (func)();
     if (ret != EXIT_SUCCESS)
         goto cleanup;

@@ -537,7 +554,7 @@ int virtTestMain(int argc,
         virAllocTestInit();

         /* Run again to count allocs, and ensure it passes :-) */
-        ret = (func)(argc, argv);
+        ret = (func)();
         if (ret != EXIT_SUCCESS)
             goto cleanup;

@@ -574,7 +591,7 @@ int virtTestMain(int argc,
             }
             virAllocTestOOM(n+1, oomCount);

-            if (((func)(argc, argv)) != EXIT_FAILURE) {
+            if (((func)()) != EXIT_FAILURE) {
                 ret = EXIT_FAILURE;
                 break;
             }
@@ -604,7 +621,7 @@ int virtTestMain(int argc,
     }
 cleanup:
 #else
-    ret = (func)(argc, argv);
+    ret = (func)();
 #endif

     virResetLastError();
diff --git a/tests/testutils.h b/tests/testutils.h
index 88603a1..0ea70ee 100644
--- a/tests/testutils.h
+++ b/tests/testutils.h
@@ -1,7 +1,7 @@
 /*
  * utils.c: test utils
  *
- * Copyright (C) 2005, 2008-2010 Red Hat, Inc.
+ * Copyright (C) 2005, 2008-2011 Red Hat, Inc.
  *
  * See COPYING.LIB for the License of this software
  *
@@ -14,6 +14,10 @@
 # include <stdio.h>

 # define EXIT_AM_SKIP 77 /* tell Automake we're skipping a test */
+# define EXIT_AM_HARDFAIL 99 /* tell Automake that the framework is broken */
+
+extern char *progname;
+extern char *abs_srcdir;

 double virtTestCountAverage(double *items,
                             int nitems);
@@ -44,11 +48,12 @@ char *virtTestLogContentAndReset(void);

 int virtTestMain(int argc,
                  char **argv,
-                 int (*func)(int, char **));
+                 int (*func)(void));

-# define VIRT_TEST_MAIN(func)                    \
-    int main(int argc, char **argv)  {          \
-        return virtTestMain(argc,argv, func);   \
+/* Setup, then call func() */
+# define VIRT_TEST_MAIN(func)                   \
+    int main(int argc, char **argv) {           \
+        return virtTestMain(argc, argv, func);  \
     }

 #endif /* __VIT_TEST_UTILS_H__ */
diff --git a/tests/virbuftest.c b/tests/virbuftest.c
index db08fc4..0094a16 100644
--- a/tests/virbuftest.c
+++ b/tests/virbuftest.c
@@ -64,8 +64,7 @@ out:
 }

 static int
-mymain(int argc ATTRIBUTE_UNUSED,
-       char **argv ATTRIBUTE_UNUSED)
+mymain(void)
 {
     int ret = 0;

diff --git a/tests/virshtest.c b/tests/virshtest.c
index 8ec97a8..465d5ea 100644
--- a/tests/virshtest.c
+++ b/tests/virshtest.c
@@ -8,8 +8,6 @@
 #include "xml.h"
 #include "testutils.h"

-static char *progname;
-static char *abs_srcdir;
 #define MAX_FILE 4096

 #define DOM_UUID "ef861801-45b9-11cb-88e3-afbfe5370493"
@@ -232,30 +230,20 @@ static int testCompareEcho(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
     char buffer[PATH_MAX];
-    char cwd[PATH_MAX];
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

 #ifdef WIN32
     exit (EXIT_AM_SKIP);
 #endif

-    snprintf(buffer, PATH_MAX-1, "test://%s/../examples/xml/test/testnode.xml", abs_srcdir);
+    snprintf(buffer, PATH_MAX-1,
+             "test://%s/../examples/xml/test/testnode.xml", abs_srcdir);
     buffer[PATH_MAX-1] = '\0';
-    progname = argv[0];
     custom_uri = buffer;

-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return(EXIT_FAILURE);
-    }
-
     if (virtTestRun("virsh list (default)",
                     1, testCompareListDefault, NULL) != 0)
         ret = -1;
diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c
index 5fed1c4..3b7e9be 100644
--- a/tests/vmx2xmltest.c
+++ b/tests/vmx2xmltest.c
@@ -11,8 +11,6 @@
 # include "testutils.h"
 # include "vmx/vmx.h"

-static char *progname = NULL;
-static char *abs_srcdir = NULL;
 static virCapsPtr caps = NULL;
 static virVMXContext ctx;

@@ -181,28 +179,9 @@ testParseVMXFileName(const char *fileName, void *opaque ATTRIBUTE_UNUSED)
 }

 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int result = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return EXIT_FAILURE;
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-
-    if (abs_srcdir == NULL) {
-        abs_srcdir = getcwd(cwd, sizeof(cwd));
-    }
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return EXIT_FAILURE;
-    }

 # define DO_TEST(_in, _out)                                                   \
         do {                                                                  \
diff --git a/tests/xencapstest.c b/tests/xencapstest.c
index 7b48812..36946cf 100644
--- a/tests/xencapstest.c
+++ b/tests/xencapstest.c
@@ -11,9 +11,6 @@
 #include "xen/xen_hypervisor.h"
 #include "files.h"

-static char *progname;
-static char *abs_srcdir;
-
 #define MAX_FILE 4096

 static int testCompareFiles(const char *hostmachine,
@@ -151,21 +148,9 @@ static int testXenppc64(const void *data ATTRIBUTE_UNUSED) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return(EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

     virInitialize();

diff --git a/tests/xmconfigtest.c b/tests/xmconfigtest.c
index 7d418a5..62d3488 100644
--- a/tests/xmconfigtest.c
+++ b/tests/xmconfigtest.c
@@ -1,7 +1,7 @@
 /*
  * xmconfigtest.c: Test backend for xm_internal config file handling
  *
- * Copyright (C) 2007, 2010 Red Hat, Inc.
+ * Copyright (C) 2007, 2010-2011 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -36,8 +36,6 @@
 #include "testutilsxen.h"
 #include "memory.h"

-static char *progname;
-static char *abs_srcdir;
 static virCapsPtr caps;

 #define MAX_FILE 4096
@@ -174,21 +172,9 @@ static int testCompareHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return(EXIT_FAILURE);
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));

     if (!(caps = testXenCapsInit()))
         return(EXIT_FAILURE);
diff --git a/tests/xml2sexprtest.c b/tests/xml2sexprtest.c
index cf530b6..b258c3d 100644
--- a/tests/xml2sexprtest.c
+++ b/tests/xml2sexprtest.c
@@ -14,8 +14,6 @@
 #include "testutils.h"
 #include "testutilsxen.h"

-static char *progname;
-static char *abs_srcdir;
 static virCapsPtr caps;

 #define MAX_FILE 4096
@@ -77,21 +75,9 @@ static int testCompareHelper(const void *data) {


 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int ret = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    abs_srcdir = getenv("abs_srcdir");
-    if (!abs_srcdir)
-        abs_srcdir = getcwd(cwd, sizeof(cwd));
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return(EXIT_FAILURE);
-    }

 #define DO_TEST(in, out, name, version)                                \
     do {                                                               \
diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c
index a5fb4f7..6a4b795 100644
--- a/tests/xml2vmxtest.c
+++ b/tests/xml2vmxtest.c
@@ -11,8 +11,6 @@
 # include "testutils.h"
 # include "vmx/vmx.h"

-static char *progname = NULL;
-static char *abs_srcdir = NULL;
 static virCapsPtr caps = NULL;
 static virVMXContext ctx;

@@ -198,28 +196,9 @@ testFormatVMXFileName(const char *src, void *opaque ATTRIBUTE_UNUSED)
 }

 static int
-mymain(int argc, char **argv)
+mymain(void)
 {
     int result = 0;
-    char cwd[PATH_MAX];
-
-    progname = argv[0];
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return EXIT_FAILURE;
-    }
-
-    abs_srcdir = getenv("abs_srcdir");
-
-    if (abs_srcdir == NULL) {
-        abs_srcdir = getcwd(cwd, sizeof(cwd));
-    }
-
-    if (argc > 1) {
-        fprintf(stderr, "Usage: %s\n", progname);
-        return EXIT_FAILURE;
-    }

 # define DO_TEST(_in, _out, _version)                                         \
         do {                                                                  \
-- 
1.7.4.4




More information about the libvir-list mailing list