Fix to xen test case for threadsafety patches

This commit is contained in:
Daniel P. Berrange 2009-01-22 18:19:20 +00:00
parent 2b29698352
commit 39e6ded8ae
3 changed files with 31 additions and 2 deletions

View File

@ -1,3 +1,10 @@
Wed Jan 21 18:18:12 GMT 2009 Daniel P. Berrange <berrange@redhat.com>
Missing test case fix up from Xen threadsafety changes
* tests/sexpr2xmltest.c, tests/Makefile.am: Pass a real
connection object into the xenDaemonParseSxprString()
method, since it needs to use the priv object.
Thu Jan 22 09:23:53 PST 2009 John Levon <john.levon@sun.com>
Least privilege support for Solaris

View File

@ -121,7 +121,7 @@ xml2sexprtest_SOURCES = \
xml2sexprtest_LDADD = ../src/libvirt_driver_xen.la $(LDADDS)
sexpr2xmltest_SOURCES = \
sexpr2xmltest.c \
sexpr2xmltest.c testutilsxen.c testutilsxen.h \
testutils.c testutils.h
sexpr2xmltest_LDADD = ../src/libvirt_driver_xen.la $(LDADDS)

View File

@ -6,11 +6,15 @@
#include "internal.h"
#include "xml.h"
#include "datatypes.h"
#include "xen_unified.h"
#include "xend_internal.h"
#include "testutils.h"
#include "testutilsxen.h"
static char *progname;
static char *abs_srcdir;
static virCapsPtr caps;
#define MAX_FILE 4096
@ -23,6 +27,12 @@ static int testCompareFiles(const char *xml, const char *sexpr,
char *sexprPtr = &(sexprData[0]);
int ret = -1;
virDomainDefPtr def = NULL;
virConnectPtr conn;
struct _xenUnifiedPrivate priv;
conn = virGetConnect();
if (!conn) goto fail;
if (virtTestLoadFile(xml, &xmlPtr, MAX_FILE) < 0)
goto fail;
@ -30,7 +40,15 @@ static int testCompareFiles(const char *xml, const char *sexpr,
if (virtTestLoadFile(sexpr, &sexprPtr, MAX_FILE) < 0)
goto fail;
if (!(def = xenDaemonParseSxprString(NULL, sexprData, xendConfigVersion)))
memset(&priv, 0, sizeof priv);
/* Many puppies died to bring you this code. */
priv.xendConfigVersion = xendConfigVersion;
priv.caps = caps;
conn->privateData = &priv;
if (virMutexInit(&priv.lock) < 0)
goto fail;
if (!(def = xenDaemonParseSxprString(conn, sexprData, xendConfigVersion)))
goto fail;
if (!(gotxml = virDomainDefFormat(NULL, def, 0)))
@ -46,6 +64,7 @@ static int testCompareFiles(const char *xml, const char *sexpr,
fail:
free(gotxml);
virDomainDefFree(def);
virUnrefConnect(conn);
return ret;
}
@ -90,6 +109,9 @@ mymain(int argc, char **argv)
return(EXIT_FAILURE);
}
if (!(caps = testXenCapsInit()))
return(EXIT_FAILURE);
#define DO_TEST(in, out, version) \
do { \
struct testInfo info = { in, out, version }; \