提交 ca9af16a 编写于 作者: D Daniel P. Berrange

Fix bogus valgrind memory leak warnings in test suite

上级 9322b2e8
Wed Jan 28 21:33:11 GMT 2009 Daniel P.Berrange <berrange@redhat.com
Wed Jan 28 21:53:11 GMT 2009 Daniel P.Berrange <berrange@redhat.com>
Fix bogus valgrind memory leak warnings
* tests/testutils.c: Clear global error upon exit
* tests/.valgrind.supp: Ignore memory from thread local
error storage
Wed Jan 28 21:33:11 GMT 2009 Daniel P.Berrange <berrange@redhat.com>
Fix RPC portability to Solaris
* configure.in: s/RPCGEN/HAVE_RPCGEN/ for automake
......
......@@ -238,3 +238,18 @@
fun:virtTestRun
fun:mymain
}
{
ignoreThreadLocalErrorObject
Memcheck:Leak
fun:calloc
fun:virAlloc
fun:virLastErrorObject
fun:virRaiseError
fun:statsErrorFunc
fun:xenLinuxDomainDeviceID
fun:testDeviceHelper
fun:virtTestRun
fun:mymain
fun:virtTestMain
fun:main
}
......@@ -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;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册