aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/.gitignore1
-rw-r--r--tests/Makefile.am12
-rwxr-xr-xtests/networkschematest3
-rw-r--r--tests/networkxml2xmlin/isolated-network.xml10
-rw-r--r--tests/networkxml2xmlin/nat-network.xml13
-rw-r--r--tests/networkxml2xmlin/netboot-network.xml (renamed from tests/networkschemadata/netboot-network.xml)4
-rw-r--r--tests/networkxml2xmlin/routed-network.xml11
-rw-r--r--tests/networkxml2xmlout/isolated-network.xml10
-rw-r--r--tests/networkxml2xmlout/nat-network.xml13
-rw-r--r--tests/networkxml2xmlout/netboot-network.xml14
-rw-r--r--tests/networkxml2xmlout/routed-network.xml11
-rw-r--r--tests/networkxml2xmltest.c96
12 files changed, 194 insertions, 4 deletions
diff --git a/tests/.gitignore b/tests/.gitignore
index 41f84543f..c2021412d 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -13,6 +13,7 @@ qemuxml2xmltest
qemuxml2argvtest
qemuargv2xmltest
qemuhelptest
+networkxml2xmltest
nodedevxml2xmltest
interfacexml2xmltest
storagepoolxml2xmltest
diff --git a/tests/Makefile.am b/tests/Makefile.am
index a62c01bb4..b6acfa410 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -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
diff --git a/tests/networkschematest b/tests/networkschematest
index 8bb24cd09..6305576b9 100755
--- a/tests/networkschematest
+++ b/tests/networkschematest
@@ -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
index 000000000..507e3bb90
--- /dev/null
+++ b/tests/networkxml2xmlin/isolated-network.xml
@@ -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
index 000000000..93ab18616
--- /dev/null
+++ b/tests/networkxml2xmlin/nat-network.xml
@@ -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>
diff --git a/tests/networkschemadata/netboot-network.xml b/tests/networkxml2xmlin/netboot-network.xml
index 7274ee6b9..ed7566305 100644
--- a/tests/networkschemadata/netboot-network.xml
+++ b/tests/networkxml2xmlin/netboot-network.xml
@@ -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
index 000000000..824ad75ed
--- /dev/null
+++ b/tests/networkxml2xmlin/routed-network.xml
@@ -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
index 000000000..1d06f19bb
--- /dev/null
+++ b/tests/networkxml2xmlout/isolated-network.xml
@@ -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
index 000000000..036d4fb61
--- /dev/null
+++ b/tests/networkxml2xmlout/nat-network.xml
@@ -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
index 000000000..b8a4d996f
--- /dev/null
+++ b/tests/networkxml2xmlout/netboot-network.xml
@@ -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
index 000000000..fa36c0800
--- /dev/null
+++ b/tests/networkxml2xmlout/routed-network.xml
@@ -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
index 000000000..b02d735a4
--- /dev/null
+++ b/tests/networkxml2xmltest.c
@@ -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)