]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
* src/Makefile.am: add a tst target to ease building test progs
authorDaniel Veillard <veillard@redhat.com>
Thu, 21 Sep 2006 09:15:33 +0000 (09:15 +0000)
committerDaniel Veillard <veillard@redhat.com>
Thu, 21 Sep 2006 09:15:33 +0000 (09:15 +0000)
* src/xend_internal.c: fix the reconnection problem to xend pointed
  by Philippe Berthault
* tests/Makefile.am tests/reconnect.c: add a specific test case
Daniel

ChangeLog
src/Makefile.am
src/xend_internal.c
tests/Makefile.am
tests/reconnect.c [new file with mode: 0644]

index f7b5f52ed60c3002efb44390f1e0d7b17e20a6ca..c3ed087a19bd86a77287fc628fd8365efd9ec8ff 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Thu Sep 21 10:19:01 CEST 2006 Daniel Veillard <veillard@redhat.com>
+
+       * src/Makefile.am: add a tst target to ease building test progs
+       * src/xend_internal.c: fix the reconnection problem to xend pointed
+         by Philippe Berthault
+       * tests/Makefile.am tests/reconnect.c: add a specific test case
+
 Tue Sep 19 16:59:53 CEST 2006 Daniel Veillard <veillard@redhat.com>
 
        * src/xen_internal.c: applied patch from Jim Fehlig, about
index 7adfed32ba076fb53188b640d6d31e03757b81fc..9544a61f22cf3ecc56caae5686ccdb28c803421f 100644 (file)
@@ -35,3 +35,8 @@ virsh_LDFLAGS =
 virsh_DEPENDENCIES = $(DEPS)
 virsh_LDADD = $(LDADDS) $(VIRSH_LIBS)
 
+#
+# target to ease building test programs
+#
+tst: tst.c
+       $(CC) $(CFLAGS) -I../include -o tst tst.c .libs/libvirt.a -lxml2 -lxenstore -lpthread
index 1df2d0703fc1cb6d5bda15847ed59afd1899d3cd..1c4908b2f4ce939f6b84d21684f226854e4623e2 100644 (file)
@@ -2421,8 +2421,11 @@ xenDaemonGetType(virConnectPtr conn)
 int
 xenDaemonGetVersion(virConnectPtr conn, unsigned long *hvVer)
 {
-    static unsigned long version = 0;
-
+    struct sexpr *root;
+    const char *extra;
+    int major, minor, release = 0;
+    unsigned long version;
+    
     if (!VIR_IS_CONNECT(conn)) {
         virXendError(conn, VIR_ERR_INVALID_CONN, __FUNCTION__);
         return (-1);
@@ -2431,28 +2434,22 @@ xenDaemonGetVersion(virConnectPtr conn, unsigned long *hvVer)
         virXendError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
         return (-1);
     }
-    if (version == 0) {
-       struct sexpr *root;
-       const char *extra;
-       int major, minor, release = 0;
-        
-       root = sexpr_get(conn, "/xend/node/");
-       if (root == NULL)
-           return(-1);
-
-       major = sexpr_int(root, "node/xen_major");
-       minor = sexpr_int(root, "node/xen_minor");
-       extra = sexpr_node(root, "node/xen_extra");
-       if (extra != NULL) {
-           while (*extra != 0) {
-               if ((*extra >= '0') && (*extra <= '9'))
-                   release = release * 10 + (*extra - '0');
-               extra++;
-           }
+    root = sexpr_get(conn, "/xend/node/");
+    if (root == NULL)
+       return(-1);
+
+    major = sexpr_int(root, "node/xen_major");
+    minor = sexpr_int(root, "node/xen_minor");
+    extra = sexpr_node(root, "node/xen_extra");
+    if (extra != NULL) {
+       while (*extra != 0) {
+           if ((*extra >= '0') && (*extra <= '9'))
+               release = release * 10 + (*extra - '0');
+           extra++;
        }
-       sexpr_free(root);
-       version = major * 1000000 + minor * 1000 + release;
     }
+    sexpr_free(root);
+    version = major * 1000000 + minor * 1000 + release;
     *hvVer = version;
     return(0);
 }
index 98e7d4402a420e881edada95af1a1c25d05996ab..00d24a82ff3d36afc5df3a9862c3b34588120399 100644 (file)
@@ -19,9 +19,10 @@ LDADDS = \
 
 EXTRA_DIST = xmlrpcserver.py test_conf.sh
 
-noinst_PROGRAMS = xmlrpctest xml2sexprtest sexpr2xmltest virshtest conftest
+noinst_PROGRAMS = xmlrpctest xml2sexprtest sexpr2xmltest virshtest conftest \
+       reconnect
 
-TESTS = xml2sexprtest sexpr2xmltest virshtest test_conf.sh
+TESTS = xml2sexprtest sexpr2xmltest virshtest test_conf.sh reconnect
 
 valgrind:
        $(MAKE) check TESTS_ENVIRONMENT="valgrind --quiet"
@@ -59,5 +60,10 @@ conftest_SOURCES = \
 conftest_LDFLAGS =
 conftest_LDADD = $(LDADDS)
 
+reconnect_SOURCES = \
+       reconnect.c
+reconnect_LDFLAGS =
+reconnect_LDADD = $(LDADDS)
+
 $(LIBVIRT):
        -@(cd $(top_builddir)/src && $(MAKE) MAKEFLAGS+=--silent)
diff --git a/tests/reconnect.c b/tests/reconnect.c
new file mode 100644 (file)
index 0000000..eee844f
--- /dev/null
@@ -0,0 +1,38 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <libvirt/libvirt.h>
+
+int main(void) {
+    int id = 0;
+    virConnectPtr conn;
+    virDomainPtr dom;
+
+    conn = virConnectOpen("");
+    if (conn == NULL) {
+        fprintf(stderr, "First virConnectOpen() failed\n");
+       exit(1);
+    }
+    dom = virDomainLookupByID(conn, id);
+    if (dom == NULL) {
+        fprintf(stderr, "First lookup for domain %d failed\n", id);
+       exit(1);
+    }
+    virDomainFree(dom);
+    virConnectClose(conn);
+    conn = virConnectOpen("");
+    if (conn == NULL) {
+        fprintf(stderr, "Second virConnectOpen() failed\n");
+       exit(1);
+    }
+    dom = virDomainLookupByID(conn, id);
+    if (dom == NULL) {
+        fprintf(stderr, "Second lookup for domain %d failed\n", id);
+       exit(1);
+    }
+    virDomainFree(dom);
+    virConnectClose(conn);
+    printf("OK\n");
+    exit(0);
+    
+}
+