[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