summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2009-09-11 11:46:14 -0400
committerDan Winship <danw@gnome.org>2009-09-11 11:48:50 -0400
commitd8a0e5f863d258ba8e3b0ff97e5c557dbf9fee03 (patch)
tree5b0423415cc4925efeb029301f2c43413959fc78
parent6cc543b352c26d041a31b9c0e47478f9bce563cd (diff)
downloadlibsoup-d8a0e5f863d258ba8e3b0ff97e5c557dbf9fee03.tar.gz
Fix leaks in test programs, update libsoup.supp
-rw-r--r--tests/auth-test.c4
-rw-r--r--tests/chunk-test.c15
-rw-r--r--tests/libsoup.supp376
-rw-r--r--tests/misc-test.c1
-rw-r--r--tests/sniffing-test.c20
-rw-r--r--tests/streaming-test.c2
6 files changed, 389 insertions, 29 deletions
diff --git a/tests/auth-test.c b/tests/auth-test.c
index b090e239..f4baaf58 100644
--- a/tests/auth-test.c
+++ b/tests/auth-test.c
@@ -795,6 +795,10 @@ do_select_auth_test (void)
"Digest, Basic", "Digest",
NULL, NULL,
SOUP_STATUS_OK);
+
+ g_object_unref (basic_auth_domain);
+ g_object_unref (digest_auth_domain);
+ soup_uri_free (uri);
}
int
diff --git a/tests/chunk-test.c b/tests/chunk-test.c
index edfe7396..8ce286bc 100644
--- a/tests/chunk-test.c
+++ b/tests/chunk-test.c
@@ -253,18 +253,21 @@ do_response_test (SoupSession *session, SoupURI *base_uri)
static void
temp_test_wrote_chunk (SoupMessage *msg, gpointer session)
{
+ SoupBuffer *chunk;
+
+ chunk = soup_message_body_get_chunk (msg->request_body, 5);
+
/* When the bug is present, the second chunk will also be
* discarded after the first is written, which will cause
* the I/O to stall since soup-message-io will think it's
* done, but it hasn't written Content-Length bytes yet.
- * So add in another chunk to keep it going.
*/
- if (!soup_message_body_get_chunk (msg->request_body,
- 5)) {
+ if (!chunk) {
debug_printf (1, " Lost second chunk!\n");
errors++;
soup_session_abort (session);
- }
+ } else
+ soup_buffer_free (chunk);
g_signal_handlers_disconnect_by_func (msg, temp_test_wrote_chunk, session);
}
@@ -273,7 +276,8 @@ static void
do_temporary_test (SoupSession *session, SoupURI *base_uri)
{
SoupMessage *msg;
- const char *client_md5, *server_md5;
+ char *client_md5;
+ const char *server_md5;
debug_printf (1, "PUT w/ temporary buffers\n");
@@ -304,6 +308,7 @@ do_temporary_test (SoupSession *session, SoupURI *base_uri)
errors++;
}
+ g_free (client_md5);
g_object_unref (msg);
}
diff --git a/tests/libsoup.supp b/tests/libsoup.supp
index 37da38d0..8316da9d 100644
--- a/tests/libsoup.supp
+++ b/tests/libsoup.supp
@@ -152,6 +152,19 @@
fun:g_object_class_install_property
}
{
+ glib/g_object_class_install_property_8
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_object_class_install_property
+}
+{
glib/g_param_spec_types_init_2
Memcheck:Leak
fun:*
@@ -176,6 +189,16 @@
fun:g_param_spec_types_init
}
{
+ glib/g_param_spec_internal_5
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_param_spec_internal
+}
+{
glib/g_type_register_static_1
Memcheck:Leak
fun:*
@@ -377,6 +400,17 @@
fun:g_signal_new
}
{
+ glib/g_signal_handlers_destroy_6
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_signal_handlers_destroy
+}
+{
glib/g_get_language_names_2
Memcheck:Leak
fun:*
@@ -411,6 +445,31 @@
fun:g_get_language_names
}
{
+ glib/g_get_language_names_7
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_get_language_names
+}
+{
+ glib/g_get_language_names_8
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_get_language_names
+}
+{
glib/g_intern_static_string_3
Memcheck:Leak
fun:*
@@ -483,7 +542,19 @@
fun:g_thread_init_glib
}
{
- glib/g_thread_init_glib_y
+ glib/g_thread_init_glib_7
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_thread_init_glib
+}
+{
+ glib/g_thread_init_glib_8
Memcheck:Leak
fun:*
fun:*
@@ -492,6 +563,7 @@
fun:*
fun:*
fun:*
+ fun:*
fun:g_thread_init_glib
}
{
@@ -613,6 +685,16 @@
fun:g_data_initialize
}
{
+ glib/g_data_initialize_5
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_data_initialize
+}
+{
glib/g_static_rw_lock_writer_lock_3
Memcheck:Leak
fun:*
@@ -655,6 +737,152 @@
fun:*
fun:g_child_watch_source_init_multi_threaded
}
+{
+ glib/g_static_private_set_4
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_static_private_set
+}
+{
+ glib/g_main_context_push_thread_default_4
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_queue_new
+ fun:g_main_context_push_thread_default
+}
+{
+ glib/g_resolver_get_default_9
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_resolver_get_default
+}
+{
+ glib/g_threaded_resolver_init_4
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_threaded_resolver_init
+}
+{
+ glib/g_threaded_resolver_init_5
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_threaded_resolver_init
+}
+{
+ glib/g_threaded_resolver_init_7
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:g_threaded_resolver_init
+}
+{
+ glib/xdg_mime_init_4
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:xdg_mime_init
+}
+{
+ glib/xdg_mime_init_3
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:xdg_mime_init
+}
+{
+ glib/xdg_mime_init_2
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:xdg_mime_init
+}
+{
+ glib/xdg_mime_init_8
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:xdg_mime_init
+}
+{
+ glib/xdg_mime_init_9
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:xdg_mime_init
+}
+{
+ glib/xdg_mime_init_10
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:xdg_mime_init
+}
+{
+ glib/xdg_mime_init_11
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:xdg_mime_init
+}
{
@@ -749,6 +977,22 @@
fun:gnutls_global_init
}
{
+ gnutls/gnutls_global_init_11
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gnutls_global_init
+}
+{
gnutls/soup_gnutls_init_gcry_control_4
Memcheck:Leak
fun:*
@@ -759,6 +1003,17 @@
fun:soup_gnutls_init
}
{
+ gnutls/soup_gnutls_init_gcry_control_5
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gcry_control
+ fun:soup_gnutls_init
+}
+{
gnutls/soup_gnutls_init_gcry_control_7
Memcheck:Leak
fun:*
@@ -786,6 +1041,21 @@
fun:soup_gnutls_init
}
{
+ gnutls/soup_gnutls_init_gcry_control_9
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gcry_control
+ fun:soup_gnutls_init
+}
+{
gnutls/gnutls_handshake_5
Memcheck:Leak
fun:*
@@ -806,65 +1076,139 @@
fun:*
fun:gnutls_handshake
}
-
{
- libsoup/intern_header_name_3
+ gnutls/init_dh_params_1
+ Memcheck:Leak
+ fun:*
+ fun:gnutls_dh_params_init
+ fun:init_dh_params
+}
+{
+ gnutls/init_dh_params_8
Memcheck:Leak
fun:*
fun:*
fun:*
- fun:intern_header_name
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gnutls_dh_params_generate2
+ fun:init_dh_params
}
{
- libsoup/intern_header_name_4
+ gnutls/init_dh_params_9
Memcheck:Leak
fun:*
fun:*
fun:*
fun:*
- fun:intern_header_name
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gnutls_dh_params_generate2
+ fun:init_dh_params
}
{
- libsoup/intern_header_name_5
+ gnutls/init_dh_params_10
Memcheck:Leak
fun:*
fun:*
fun:*
fun:*
fun:*
- fun:intern_header_name
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gnutls_dh_params_generate2
+ fun:init_dh_params
+}
+{
+ gnutls/init_dh_params_11
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gnutls_dh_params_generate2
+ fun:init_dh_params
+}
+{
+ gnutls/init_dh_params_12
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:*
+ fun:gnutls_dh_params_generate2
+ fun:init_dh_params
}
+
{
- libsoup/soup_dns_cache_entry_new_3
+ libsoup/intern_header_name_3
Memcheck:Leak
fun:*
fun:*
fun:*
- fun:soup_dns_cache_entry_new
+ fun:intern_header_name
}
{
- libsoup/soup_dns_cache_entry_new_4
+ libsoup/intern_header_name_4
Memcheck:Leak
fun:*
fun:*
fun:*
fun:*
- fun:soup_dns_cache_entry_new
+ fun:intern_header_name
}
{
- libsoup/soup_dns_lookup_name_3
+ libsoup/intern_header_name_5
Memcheck:Leak
fun:*
fun:*
fun:*
- fun:soup_dns_lookup_name
+ fun:*
+ fun:*
+ fun:intern_header_name
}
{
- libsoup/resolver_thread_4
+ libsoup/intern_header_name_7
Memcheck:Leak
fun:*
fun:*
fun:*
fun:*
- fun:resolver_thread
+ fun:*
+ fun:*
+ fun:*
+ fun:intern_header_name
+}
+{
+ libsoup/soup_uri_get_scheme
+ Memcheck:Leak
+ fun:*
+ fun:*
+ fun:*
+ fun:g_ascii_strdown
+ fun:soup_uri_get_scheme
}
diff --git a/tests/misc-test.c b/tests/misc-test.c
index e6944777..70c213dc 100644
--- a/tests/misc-test.c
+++ b/tests/misc-test.c
@@ -374,6 +374,7 @@ do_star_test (void)
g_object_unref (msg);
soup_test_session_abort_unref (session);
+ soup_uri_free (star_uri);
}
int
diff --git a/tests/sniffing-test.c b/tests/sniffing-test.c
index 561d2eea..26ddc164 100644
--- a/tests/sniffing-test.c
+++ b/tests/sniffing-test.c
@@ -166,6 +166,8 @@ server_callback (SoupServer *server, SoupMessage *msg,
MIN(500, length - offset));
}
soup_message_body_complete (msg->response_body);
+
+ g_free (contents);
}
static gboolean
@@ -271,7 +273,7 @@ do_signals_test (gboolean should_content_sniff,
if (empty_response) {
if (uri->query) {
char *tmp = uri->query;
- uri->query = g_strdup_printf("%s&empty_response=yes", tmp);
+ uri->query = g_strdup_printf ("%s&empty_response=yes", tmp);
g_free (tmp);
} else
soup_uri_set_query (uri, "empty_response=yes");
@@ -317,11 +319,9 @@ do_signals_test (gboolean should_content_sniff,
exit (1);
}
- if (!should_accumulate && chunk_data) {
+ if (!should_accumulate && chunk_data)
body = soup_message_body_flatten (chunk_data);
- soup_message_body_free (chunk_data);
- chunk_data = NULL;
- } else if (msg->response_body)
+ else if (msg->response_body)
body = soup_message_body_flatten (msg->response_body);
if (body && body->length != length) {
@@ -334,8 +334,13 @@ do_signals_test (gboolean should_content_sniff,
errors++;
}
+ g_free (contents);
if (body)
soup_buffer_free (body);
+ if (chunk_data) {
+ soup_message_body_free (chunk_data);
+ chunk_data = NULL;
+ }
soup_uri_free (uri);
g_object_unref (msg);
@@ -421,7 +426,6 @@ int
main (int argc, char **argv)
{
SoupServer *server;
- SoupContentSniffer *sniffer;
test_init (argc, argv, NULL);
@@ -450,8 +454,7 @@ main (int argc, char **argv)
do_signals_test (FALSE, TRUE, TRUE, FALSE, TRUE);
do_signals_test (FALSE, TRUE, TRUE, TRUE, TRUE);
- sniffer = soup_content_sniffer_new ();
- soup_session_add_feature (session, (SoupSessionFeature*)sniffer);
+ soup_session_add_feature_by_type (session, SOUP_TYPE_CONTENT_SNIFFER);
/* Now, with a sniffer, content_sniffed must be emitted after
* got-headers, and before got-chunk.
@@ -519,6 +522,7 @@ main (int argc, char **argv)
soup_uri_free (base_uri);
+ soup_test_session_abort_unref (session);
test_cleanup ();
return errors != 0;
}
diff --git a/tests/streaming-test.c b/tests/streaming-test.c
index e28cfe2c..1389a620 100644
--- a/tests/streaming-test.c
+++ b/tests/streaming-test.c
@@ -182,6 +182,8 @@ main (int argc, char **argv)
g_main_loop_unref (loop);
+ g_free (full_response);
+ g_free (full_response_md5);
test_cleanup ();
return errors != 0;
}