summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2011-11-21 21:40:10 +0100
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2011-11-22 17:45:52 +0100
commit26d6b35a498843f66c66d1d1ed1a28189ef15dd2 (patch)
tree996ae582c1ce63a20f111da6f458a8cfd19d23ee /tests
parent5192cdf7a000c1086869df43d8153d3e344a3b91 (diff)
downloadlasso-26d6b35a498843f66c66d1d1ed1a28189ef15dd2.tar.gz
lasso-26d6b35a498843f66c66d1d1ed1a28189ef15dd2.tar.xz
lasso-26d6b35a498843f66c66d1d1ed1a28189ef15dd2.zip
[leakcheck] fix leaks seen by the unit tests
This commit also improved valgrind suppression file to hide static allocations done by the GLib type system.
Diffstat (limited to 'tests')
-rw-r--r--tests/basic_tests.c12
-rw-r--r--tests/non_regression_tests.c49
-rw-r--r--tests/valgrind/lasso.supp39
3 files changed, 84 insertions, 16 deletions
diff --git a/tests/basic_tests.c b/tests/basic_tests.c
index e0158055..69991d4b 100644
--- a/tests/basic_tests.c
+++ b/tests/basic_tests.c
@@ -1840,6 +1840,13 @@ START_TEST(test10_test_alldumps)
lasso_release_string(node_dump);
lasso_release_gobject(node2);
lasso_release_gobject(node);
+ /* test serialization / deserialization of KeyInfoConfirmationDataType */
+ node = LASSO_NODE(lasso_saml2_key_info_confirmation_data_type_new());
+ node_dump = lasso_node_dump(node);
+ fail_unless((node2 = lasso_node_new_from_dump(node_dump)) != NULL, "restoring dump failed after lasso_saml2_key_info_confirmation_data_type_new");
+ lasso_release_string(node_dump);
+ lasso_release_gobject(node2);
+ lasso_release_gobject(node);
#endif
/* test deserialization of saml2:EncryptedAssertion" */
const char *encrypted_element_xml[] = {
@@ -1873,10 +1880,6 @@ START_TEST(test10_test_alldumps)
lasso_release_doc(xmldoc);
++iter;
}
- /* test serialization / deserialization of KeyInfoConfirmationDataType */
- node = LASSO_NODE(lasso_saml2_key_info_confirmation_data_type_new());
- printf("%s\n", lasso_node_debug(node, 10));
- lasso_release_gobject(node);
}
END_TEST
@@ -1976,6 +1979,7 @@ START_TEST(test13_test_lasso_server_load_metadata)
check_equals(g_list_length(loaded_entity_ids), 283);
check_equals(g_hash_table_size(server->providers), 393);
#endif
+ lasso_release_list_of_strings(loaded_entity_ids);
lasso_release_gobject(server);
}
diff --git a/tests/non_regression_tests.c b/tests/non_regression_tests.c
index b266e9dd..03c11a35 100644
--- a/tests/non_regression_tests.c
+++ b/tests/non_regression_tests.c
@@ -88,6 +88,7 @@ END_TEST
START_TEST(indexed_endpoints_20101008)
{
LassoProvider *provider = NULL;
+ char *str;
char *meta01 = "<md:EntityDescriptor entityID=\"google.com\" xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\">\n\
<SPSSODescriptor protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">\n\
<AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact\" Location=\"wrong\" index=\"1\" />\n\
@@ -115,27 +116,51 @@ START_TEST(indexed_endpoints_20101008)
provider = lasso_provider_new_from_buffer(LASSO_PROVIDER_ROLE_SP, meta01, NULL, NULL);
check_not_null(provider);
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, NULL), "ok");
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "0"), "ok");
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "1"), "wrong");
+ str = lasso_provider_get_assertion_consumer_service_url(provider, NULL);
+ check_str_equals(str, "ok");
+ g_free(str);
+ str = lasso_provider_get_assertion_consumer_service_url(provider, "0");
+ check_str_equals(str, "ok");
+ g_free(str);
+ str = lasso_provider_get_assertion_consumer_service_url(provider, "1");
+ check_str_equals(str, "wrong");
+ g_free(str);
lasso_release_gobject(provider);
provider = lasso_provider_new_from_buffer(LASSO_PROVIDER_ROLE_SP, meta02, NULL, NULL);
check_not_null(provider);
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, NULL), "ok");
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "0"), "wrong");
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "1"), "ok");
+ str = lasso_provider_get_assertion_consumer_service_url(provider, NULL);
+ check_str_equals(str, "ok");
+ g_free(str);
+ str = lasso_provider_get_assertion_consumer_service_url(provider, "0");
+ check_str_equals(str, "wrong");
+ g_free(str);
+ str = lasso_provider_get_assertion_consumer_service_url(provider, "1");
+ check_str_equals(str, "ok");
+ g_free(str);
lasso_release_gobject(provider);
provider = lasso_provider_new_from_buffer(LASSO_PROVIDER_ROLE_SP, meta03, NULL, NULL);
check_not_null(provider);
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, NULL), "ok");
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "0"), "wrong");
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "1"), "ok");
+ str = lasso_provider_get_assertion_consumer_service_url(provider, NULL);
+ check_str_equals(str, "ok");
+ g_free(str);
+ str = lasso_provider_get_assertion_consumer_service_url(provider, "0");
+ check_str_equals(str, "wrong");
+ g_free(str);
+ str = lasso_provider_get_assertion_consumer_service_url(provider, "1");
+ check_str_equals(str, "ok");
+ g_free(str);
lasso_release_gobject(provider);
provider = lasso_provider_new_from_buffer(LASSO_PROVIDER_ROLE_SP, meta04, NULL, NULL);
check_not_null(provider);
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, NULL), "ok");
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "0"), "wrong");
- check_str_equals(lasso_provider_get_assertion_consumer_service_url(provider, "1"), "ok");
+ str = lasso_provider_get_assertion_consumer_service_url(provider, NULL);
+ check_str_equals(str, "ok");
+ g_free(str);
+ str = lasso_provider_get_assertion_consumer_service_url(provider, "0");
+ check_str_equals(str, "wrong");
+ g_free(str);
+ str = lasso_provider_get_assertion_consumer_service_url(provider, "1");
+ check_str_equals(str, "ok");
+ g_free(str);
lasso_release_gobject(provider);
}
END_TEST
diff --git a/tests/valgrind/lasso.supp b/tests/valgrind/lasso.supp
index b4d22161..4e9a80e2 100644
--- a/tests/valgrind/lasso.supp
+++ b/tests/valgrind/lasso.supp
@@ -165,3 +165,42 @@
fun:g_hash_table_new
fun:g_quark_from_static_string
}
+{
+ g_type_init
+ Memcheck:Leak
+ fun:malloc
+ ...
+ fun:g_type_init
+}
+{
+ g_type_init
+ Memcheck:Leak
+ fun:calloc
+ ...
+ fun:g_type_init
+}
+{
+ g_type_init
+ Memcheck:Leak
+ fun:realloc
+ ...
+ fun:g_type_init
+}
+{
+ register type
+ Memcheck:Leak
+ fun:malloc
+ ...
+ fun:g_type_register_static
+ ...
+ fun:lasso_*get_type
+}
+{
+ register type
+ Memcheck:Leak
+ fun:realloc
+ ...
+ fun:g_type_register_static
+ ...
+ fun:lasso_*get_type
+}