]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
tests: Add network XML to XML tests.
authorCole Robinson <crobinso@redhat.com>
Fri, 9 Oct 2009 12:47:43 +0000 (08:47 -0400)
committerCole Robinson <crobinso@redhat.com>
Fri, 16 Oct 2009 14:52:26 +0000 (10:52 -0400)
12 files changed:
tests/.gitignore
tests/Makefile.am
tests/networkschematest
tests/networkxml2xmlin/isolated-network.xml [new file with mode: 0644]
tests/networkxml2xmlin/nat-network.xml [new file with mode: 0644]
tests/networkxml2xmlin/netboot-network.xml [moved from tests/networkschemadata/netboot-network.xml with 68% similarity]
tests/networkxml2xmlin/routed-network.xml [new file with mode: 0644]
tests/networkxml2xmlout/isolated-network.xml [new file with mode: 0644]
tests/networkxml2xmlout/nat-network.xml [new file with mode: 0644]
tests/networkxml2xmlout/netboot-network.xml [new file with mode: 0644]
tests/networkxml2xmlout/routed-network.xml [new file with mode: 0644]
tests/networkxml2xmltest.c [new file with mode: 0644]

index 41f84543f4b99e17357afa89ef2ad54d11110547..c2021412d6c106cd5d12a9d7e49fa3e7794fbd9e 100644 (file)
@@ -13,6 +13,7 @@ qemuxml2xmltest
 qemuxml2argvtest
 qemuargv2xmltest
 qemuhelptest
+networkxml2xmltest
 nodedevxml2xmltest
 interfacexml2xmltest
 storagepoolxml2xmltest
index a62c01bb420e7e6bb4691c7572f46bc785116de9..b6acfa4105c70ebc401c6b7ffc41f73a620e3da3 100644 (file)
@@ -56,7 +56,8 @@ EXTRA_DIST =          \
        capabilityschematest \
        capabilityschemadata \
        networkschematest \
-       networkschemadata \
+       networkpoolxml2xmlout \
+       networkpoolxml2xmlin \
        domainschematest \
        domainschemadata \
        interfaceschemadata \
@@ -96,6 +97,8 @@ if WITH_CIL
 noinst_PROGRAMS += object-locking
 endif
 
+noinst_PROGRAMS += networkxml2xmltest
+
 noinst_PROGRAMS += storagepoolxml2xmltest
 
 noinst_PROGRAMS += nodedevxml2xmltest
@@ -171,6 +174,8 @@ noinst_PROGRAMS += eventtest
 TESTS += eventtest
 endif
 
+TESTS += networkxml2xmltest
+
 TESTS += storagepoolxml2xmltest
 
 TESTS += nodedevxml2xmltest
@@ -269,6 +274,11 @@ else
 EXTRA_DIST += esxutilstest.c vmx2xmltest.c xml2vmxtest.c
 endif
 
+networkxml2xmltest_SOURCES = \
+       networkxml2xmltest.c \
+       testutils.c testutils.h
+networkxml2xmltest_LDADD = $(LDADDS)
+
 storagepoolxml2xmltest_SOURCES = \
        storagepoolxml2xmltest.c \
        testutils.c testutils.h
index 8bb24cd091f2da2c7dbd2521f2daf645da76cddb..6305576b98c638b309e4cf3fd11697479993a8cf 100755 (executable)
@@ -2,8 +2,7 @@
 
 source ./schematestutils.sh
 
-DIRS="../src/network networkschemadata"
+DIRS="../src/network networkxml2xmlin networkxml2xmlout"
 SCHEMA="network.rng"
 
 check_schema "$DIRS" "$SCHEMA"
-
diff --git a/tests/networkxml2xmlin/isolated-network.xml b/tests/networkxml2xmlin/isolated-network.xml
new file mode 100644 (file)
index 0000000..507e3bb
--- /dev/null
@@ -0,0 +1,10 @@
+<network>
+  <name>private</name>
+  <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
+  <bridge name="virbr2" />
+  <ip address="192.168.152.1" netmask="255.255.255.0">
+    <dhcp>
+      <range start="192.168.152.2" end="192.168.152.254" />
+    </dhcp>
+  </ip>
+</network>
diff --git a/tests/networkxml2xmlin/nat-network.xml b/tests/networkxml2xmlin/nat-network.xml
new file mode 100644 (file)
index 0000000..93ab186
--- /dev/null
@@ -0,0 +1,13 @@
+<network>
+  <name>default</name>
+  <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
+  <bridge name="virbr0" />
+  <forward mode="nat" dev="eth1"/>
+  <ip address="192.168.122.1" netmask="255.255.255.0">
+    <dhcp>
+      <range start="192.168.122.2" end="192.168.122.254" />
+      <host mac="00:16:3e:77:e2:ed" name="a.example.com" ip="192.168.122.10" />
+      <host mac="00:16:3e:3e:a9:1a" name="b.example.com" ip="192.168.122.11" />
+    </dhcp>
+  </ip>
+</network>
similarity index 68%
rename from tests/networkschemadata/netboot-network.xml
rename to tests/networkxml2xmlin/netboot-network.xml
index 7274ee6b9910d04c20de95bff7819a0c5dc7a632..ed756630534aa3487c6d6977eba734a426a711a0 100644 (file)
@@ -1,6 +1,8 @@
 <network>
   <name>netboot</name>
-  <bridge name="virbr1" />
+  <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
+  <bridge name="virbr1" stp='off' delay='1'/>
+  <domain name="example.com"/>
   <forward/>
   <ip address="192.168.122.1" netmask="255.255.255.0">
     <tftp root="/var/lib/tftproot" />
diff --git a/tests/networkxml2xmlin/routed-network.xml b/tests/networkxml2xmlin/routed-network.xml
new file mode 100644 (file)
index 0000000..824ad75
--- /dev/null
@@ -0,0 +1,11 @@
+<network>
+  <name>local</name>
+  <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
+  <bridge name="virbr1" />
+  <forward mode="route" dev="eth1"/>
+  <ip address="192.168.122.1" netmask="255.255.255.0">
+    <dhcp>
+      <range start="192.168.122.2" end="192.168.122.254" />
+    </dhcp>
+  </ip>
+</network>
diff --git a/tests/networkxml2xmlout/isolated-network.xml b/tests/networkxml2xmlout/isolated-network.xml
new file mode 100644 (file)
index 0000000..1d06f19
--- /dev/null
@@ -0,0 +1,10 @@
+<network>
+  <name>private</name>
+  <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
+  <bridge name='virbr2' stp='on' delay='0' />
+  <ip address='192.168.152.1' netmask='255.255.255.0'>
+    <dhcp>
+      <range start='192.168.152.2' end='192.168.152.254' />
+    </dhcp>
+  </ip>
+</network>
diff --git a/tests/networkxml2xmlout/nat-network.xml b/tests/networkxml2xmlout/nat-network.xml
new file mode 100644 (file)
index 0000000..036d4fb
--- /dev/null
@@ -0,0 +1,13 @@
+<network>
+  <name>default</name>
+  <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
+  <forward dev='eth1' mode='nat'/>
+  <bridge name='virbr0' stp='on' delay='0' />
+  <ip address='192.168.122.1' netmask='255.255.255.0'>
+    <dhcp>
+      <range start='192.168.122.2' end='192.168.122.254' />
+      <host mac='00:16:3e:77:e2:ed' name='a.example.com' ip='192.168.122.10' />
+      <host mac='00:16:3e:3e:a9:1a' name='b.example.com' ip='192.168.122.11' />
+    </dhcp>
+  </ip>
+</network>
diff --git a/tests/networkxml2xmlout/netboot-network.xml b/tests/networkxml2xmlout/netboot-network.xml
new file mode 100644 (file)
index 0000000..b8a4d99
--- /dev/null
@@ -0,0 +1,14 @@
+<network>
+  <name>netboot</name>
+  <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
+  <forward mode='nat'/>
+  <bridge name='virbr1' stp='off' delay='1' />
+  <domain name='example.com'/>
+  <ip address='192.168.122.1' netmask='255.255.255.0'>
+    <tftp root='/var/lib/tftproot' />
+    <dhcp>
+      <range start='192.168.122.2' end='192.168.122.254' />
+      <bootp file='pxeboot.img' />
+    </dhcp>
+  </ip>
+</network>
diff --git a/tests/networkxml2xmlout/routed-network.xml b/tests/networkxml2xmlout/routed-network.xml
new file mode 100644 (file)
index 0000000..fa36c08
--- /dev/null
@@ -0,0 +1,11 @@
+<network>
+  <name>local</name>
+  <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
+  <forward dev='eth1' mode='route'/>
+  <bridge name='virbr1' stp='on' delay='0' />
+  <ip address='192.168.122.1' netmask='255.255.255.0'>
+    <dhcp>
+      <range start='192.168.122.2' end='192.168.122.254' />
+    </dhcp>
+  </ip>
+</network>
diff --git a/tests/networkxml2xmltest.c b/tests/networkxml2xmltest.c
new file mode 100644 (file)
index 0000000..b02d735
--- /dev/null
@@ -0,0 +1,96 @@
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+
+#include <sys/types.h>
+#include <fcntl.h>
+
+#include "internal.h"
+#include "testutils.h"
+#include "network_conf.h"
+#include "testutilsqemu.h"
+
+static char *progname;
+static char *abs_srcdir;
+
+#define MAX_FILE 4096
+
+
+static int testCompareXMLToXMLFiles(const char *inxml, const char *outxml) {
+    char inXmlData[MAX_FILE];
+    char *inXmlPtr = &(inXmlData[0]);
+    char outXmlData[MAX_FILE];
+    char *outXmlPtr = &(outXmlData[0]);
+    char *actual = NULL;
+    int ret = -1;
+    virNetworkDefPtr dev = NULL;
+
+    if (virtTestLoadFile(inxml, &inXmlPtr, MAX_FILE) < 0)
+        goto fail;
+    if (virtTestLoadFile(outxml, &outXmlPtr, MAX_FILE) < 0)
+        goto fail;
+
+    if (!(dev = virNetworkDefParseString(NULL, inXmlData)))
+        goto fail;
+
+    if (!(actual = virNetworkDefFormat(NULL, dev)))
+        goto fail;
+
+    if (STRNEQ(outXmlData, actual)) {
+        virtTestDifference(stderr, outXmlData, actual);
+        goto fail;
+    }
+
+    ret = 0;
+
+ fail:
+    free(actual);
+    virNetworkDefFree(dev);
+    return ret;
+}
+
+static int testCompareXMLToXMLHelper(const void *data) {
+    char inxml[PATH_MAX];
+    char outxml[PATH_MAX];
+    snprintf(inxml, PATH_MAX, "%s/networkxml2xmlin/%s.xml",
+             abs_srcdir, (const char*)data);
+    snprintf(outxml, PATH_MAX, "%s/networkxml2xmlout/%s.xml",
+             abs_srcdir, (const char*)data);
+    return testCompareXMLToXMLFiles(inxml, outxml);
+}
+
+
+static int
+mymain(int argc, char **argv)
+{
+    int ret = 0;
+    char cwd[PATH_MAX];
+
+    progname = argv[0];
+
+    if (argc > 1) {
+        fprintf(stderr, "Usage: %s\n", progname);
+        return (EXIT_FAILURE);
+    }
+
+    abs_srcdir = getenv("abs_srcdir");
+    if (!abs_srcdir)
+        abs_srcdir = getcwd(cwd, sizeof(cwd));
+
+#define DO_TEST(name) \
+    if (virtTestRun("Network XML-2-XML " name, \
+                    1, testCompareXMLToXMLHelper, (name)) < 0) \
+        ret = -1
+
+    DO_TEST("isolated-network");
+    DO_TEST("routed-network");
+    DO_TEST("nat-network");
+    DO_TEST("netboot-network");
+
+    return (ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+
+VIRT_TEST_MAIN(mymain)