[libvirt] [libvirt-glib 12/23] Add domain creation/parsing test
Daniel P. Berrange
berrange at redhat.com
Tue Oct 18 11:42:29 UTC 2011
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 at 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 at 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 :|
More information about the libvir-list
mailing list