diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2009-01-28 21:53:48 +0000 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2009-01-28 21:53:48 +0000 |
commit | ca9af16aa72d5249a25ce0b31dd1ac72039cf850 (patch) | |
tree | 9ca667cdba1aa89cf55796a9f9bda16e743c631e /tests/testutils.c | |
parent | Solaris portability for RPC code data types (diff) | |
download | libvirt-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.c | 24 |
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; } |