On Wed, Aug 17, 2016 at 06:58:51PM +0300, Visarion Alexandru wrote:
From: Visarion Alexandru <viorel.visarion(a)gmail.com>
---
tests/test-gconfig.c | 36 ++++++++++++++++++++++
.../xml/gconfig-domain-device-graphics-listen.xml | 7 +++++
2 files changed, 43 insertions(+)
create mode 100644 tests/xml/gconfig-domain-device-graphics-listen.xml
diff --git a/tests/test-gconfig.c b/tests/test-gconfig.c
index a26bb5f..28565e3 100644
--- a/tests/test-gconfig.c
+++ b/tests/test-gconfig.c
@@ -481,6 +481,40 @@ static void test_domain_device_graphics(void)
g_object_unref(G_OBJECT(domain));
}
+static void test_domain_device_graphics_listen(void)
+{
+ GVirConfigDomain *domain;
+ GVirConfigDomainGraphicsSpice *graphics = NULL;
+
+ domain = gvir_config_domain_new();
+ GList *listen_list = NULL;
+
+ graphics = gvir_config_domain_graphics_spice_new();
+
+ /* listen address node */
+ GVirConfigDomainGraphicsListenAddress *address_listen =
gvir_config_domain_graphics_listen_address_new();
+ GInetAddress *inet_address = g_inet_address_new_from_string("0.0.0.0");
This needs to be g_object_unref'ed() when no longer needed
+
+ gvir_config_domain_graphics_listen_address_set_inet_address(address_listen,
inet_address);
+ GInetAddress *ret_inet_address =
gvir_config_domain_graphics_listen_address_get_inet_address(address_listen);
This too needs g_object_unref()
+ g_assert_cmpstr(g_inet_address_to_string(inet_address), ==,
g_inet_address_to_string(ret_inet_address));
Better to use g_inet_address_equal() here, as otherwise you need to make
sure you free the strings returned by g_inet_address_to_string().
It's better if the test case is leak-free so that it's easier to detect
leaks in newly added code. And if people use it as a base for their
code, better if the code is not too bad.
+
+ gvir_config_domain_graphics_listen_address_set_address(address_listen,
"127.0.0.1");
+ const gchar *ret_address =
gvir_config_domain_graphics_listen_address_get_address(address_listen);
+ g_assert_cmpstr("127.0.0.1", ==, ret_address);
+
+ /* test listen setter */
+ listen_list = g_list_append(listen_list, address_listen);
You are missing a g_list_free() when you no longer need this
+ gvir_config_domain_graphics_spice_set_listen_devices(graphics,
listen_list);
+ g_object_unref(G_OBJECT(address_listen));
+
+ gvir_config_domain_add_device(domain, GVIR_CONFIG_DOMAIN_DEVICE(graphics));
+ g_object_unref(G_OBJECT(graphics));
I've fixed all this locally, so no need to resend a fixed version.
Christophe