On Fri, Oct 07, 2011 at 11:40:57AM +0200, Christophe Fergeau wrote:
---
configure.ac | 1 +
libvirt-gconfig/Makefile.am | 1 +
libvirt-gconfig/tests/Makefile.am | 16 ++++++
libvirt-gconfig/tests/test-domain-create.c | 53 +++++++++++++++++++
libvirt-gconfig/tests/test-domain-invalid.xml | 6 ++
libvirt-gconfig/tests/test-domain-noname.xml | 4 ++
libvirt-gconfig/tests/test-domain-parse.c | 67 +++++++++++++++++++++++++
libvirt-gconfig/tests/test-domain.xml | 5 ++
8 files changed, 153 insertions(+), 0 deletions(-)
create mode 100644 libvirt-gconfig/tests/Makefile.am
create mode 100644 libvirt-gconfig/tests/test-domain-create.c
create mode 100644 libvirt-gconfig/tests/test-domain-invalid.xml
create mode 100644 libvirt-gconfig/tests/test-domain-noname.xml
create mode 100644 libvirt-gconfig/tests/test-domain-parse.c
create mode 100644 libvirt-gconfig/tests/test-domain.xml
diff --git a/configure.ac b/configure.ac
index 0581874..7903281 100644
--- a/configure.ac
+++ b/configure.ac
@@ -201,6 +201,7 @@ AM_CONDITIONAL([WITH_GOBJECT_INTROSPECTION], [test
"x$enable_introspection" = "x
AC_OUTPUT(Makefile
libvirt-glib/Makefile
libvirt-gconfig/Makefile
+ libvirt-gconfig/tests/Makefile
libvirt-gobject/Makefile
examples/Makefile
python/Makefile
diff --git a/libvirt-gconfig/Makefile.am b/libvirt-gconfig/Makefile.am
index 634ad5a..8296dd1 100644
--- a/libvirt-gconfig/Makefile.am
+++ b/libvirt-gconfig/Makefile.am
@@ -1,3 +1,4 @@
+SUBDIRS = . tests
EXTRA_DIST = libvirt-gconfig.sym
diff --git a/libvirt-gconfig/tests/Makefile.am b/libvirt-gconfig/tests/Makefile.am
new file mode 100644
index 0000000..1406b17
--- /dev/null
+++ b/libvirt-gconfig/tests/Makefile.am
@@ -0,0 +1,16 @@
+noinst_PROGRAMS = test-domain-create test-domain-parse
+
+AM_CFLAGS = \
+ $(GOBJECT2_CFLAGS) \
+ $(LIBXML2_CFLAGS) \
+ $(WARN_CFLAGS)
+INCLUDES = -I$(top_srcdir)/libvirt-gconfig
+LDADD = \
+ $(top_builddir)/libvirt-gconfig/libvirt-gconfig-1.0.la \
+ $(GOBJECT2_LIBS) \
+ $(LIBXML2_LIBS) \
+ $(CYGWIN_EXTRA_LIBADD)
+
+test_domain_create_SOURCES = test-domain-create.c
+
+test_domain_parse_SOURCES = test-domain-parse.c
diff --git a/libvirt-gconfig/tests/test-domain-create.c
b/libvirt-gconfig/tests/test-domain-create.c
new file mode 100644
index 0000000..a742dd7
--- /dev/null
+++ b/libvirt-gconfig/tests/test-domain-create.c
@@ -0,0 +1,53 @@
+/*
+ * test-domain-create.c: test libvirt-gconfig domain creation
+ *
+ * Copyright (C) 2011 Red Hat
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * The Software is provided "as is", without warranty of any kind, express
+ * or implied, including but not limited to the warranties of
+ * merchantability, fitness for a particular purpose and noninfringement.
+ * In no event shall the authors or copyright holders be liable for any
+ * claim, damages or other liability, whether in an action of contract,
+ * tort or otherwise, arising from, out of or in connection with the
+ * software or the use or other dealings in the Software.
+ *
+ * Author: Christophe Fergeau <cfergeau(a)redhat.com>
+ */
+
+#include <string.h>
+#include <libvirt-gconfig/libvirt-gconfig.h>
+
+int main(void)
+{
+ GVirConfigDomain *domain;
+ char *name;
+ char *xml;
+
+ g_type_init();
+
+ domain = gvir_config_domain_new();
+ g_assert(domain != NULL);
+ gvir_config_domain_set_name(domain, "foo");
+ name = gvir_config_domain_get_name(domain);
+ g_assert(name != NULL);
+ g_assert(strcmp(name, "foo") == 0);
+ g_free(name);
+
+ xml = gvir_config_object_to_xml(GVIR_CONFIG_OBJECT(domain));
+ g_print("%s\n", xml);
+ g_free(xml);
+ g_object_unref(G_OBJECT(domain));
+
+ return 0;
+}
diff --git a/libvirt-gconfig/tests/test-domain-invalid.xml
b/libvirt-gconfig/tests/test-domain-invalid.xml
new file mode 100644
index 0000000..73c6e6e
--- /dev/null
+++ b/libvirt-gconfig/tests/test-domain-invalid.xml
@@ -0,0 +1,6 @@
+<invalidtag
+<domain type='xen' id='3'>
+ <name>fv0</name>
+ <uuid>4dea22b31d52d8f32516782e98ab3fa0</uuid>
+ <description>Some human readable description</description>
+</domain>
diff --git a/libvirt-gconfig/tests/test-domain-noname.xml
b/libvirt-gconfig/tests/test-domain-noname.xml
new file mode 100644
index 0000000..7974f83
--- /dev/null
+++ b/libvirt-gconfig/tests/test-domain-noname.xml
@@ -0,0 +1,4 @@
+<domain type='xen' id='3'>
+ <uuid>4dea22b31d52d8f32516782e98ab3fa0</uuid>
+ <description>Some human readable description</description>
+</domain>
diff --git a/libvirt-gconfig/tests/test-domain-parse.c
b/libvirt-gconfig/tests/test-domain-parse.c
new file mode 100644
index 0000000..3a36144
--- /dev/null
+++ b/libvirt-gconfig/tests/test-domain-parse.c
@@ -0,0 +1,67 @@
+/*
+ * test-domain-create.c: test libvirt-gconfig domain parsing
+ *
+ * Copyright (C) 2011 Red Hat
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * The Software is provided "as is", without warranty of any kind, express
+ * or implied, including but not limited to the warranties of
+ * merchantability, fitness for a particular purpose and noninfringement.
+ * In no event shall the authors or copyright holders be liable for any
+ * claim, damages or other liability, whether in an action of contract,
+ * tort or otherwise, arising from, out of or in connection with the
+ * software or the use or other dealings in the Software.
+ *
+ * Author: Christophe Fergeau <cfergeau(a)redhat.com>
+ */
+
+#include <string.h>
+#include <libvirt-gconfig/libvirt-gconfig.h>
+
+
+int main(int argc, char **argv)
+{
+ GVirConfigDomain *domain;
+ char *name;
+ char *xml;
+ GError *error = NULL;
+
+ if (argc != 2) {
+ g_print("Usage: %s filename\n", argv[0]);
+ g_print("Attempt to parse the libvirt XML definition from
filename\n");
+ return 1;
+ }
+
+ g_file_get_contents(argv[1], &xml, NULL, &error);
+ if (error != NULL) {
+ g_print("Couldn't read %s: %s\n", argv[1], error->message);
+ return 2;
+ }
+
+ g_type_init();
+
+ domain = gvir_config_domain_new_from_xml(xml);
+ g_assert(domain != NULL);
+ name = gvir_config_domain_get_name(domain);
+ g_assert(name != NULL);
+ g_assert(strcmp(name, "foo") == 0);
+ g_free(name);
+ g_free(xml);
+
+ xml = gvir_config_object_to_xml(GVIR_CONFIG_OBJECT(domain));
+ g_print("%s\n", xml);
+ g_free(xml);
+ g_object_unref(G_OBJECT(domain));
+
+ return 0;
+}
diff --git a/libvirt-gconfig/tests/test-domain.xml
b/libvirt-gconfig/tests/test-domain.xml
new file mode 100644
index 0000000..08a926e
--- /dev/null
+++ b/libvirt-gconfig/tests/test-domain.xml
@@ -0,0 +1,5 @@
+<domain type='xen' id='3'>
+ <name>foo</name>
+ <uuid>4dea22b31d52d8f32516782e98ab3fa0</uuid>
+ <description>Some human readable description</description>
+</domain>
ACK
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|