[glib] gio/tests: fix leaks
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] gio/tests: fix leaks
- Date: Mon, 3 Sep 2012 12:57:10 +0000 (UTC)
commit beb0f9c15058e2249ffed73747f11298e6949b84
Author: Dan Winship <danw gnome org>
Date: Fri Aug 24 20:43:54 2012 -0400
gio/tests: fix leaks
https://bugzilla.gnome.org/show_bug.cgi?id=682560
gio/tests/appinfo.c | 2 ++
gio/tests/contexts.c | 13 ++++++++++++-
gio/tests/converter-stream.c | 1 +
gio/tests/file.c | 5 ++++-
gio/tests/live-g-file.c | 21 +++++++++++++++++----
gio/tests/memory-input-stream.c | 3 +++
gio/tests/mimeapps.c | 1 +
gio/tests/network-address.c | 1 +
gio/tests/network-monitor.c | 26 +++++++++++++++++++++++++-
gio/tests/proxy-test.c | 36 +++++++++++++++++++++++++++---------
gio/tests/unix-streams.c | 1 +
11 files changed, 94 insertions(+), 16 deletions(-)
---
diff --git a/gio/tests/appinfo.c b/gio/tests/appinfo.c
index 7e82173..3cbd0f1 100644
--- a/gio/tests/appinfo.c
+++ b/gio/tests/appinfo.c
@@ -38,6 +38,8 @@ test_launch (void)
g_assert (g_app_info_launch_uris (appinfo, l, NULL, &error));
g_assert_no_error (error);
g_list_free (l);
+
+ g_object_unref (appinfo);
}
static void
diff --git a/gio/tests/contexts.c b/gio/tests/contexts.c
index aa8bdd4..fd5cd1a 100644
--- a/gio/tests/contexts.c
+++ b/gio/tests/contexts.c
@@ -119,6 +119,9 @@ test1_thread (gpointer user_data)
g_cond_signal (&test1_cond);
g_mutex_unlock (&test1_mutex);
+ g_main_context_pop_thread_default (context);
+ g_main_context_unref (context);
+
return NULL;
}
@@ -164,6 +167,9 @@ test_context_independence (void)
g_source_remove (default_timeout);
g_source_destroy (thread_default_timeout);
g_source_unref (thread_default_timeout);
+
+ g_main_context_pop_thread_default (context);
+ g_main_context_unref (context);
}
static gboolean
@@ -177,6 +183,7 @@ int
main (int argc, char **argv)
{
GError *error = NULL;
+ int ret;
g_type_init ();
g_test_init (&argc, &argv, NULL);
@@ -188,5 +195,9 @@ main (int argc, char **argv)
g_test_add_func ("/gio/contexts/thread-independence", test_thread_independence);
g_test_add_func ("/gio/contexts/context-independence", test_context_independence);
- return g_test_run();
+ ret = g_test_run();
+
+ g_free (test_file_buffer);
+
+ return ret;
}
diff --git a/gio/tests/converter-stream.c b/gio/tests/converter-stream.c
index 4404fb8..fc9c896 100644
--- a/gio/tests/converter-stream.c
+++ b/gio/tests/converter-stream.c
@@ -1138,6 +1138,7 @@ test_truncation (gconstpointer data)
g_output_stream_splice (ostream2, cistream1, 0, NULL, &error);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_PARTIAL_INPUT);
+ g_error_free (error);
g_object_unref (istream1);
g_object_unref (decompressor);
diff --git a/gio/tests/file.c b/gio/tests/file.c
index c707d0d..f19b87d 100644
--- a/gio/tests/file.c
+++ b/gio/tests/file.c
@@ -122,8 +122,11 @@ monitor_changed (GFileMonitor *monitor,
gpointer user_data)
{
CreateDeleteData *data = user_data;
+ gchar *path;
- g_assert_cmpstr (data->monitor_path, ==, g_file_get_path (file));
+ path = g_file_get_path (file);
+ g_assert_cmpstr (data->monitor_path, ==, path);
+ g_free (path);
if (event_type == G_FILE_MONITOR_EVENT_CREATED)
data->monitor_created++;
diff --git a/gio/tests/live-g-file.c b/gio/tests/live-g-file.c
index e764144..32b600b 100644
--- a/gio/tests/live-g-file.c
+++ b/gio/tests/live-g-file.c
@@ -431,6 +431,7 @@ test_initial_structure (gconstpointer test_data)
test_attributes (item, info);
g_object_unref (child);
+ g_object_unref (info);
}
/* read and test the pattern file */
@@ -447,6 +448,7 @@ test_initial_structure (gconstpointer test_data)
g_assert (info != NULL);
size = g_file_info_get_size (info);
g_assert_cmpint (size, ==, PATTERN_FILE_SIZE);
+ g_object_unref (info);
error = NULL;
ins = g_file_read (child, NULL, &error);
@@ -538,6 +540,9 @@ traverse_recurse_dirs (GFile * parent, GFile * root)
g_object_unref (descend);
error = NULL;
+ g_object_unref (info);
+ g_free (relative_path);
+
info = g_file_enumerator_next_file (enumerator, NULL, &error);
}
g_assert_no_error (error);
@@ -891,6 +896,7 @@ test_create (gconstpointer test_data)
error->code, error->message);
g_assert_cmpint (res, ==, TRUE);
g_assert_no_error (error);
+ g_object_unref (os);
}
g_object_unref (child);
}
@@ -961,6 +967,7 @@ test_open (gconstpointer test_data)
&error);
g_assert_cmpint (res, ==, TRUE);
g_assert_no_error (error);
+ g_object_unref (input_stream);
}
g_object_unref (child);
}
@@ -977,6 +984,7 @@ test_delete (gconstpointer test_data)
GError *error;
guint i;
struct StructureItem item;
+ gchar *path;
g_assert (test_data != NULL);
log ("\n");
@@ -1000,8 +1008,10 @@ test_delete (gconstpointer test_data)
g_assert (child != NULL);
/* we don't care about result here */
- log (" Deleting %s, path = %s\n", item.filename,
- g_file_get_path (child));
+ path = g_file_get_path (child);
+ log (" Deleting %s, path = %s\n", item.filename, path);
+ g_free (path);
+
error = NULL;
if ((item.extra_flags & TEST_DELETE_NORMAL) == TEST_DELETE_NORMAL)
res = g_file_delete (child, NULL, &error);
@@ -1138,11 +1148,10 @@ cleanup_dir_recurse (GFile *parent, GFile *root)
g_assert (root != NULL);
- error = NULL;
enumerator =
g_file_enumerate_children (parent, "*",
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL,
- &error);
+ NULL);
if (! enumerator)
return;
@@ -1154,6 +1163,7 @@ cleanup_dir_recurse (GFile *parent, GFile *root)
g_assert (descend != NULL);
relative_path = g_file_get_relative_path (root, descend);
g_assert (relative_path != NULL);
+ g_free (relative_path);
log (" deleting '%s'\n", g_file_info_get_display_name (info));
@@ -1166,6 +1176,8 @@ cleanup_dir_recurse (GFile *parent, GFile *root)
g_object_unref (descend);
error = NULL;
+ g_object_unref (info);
+
info = g_file_enumerator_next_file (enumerator, NULL, &error);
}
g_assert_no_error (error);
@@ -1263,6 +1275,7 @@ main (int argc, char *argv[])
return g_test_run ();
}
+ g_option_context_free (context);
/* Write test - clean target directory first */
/* this can be also considered as a test - enumerate + delete */
diff --git a/gio/tests/memory-input-stream.c b/gio/tests/memory-input-stream.c
index 39079cb..d012125 100644
--- a/gio/tests/memory-input-stream.c
+++ b/gio/tests/memory-input-stream.c
@@ -217,6 +217,9 @@ test_read_bytes (void)
data = g_bytes_get_data (bytes, &size);
g_assert_cmpint (size, ==, 26);
g_assert (strncmp (data, data1, 26) == 0);
+
+ g_bytes_unref (bytes);
+ g_object_unref (stream);
}
int
diff --git a/gio/tests/mimeapps.c b/gio/tests/mimeapps.c
index 05816e6..5c99917 100644
--- a/gio/tests/mimeapps.c
+++ b/gio/tests/mimeapps.c
@@ -349,6 +349,7 @@ test_mime_file (void)
str = g_key_file_get_string (keyfile, "Default Applications", contenttype, &error);
g_assert_no_error (error);
g_assert_cmpstr (str, ==, "myapp.desktop");
+ g_free (str);
g_key_file_free (keyfile);
diff --git a/gio/tests/network-address.c b/gio/tests/network-address.c
index 74fbb39..7d6a0da 100644
--- a/gio/tests/network-address.c
+++ b/gio/tests/network-address.c
@@ -52,6 +52,7 @@ test_parse_uri (void)
address = (GNetworkAddress*)g_network_address_parse_uri ("ftp://joe%x- ftp gnome org:2020/start", 8080, &error);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
g_assert (address == NULL);
+ g_error_free (error);
}
typedef struct _ParseTest ParseTest;
diff --git a/gio/tests/network-monitor.c b/gio/tests/network-monitor.c
index 9ec441a..7205da1 100644
--- a/gio/tests/network-monitor.c
+++ b/gio/tests/network-monitor.c
@@ -230,6 +230,8 @@ run_tests (GNetworkMonitor *monitor,
g_clear_error (&error);
}
}
+
+ g_main_loop_unref (data.loop);
}
static void
@@ -474,6 +476,16 @@ init_test (TestMask *test)
}
static void
+cleanup_test (TestMask *test)
+{
+ int i;
+
+ g_object_unref (test->mask);
+ for (i = 0; test->addresses[i].string; i++)
+ g_object_unref (test->addresses[i].address);
+}
+
+static void
watch_network_changed (GNetworkMonitor *monitor,
gboolean available,
gpointer user_data)
@@ -500,6 +512,8 @@ do_watch_network (void)
int
main (int argc, char **argv)
{
+ int ret;
+
g_type_init ();
if (argc == 2 && !strcmp (argv[1], "--watch"))
@@ -523,5 +537,15 @@ main (int argc, char **argv)
g_test_add_func ("/network-monitor/add_networks", test_add_networks);
g_test_add_func ("/network-monitor/remove_networks", test_remove_networks);
- return g_test_run ();
+ ret = g_test_run ();
+
+ cleanup_test (&net127);
+ cleanup_test (&net10);
+ cleanup_test (&net192);
+ cleanup_test (&netlocal6);
+ cleanup_test (&netfe80);
+ g_object_unref (ip4_default);
+ g_object_unref (ip6_default);
+
+ return ret;
}
diff --git a/gio/tests/proxy-test.c b/gio/tests/proxy-test.c
index ff65e2a..2842900 100644
--- a/gio/tests/proxy-test.c
+++ b/gio/tests/proxy-test.c
@@ -475,7 +475,7 @@ proxy_thread (gpointer user_data)
gssize nread, nwrote;
gchar command[2] = { 0, 0 };
GMainContext *context;
- GSource *source;
+ GSource *read_source, *write_source;
context = g_main_context_new ();
proxy->loop = g_main_loop_new (context, FALSE);
@@ -486,6 +486,7 @@ proxy_thread (gpointer user_data)
if (!proxy->client_sock)
{
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
+ g_error_free (error);
break;
}
else
@@ -516,15 +517,13 @@ proxy_thread (gpointer user_data)
g_socket_connect (proxy->server_sock, server.server_addr, NULL, &error);
g_assert_no_error (error);
- source = g_socket_create_source (proxy->client_sock, G_IO_IN, NULL);
- g_source_set_callback (source, (GSourceFunc)proxy_bytes, proxy, NULL);
- g_source_attach (source, context);
- g_source_unref (source);
+ read_source = g_socket_create_source (proxy->client_sock, G_IO_IN, NULL);
+ g_source_set_callback (read_source, (GSourceFunc)proxy_bytes, proxy, NULL);
+ g_source_attach (read_source, context);
- source = g_socket_create_source (proxy->server_sock, G_IO_IN, NULL);
- g_source_set_callback (source, (GSourceFunc)proxy_bytes, proxy, NULL);
- g_source_attach (source, context);
- g_source_unref (source);
+ write_source = g_socket_create_source (proxy->server_sock, G_IO_IN, NULL);
+ g_source_set_callback (write_source, (GSourceFunc)proxy_bytes, proxy, NULL);
+ g_source_attach (write_source, context);
g_main_loop_run (proxy->loop);
@@ -535,6 +534,11 @@ proxy_thread (gpointer user_data)
g_socket_close (proxy->server_sock, &error);
g_assert_no_error (error);
g_clear_object (&proxy->server_sock);
+
+ g_source_destroy (read_source);
+ g_source_unref (read_source);
+ g_source_destroy (write_source);
+ g_source_unref (write_source);
}
g_main_loop_unref (proxy->loop);
@@ -543,6 +547,10 @@ proxy_thread (gpointer user_data)
g_object_unref (proxy->server);
g_object_unref (proxy->cancellable);
+ g_free (proxy->proxy_command);
+ g_free (proxy->supported_protocol);
+ g_free (proxy->uri);
+
return NULL;
}
@@ -608,6 +616,7 @@ echo_server_thread (gpointer user_data)
if (!sock)
{
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
+ g_error_free (error);
break;
}
else
@@ -633,6 +642,7 @@ echo_server_thread (gpointer user_data)
}
g_object_unref (data->server);
+ g_object_unref (data->server_addr);
g_object_unref (data->cancellable);
return NULL;
@@ -826,9 +836,11 @@ assert_direct (GSocketConnection *conn)
addr = g_socket_connection_get_remote_address (conn, &error);
g_assert_no_error (error);
g_assert (!G_IS_PROXY_ADDRESS (addr));
+ g_object_unref (addr);
addr = g_socket_connection_get_local_address (conn, &error);
g_assert_no_error (error);
+ g_object_unref (addr);
g_assert (g_socket_connection_is_connected (conn));
}
@@ -895,6 +907,8 @@ assert_single (GSocketConnection *conn)
g_assert_cmpstr (proxy_uri, ==, proxy_a.uri);
proxy_port = g_inet_socket_address_get_port (G_INET_SOCKET_ADDRESS (addr));
g_assert_cmpint (proxy_port, ==, proxy_a.port);
+
+ g_object_unref (addr);
}
static void
@@ -959,6 +973,8 @@ assert_multiple (GSocketConnection *conn)
g_assert_cmpstr (proxy_uri, ==, proxy_b.uri);
proxy_port = g_inet_socket_address_get_port (G_INET_SOCKET_ADDRESS (addr));
g_assert_cmpint (proxy_port, ==, proxy_b.port);
+
+ g_object_unref (addr);
}
static void
@@ -1141,6 +1157,8 @@ main (int argc,
g_thread_join (proxy_b.thread);
g_thread_join (server.server_thread);
+ g_object_unref (cancellable);
+
return result;
}
diff --git a/gio/tests/unix-streams.c b/gio/tests/unix-streams.c
index fd84c50..5985078 100644
--- a/gio/tests/unix-streams.c
+++ b/gio/tests/unix-streams.c
@@ -65,6 +65,7 @@ writer_thread (gpointer user_data)
if (g_cancellable_is_cancelled (writer_cancel))
{
+ g_clear_error (&err);
g_cancellable_cancel (main_cancel);
g_object_unref (out);
return NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]