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@xxxxxxxxxx> > + */ > + > +#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@xxxxxxxxxx> > + */ > + > +#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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list