aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2009-01-28 21:53:48 +0000
committerDaniel P. Berrange <berrange@redhat.com>2009-01-28 21:53:48 +0000
commitca9af16aa72d5249a25ce0b31dd1ac72039cf850 (patch)
tree9ca667cdba1aa89cf55796a9f9bda16e743c631e /tests/testutils.c
parentSolaris portability for RPC code data types (diff)
downloadlibvirt-ca9af16aa72d5249a25ce0b31dd1ac72039cf850.tar.gz
libvirt-ca9af16aa72d5249a25ce0b31dd1ac72039cf850.tar.bz2
libvirt-ca9af16aa72d5249a25ce0b31dd1ac72039cf850.zip
Fix bogus valgrind memory leak warnings in test suite
Diffstat (limited to 'tests/testutils.c')
-rw-r--r--tests/testutils.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/tests/testutils.c b/tests/testutils.c
index 7c6ae61b1..e8b07fc60 100644
--- a/tests/testutils.c
+++ b/tests/testutils.c
@@ -26,6 +26,8 @@
#include "internal.h"
#include "memory.h"
#include "util.h"
+#include "threads.h"
+#include "virterror_internal.h"
#if TEST_OOM_TRACE
#include <execinfo.h>
@@ -319,8 +321,8 @@ int virtTestMain(int argc,
int (*func)(int, char **))
{
char *debugStr;
-#if TEST_OOM
int ret;
+#if TEST_OOM
int approxAlloc = 0;
int n;
char *oomStr = NULL;
@@ -330,6 +332,10 @@ int virtTestMain(int argc,
int worker = 0;
#endif
+ if (virThreadInitialize() < 0 ||
+ virErrorInitialize() < 0)
+ return 1;
+
if ((debugStr = getenv("VIR_TEST_DEBUG")) != NULL) {
if (virStrToLong_ui(debugStr, NULL, 10, &testDebug) < 0)
testDebug = 0;
@@ -349,8 +355,10 @@ int virtTestMain(int argc,
if (getenv("VIR_TEST_MP") != NULL) {
mp = sysconf(_SC_NPROCESSORS_ONLN);
fprintf(stderr, "Using %d worker processes\n", mp);
- if (VIR_ALLOC_N(workers, mp) < 0)
- return EXIT_FAILURE;
+ if (VIR_ALLOC_N(workers, mp) < 0) {
+ ret = EXIT_FAILURE;
+ goto cleanup;
+ }
}
if (testOOM)
@@ -359,7 +367,7 @@ int virtTestMain(int argc,
/* Run once to count allocs, and ensure it passes :-) */
ret = (func)(argc, argv);
if (ret != EXIT_SUCCESS)
- return EXIT_FAILURE;
+ goto cleanup;
#if TEST_OOM_TRACE
if (testDebug)
@@ -431,9 +439,11 @@ int virtTestMain(int argc,
else
fprintf(stderr, " FAILED\n");
}
- return ret;
-
+cleanup:
#else
- return (func)(argc, argv);
+ ret = (func)(argc, argv);
#endif
+
+ virResetLastError();
+ return ret;
}