summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-10-04 14:28:18 +0200
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-10-04 14:28:18 +0200
commit3aaf0ca959320e6fd18eb49530ee7a578b65b7b6 (patch)
tree65db2f588a7cf6fb799ff2adbecf4b2b607aef90 /tests
parentb606f0dbee54915c0ab38e05cec68c8d4ebcf154 (diff)
parent0bd4c25a24574eb80b81888e41dd7726ef000a9d (diff)
downloadlasso-3aaf0ca959320e6fd18eb49530ee7a578b65b7b6.tar.gz
lasso-3aaf0ca959320e6fd18eb49530ee7a578b65b7b6.tar.xz
lasso-3aaf0ca959320e6fd18eb49530ee7a578b65b7b6.zip
Merge commit 'v2.3.3'
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am25
-rw-r--r--tests/login_tests.c4
-rw-r--r--tests/login_tests_saml2.c10
-rw-r--r--tests/non_regression_tests.c105
-rw-r--r--tests/perfs.c207
-rw-r--r--tests/random_tests.c1
-rw-r--r--tests/tests.c2
-rw-r--r--tests/valgrind/lasso.supp10
8 files changed, 252 insertions, 112 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 20b408b0..7414dfb8 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -20,7 +20,7 @@ INCLUDES = \
$(CHECK_CFLAGS)
-tests_SOURCES = tests.c login_tests.c basic_tests.c random_tests.c metadata_tests.c login_tests_saml2.c assertion_query_saml2.c $(WSF_TESTS)
+tests_SOURCES = tests.c login_tests.c basic_tests.c non_regression_tests.c random_tests.c metadata_tests.c login_tests_saml2.c assertion_query_saml2.c $(WSF_TESTS)
tests_LDADD = \
$(top_builddir)/lasso/liblasso.la \
@@ -40,6 +40,29 @@ perfs_SOURCES = perfs.c
perfs_LDADD = $(top_builddir)/lasso/liblasso.la $(LASSO_LIBS)
perfs_LDFLAGS = -rpath `cd $(top_builddir)/lasso/.libs/; pwd`
+.PHONY: valgrind
+
+LEAKCHECK = G_DEBUG=gc-friendly MALLOC_CHECK_=2 G_SLICE=always-malloc CK_FORK=no \
+ valgrind --leak-check=full --log-file=valgrind.log \
+ --suppressions=$(top_srcdir)/tests/valgrind/glib.supp \
+ --suppressions=$(top_srcdir)/tests/valgrind/openssl.supp \
+ --suppressions=$(top_srcdir)/tests/valgrind/lasso.supp \
+ --num-callers=50
+
+LEAKCHECK_REACHABLE = $(LEAKCHECK) --show-reachable=yes
+
+MASSIF = G_DEBUG=gc-friendly MALLOC_CHECK_=2 G_SLICE=always-malloc CK_FORK=no \
+ valgrind --tool=massif
+
+leakcheck:
+ $(LEAKCHECK) ./tests
+
+leakcheck-reachable:
+ $(LEAKCHECK_REACHABLE) ./tests
+
+massif:
+ $(MASSIF) ./tests
+
endif
EXTRA_DIST = metadata valgrind tests.h $(tests_SOURCES)
diff --git a/tests/login_tests.c b/tests/login_tests.c
index 54a2d554..43718620 100644
--- a/tests/login_tests.c
+++ b/tests/login_tests.c
@@ -196,7 +196,7 @@ START_TEST(test02_serviceProviderLogin)
"lasso_login_must_ask_for_consent() should be FALSE");
fail_unless(idpLoginContext->parent.msg_relayState != NULL,
"lasso_login_process_authn_request_msg should restore the RelayState parameter");
- fail_unless(g_strcmp0(idpLoginContext->parent.msg_relayState, relayState) == 0,
+ fail_unless(lasso_strisequal(idpLoginContext->parent.msg_relayState,relayState),
"lasso_login_process_authn_request_msg should restore the same RelayState thant sent in the request");
rc = lasso_login_validate_request_msg(idpLoginContext,
1, /* authentication_result */
@@ -242,7 +242,7 @@ START_TEST(test02_serviceProviderLogin)
LASSO_HTTP_METHOD_REDIRECT);
fail_unless(spLoginContext->parent.msg_relayState != NULL,
"lasso_login_init_request should restore the RelayState parameter");
- fail_unless(g_strcmp0(spLoginContext->parent.msg_relayState, relayState) == 0,
+ fail_unless(lasso_strisequal(spLoginContext->parent.msg_relayState,relayState),
"lasso_login_init_request should restore the same RelayState thant sent in the request");
fail_unless(rc == 0, "lasso_login_init_request failed");
rc = lasso_login_build_request_msg(spLoginContext);
diff --git a/tests/login_tests_saml2.c b/tests/login_tests_saml2.c
index 4482448b..0864ec17 100644
--- a/tests/login_tests_saml2.c
+++ b/tests/login_tests_saml2.c
@@ -58,6 +58,7 @@ generateIdentityProviderContextDump()
ret = lasso_server_dump(serverContext);
g_object_unref(serverContext);
+ g_list_free(providers);
return ret;
}
@@ -196,7 +197,7 @@ START_TEST(test02_saml2_serviceProviderLogin)
check_equals(idpLoginContext->protocolProfile, LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART);
check_false(lasso_login_must_ask_for_consent(idpLoginContext));
check_not_null(idpLoginContext->parent.msg_relayState);
- check_equals(g_strcmp0(idpLoginContext->parent.msg_relayState, relayState), 0);
+ check_equals(lasso_strisnotequal(idpLoginContext->parent.msg_relayState,relayState), 0);
check_good_rc(lasso_login_validate_request_msg(idpLoginContext,
1, /* authentication_result */
0 /* is_consent_obtained */
@@ -238,7 +239,7 @@ START_TEST(test02_saml2_serviceProviderLogin)
responseQuery,
LASSO_HTTP_METHOD_ARTIFACT_GET));
check_not_null(spLoginContext->parent.msg_relayState);
- check_equals(g_strcmp0(spLoginContext->parent.msg_relayState, relayState), 0);
+ check_equals(lasso_strisnotequal(spLoginContext->parent.msg_relayState,relayState), 0);
check_good_rc(lasso_login_build_request_msg(spLoginContext));
soapRequestMsg = LASSO_PROFILE(spLoginContext)->msg_body;
check_not_null(soapRequestMsg);
@@ -542,7 +543,7 @@ START_TEST(test04_sso_then_slo_soap)
check_equals(idpLoginContext->protocolProfile, LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART);
check_false(lasso_login_must_ask_for_consent(idpLoginContext));
check_not_null(idpLoginContext->parent.msg_relayState);
- check_equals(g_strcmp0(idpLoginContext->parent.msg_relayState, relayState), 0);
+ check_equals(lasso_strisnotequal(idpLoginContext->parent.msg_relayState,relayState), 0);
check_good_rc(lasso_login_validate_request_msg(idpLoginContext,
1, /* authentication_result */
0 /* is_consent_obtained */
@@ -584,7 +585,7 @@ START_TEST(test04_sso_then_slo_soap)
responseQuery,
LASSO_HTTP_METHOD_ARTIFACT_GET));
check_not_null(spLoginContext->parent.msg_relayState);
- check_equals(g_strcmp0(spLoginContext->parent.msg_relayState, relayState), 0);
+ check_equals(lasso_strisnotequal(spLoginContext->parent.msg_relayState,relayState), 0);
check_good_rc(lasso_login_build_request_msg(spLoginContext));
soapRequestMsg = LASSO_PROFILE(spLoginContext)->msg_body;
check_not_null(soapRequestMsg);
@@ -656,6 +657,7 @@ START_TEST(test04_sso_then_slo_soap)
check_null(spLogoutContext->parent.msg_relayState);
lasso_assign_string(logoutResponseSoapMessage, spLogoutContext->parent.msg_body);
lasso_release_gobject(spLogoutContext);
+ lasso_release_gobject(idpLogoutContext);
/* process the response */
check_not_null(idpLogoutContext = lasso_logout_new(idpContext));
diff --git a/tests/non_regression_tests.c b/tests/non_regression_tests.c
new file mode 100644
index 00000000..208bc30d
--- /dev/null
+++ b/tests/non_regression_tests.c
@@ -0,0 +1,105 @@
+/*
+ * Lasso library C unit tests
+ *
+ * Copyright (C) 2004-2007 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <check.h>
+
+#include <../lasso/lasso.h>
+#include "./tests.h"
+#include <../lasso/xml/lib_assertion.h>
+#include <../lasso/xml/lib_authentication_statement.h>
+#include <../lasso/xml/saml_name_identifier.h>
+#include <../lasso/xml/samlp_response.h>
+#include "../lasso/utils.h"
+
+
+Suite* non_regression_suite();
+
+START_TEST(test01_googleapps_27092010)
+{
+
+/*
+ * Here the decoded request:
+ *
+ * char *gapp_request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\
+<samlp:AuthnRequest xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\"\n\
+ID=\"lfnoehcfgagfbefiaijaefdpndeppgmfllenelik\" Version=\"2.0\"\n\
+IssueInstant=\"2010-09-27T12:55:29Z\"\n\
+ProtocolBinding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n\
+ProviderName=\"google.com\" IsPassive=\"false\"\n\
+AssertionConsumerServiceURL=\"https://www.google.com/a/linid.org/acs\"><saml:Issuer\n\
+xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\">google.com</saml:Issuer><samlp:NameIDPolicy\n\
+AllowCreate=\"true\"\n\
+Format=\"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\"\n\
+/></samlp:AuthnRequest>"; */
+ char *b64_encoded_request = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNhbWxwOkF1dGhuUmVxdWVzdCB4bWxuczpzYW1scD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIgpJRD0ibGZub2VoY2ZnYWdmYmVmaWFpamFlZmRwbmRlcHBnbWZsbGVuZWxpayIgVmVyc2lvbj0iMi4wIgpJc3N1ZUluc3RhbnQ9IjIwMTAtMDktMjdUMTI6NTU6MjlaIgpQcm90b2NvbEJpbmRpbmc9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpiaW5kaW5nczpIVFRQLVBPU1QiClByb3ZpZGVyTmFtZT0iZ29vZ2xlLmNvbSIgSXNQYXNzaXZlPSJmYWxzZSIKQXNzZXJ0aW9uQ29uc3VtZXJTZXJ2aWNlVVJMPSJodHRwczovL3d3dy5nb29nbGUuY29tL2EvbGluaWQub3JnL2FjcyI+PHNhbWw6SXNzdWVyCnhtbG5zOnNhbWw9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphc3NlcnRpb24iPmdvb2dsZS5jb208L3NhbWw6SXNzdWVyPjxzYW1scDpOYW1lSURQb2xpY3kKQWxsb3dDcmVhdGU9InRydWUiCkZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQiCi8+PC9zYW1scDpBdXRoblJlcXVlc3Q+Cg==";
+ char *metadata = "<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-POST\" Location=\"https://www.google.com/a/linid.org/acs\" index=\"0\" />\n\
+<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>\n\
+</SPSSODescriptor>\n\
+</md:EntityDescriptor>\n";
+ LassoServer *server = NULL;
+ LassoLogin *login = NULL;
+ check_not_null(server = lasso_server_new(TESTSDATADIR "/idp5-saml2/metadata.xml",
+ TESTSDATADIR "/idp5-saml2/private-key.pem", NULL, NULL));
+ check_good_rc(lasso_server_add_provider_from_buffer(server, LASSO_PROVIDER_ROLE_SP,
+ metadata, NULL, NULL));
+ check_not_null(login = lasso_login_new(server));
+ lasso_profile_set_signature_verify_hint(&login->parent,
+ LASSO_PROFILE_SIGNATURE_VERIFY_HINT_IGNORE);
+ check_good_rc(lasso_login_process_authn_request_msg(login, b64_encoded_request));
+ check_good_rc(lasso_login_validate_request_msg(login, TRUE, TRUE));
+ check_good_rc(lasso_login_build_authn_response_msg(login));
+ check_not_null(LASSO_PROFILE(login)->msg_url);
+ check_not_null(LASSO_PROFILE(login)->msg_body);
+ lasso_release_gobject(login);
+ lasso_release_gobject(server);
+
+}
+END_TEST
+
+struct {
+ char *name;
+ void *function;
+} tests[] = {
+ { "Googleapps error from coudot@ on 27-09-2010", test01_googleapps_27092010}
+};
+
+Suite*
+non_regression_suite()
+{
+ Suite *s = suite_create("Non regression tests");
+ unsigned int i = 0;
+
+ for (i = 0 ; i < G_N_ELEMENTS(tests); i++) {
+ TCase *c = tcase_create(tests[i].name);
+ void *f = tests[i].function;
+ tcase_add_test(c, f);
+ suite_add_tcase(s, c);
+ }
+
+ return s;
+}
diff --git a/tests/perfs.c b/tests/perfs.c
index 6f60275b..17d2795b 100644
--- a/tests/perfs.c
+++ b/tests/perfs.c
@@ -25,98 +25,89 @@
#include <time.h>
#include <../lasso/lasso.h>
+#include <../lasso/xml/saml-2.0/samlp2_response.h>
+#include <../lasso/xml/saml-2.0/samlp2_authn_request.h>
+
+#define INDEX "5"
+#define PROTO "saml2"
+#define IDP_METADATA TESTSDATADIR "/idp" INDEX "-" PROTO "/metadata.xml"
+#define IDP_PKEY TESTSDATADIR "/idp" INDEX "-" PROTO "/private-key.pem"
+#define SP_METADATA TESTSDATADIR "/sp" INDEX "-" PROTO "/metadata.xml"
+#define SP_PKEY TESTSDATADIR "/sp" INDEX "-" PROTO "/private-key.pem"
char* create_authn_response_msg(char *query);
-char*
-create_authn_response_msg(char *query)
+#define check_good_rc(what) \
+ { \
+ int _rc = (what); \
+ if (_rc != 0) { \
+ printf("Error: %s: %s", #what, lasso_strerror(_rc)); \
+ exit(-1); \
+ } \
+ }
+
+void create_authn_request(LassoLogin *sp_login, G_GNUC_UNUSED LassoLogin *idp_login)
{
- LassoServer *server;
- LassoLogin *login;
- char *t;
- int rc = 0;
-
- server = lasso_server_new(
- TESTSDATADIR "/idp1-la/metadata.xml",
- TESTSDATADIR "/idp1-la/private-key-raw.pem",
- NULL, /* Secret key to unlock private key */
- TESTSDATADIR "/idp1-la/certificate.pem");
- lasso_server_add_provider(
- server,
- LASSO_PROVIDER_ROLE_SP,
- TESTSDATADIR "/sp1-la/metadata.xml",
- TESTSDATADIR "/sp1-la/public-key.pem",
- TESTSDATADIR "/ca1-la/certificate.pem");
- login = lasso_login_new(server);
- rc = lasso_login_process_authn_request_msg(login, strchr(query, '?')+1);
+ check_good_rc(lasso_login_init_authn_request(sp_login, NULL, LASSO_HTTP_METHOD_REDIRECT));
+ LASSO_SAMLP2_AUTHN_REQUEST(sp_login->parent.request)->ProtocolBinding = g_strdup(LASSO_SAML2_METADATA_BINDING_POST);
+ check_good_rc(lasso_login_build_authn_request_msg(sp_login));
+}
- rc = lasso_login_validate_request_msg(login, 1, 0);
- rc = lasso_login_build_assertion(login,
+void
+process_authn_request(LassoLogin *sp_login, LassoLogin *idp_login)
+{
+ check_good_rc(lasso_login_process_authn_request_msg(idp_login, strchr(sp_login->parent.msg_url, '?')+1));
+
+}
+
+void
+create_authn_response(G_GNUC_UNUSED LassoLogin *sp_login, LassoLogin *idp_login)
+{
+ if (LASSO_SAMLP2_RESPONSE(idp_login->parent.response)->Assertion) {
+ g_object_unref(LASSO_SAMLP2_RESPONSE(idp_login->parent.response)->Assertion->data);
+ g_list_free(LASSO_SAMLP2_RESPONSE(idp_login->parent.response)->Assertion);
+ LASSO_SAMLP2_RESPONSE(idp_login->parent.response)->Assertion = NULL;
+ }
+ check_good_rc(lasso_login_validate_request_msg(idp_login, 1, 0));
+ lasso_login_build_assertion(idp_login,
LASSO_SAML_AUTHENTICATION_METHOD_PASSWORD,
"FIXME: authenticationInstant",
"FIXME: reauthenticateOnOrAfter",
"FIXME: notBefore",
"FIXME: notOnOrAfter");
- rc = lasso_login_build_authn_response_msg(login);
-
- t = g_strdup(LASSO_PROFILE(login)->msg_body);
- lasso_login_destroy(login);
- lasso_server_destroy(server);
+#if 0 /* activate for simulating simple signature at the assertion level, request/response
+ production should be at the same speed */
+ lasso_profile_set_signature_hint(&idp_login->parent, LASSO_PROFILE_SIGNATURE_HINT_FORBID);
+#endif
+ check_good_rc(lasso_login_build_authn_response_msg(idp_login));
+}
- return t;
+void
+process_authn_response(LassoLogin *sp_login, LassoLogin *idp_login)
+{
+#if 0
+ lasso_profile_set_signature_verify_hint(&sp_login->parent, LASSO_PROFILE_SIGNATURE_VERIFY_HINT_FORCE);
+#endif
+ check_good_rc(lasso_login_process_authn_response_msg(sp_login, idp_login->parent.msg_body));
+ if (sp_login->parent.session) {
+ g_object_unref(sp_login->parent.session);
+ sp_login->parent.session = NULL;
+ }
+ check_good_rc(lasso_login_accept_sso(sp_login));
}
-int
-main(int argc, char *argv[])
+void timing(int n, char *text, void (*f)(LassoLogin *sp_login, LassoLogin *idp_login), LassoLogin
+ *sp_login, LassoLogin *idp_login)
{
- LassoServer *server;
- LassoLogin *login;
- LassoLibAuthnRequest *request;
- int i, n;
+ int i;
struct timeval start, end;
int usec;
- char *authn_response_msg;
-
- lasso_init();
-
- server = lasso_server_new(
- TESTSDATADIR "/sp1-la/metadata.xml",
- TESTSDATADIR "/sp1-la/private-key-raw.pem",
- NULL, /* Secret key to unlock private key */
- TESTSDATADIR "/sp1-la/certificate.pem");
- lasso_server_add_provider(
- server,
- LASSO_PROVIDER_ROLE_IDP,
- TESTSDATADIR "/idp1-la/metadata.xml",
- TESTSDATADIR "/idp1-la/public-key.pem",
- TESTSDATADIR "/ca1-la/certificate.pem");
-
- n = 100;
- if (argc == 2) {
- n = atoi(argv[1]);
- }
-
- login = lasso_login_new(server);
-
- fprintf(stdout, "Generating %d AuthnRequest...\n", n);
+ fprintf(stdout, text, n);
gettimeofday(&start, NULL);
- for (i=0; i < n; i++) {
- fprintf(stderr, ".");
- lasso_login_init_authn_request(login, "https://idp1/metadata",
- LASSO_HTTP_METHOD_REDIRECT);
- request = LASSO_LIB_AUTHN_REQUEST(LASSO_PROFILE(login)->request);
- request->IsPassive = 0;
- request->NameIDPolicy = g_strdup(LASSO_LIB_NAMEID_POLICY_TYPE_FEDERATED);
- request->consent = g_strdup(LASSO_LIB_CONSENT_OBTAINED);
- request->ProtocolProfile = g_strdup(LASSO_LIB_PROTOCOL_PROFILE_BRWS_POST);
- lasso_login_build_authn_request_msg(login);
- if ((i+1)%70 == 0) {
- fprintf(stderr, " %d \n", i+1);
- }
- }
- if ((i)%70 != 0) {
- fprintf(stderr, " %d \n", i);
+
+ for (i = 0; i < n; i++) {
+ f(sp_login, idp_login);
}
gettimeofday(&end, NULL);
usec = (end.tv_sec*1000000+end.tv_usec)-(start.tv_sec*1000000+start.tv_usec);
@@ -124,32 +115,58 @@ main(int argc, char *argv[])
(double)usec/1000000,
(double)n/usec*1000000,
(double)usec/1000/n);
+}
- authn_response_msg = create_authn_response_msg(LASSO_PROFILE(login)->msg_url);
+int
+main(int argc, char *argv[])
+{
+ LassoServer *sp_server, *idp_server;
+ LassoLogin *sp_login, *idp_login;
+ int n;
- fprintf(stdout, "Processing %d AuthnResponse...\n", n);
- gettimeofday(&start, NULL);
- for (i=0; i < n; i++) {
- fprintf(stderr, ".");
- lasso_login_process_authn_response_msg(login, authn_response_msg);
- lasso_login_accept_sso(login);
- if ((i+1)%70 == 0) {
- fprintf(stderr, " %d \n", i+1);
- }
- }
- if ((i)%70 != 0) {
- fprintf(stderr, " %d \n", i);
- }
- gettimeofday(&end, NULL);
- usec = (end.tv_sec*1000000+end.tv_usec)-(start.tv_sec*1000000+start.tv_usec);
- fprintf(stdout, " total: %.4f seconds (%f request/second) (%.2f ms/request)\n",
- (double)usec/1000000,
- (double)n/usec*1000000,
- (double)usec/1000/n);
+ lasso_init();
- g_free(authn_response_msg);
+ sp_server = lasso_server_new(
+ SP_METADATA,
+ SP_PKEY,
+ NULL, /* Secret key to unlock private key */
+ NULL);
+ lasso_server_add_provider(
+ sp_server,
+ LASSO_PROVIDER_ROLE_IDP,
+ IDP_METADATA,
+ IDP_PKEY,
+ NULL);
+ idp_server = lasso_server_new(
+ IDP_METADATA,
+ IDP_PKEY,
+ NULL, /* Secret key to unlock private key */
+ NULL);
+ lasso_server_add_provider(
+ idp_server,
+ LASSO_PROVIDER_ROLE_SP,
+ SP_METADATA,
+ SP_PKEY,
+ NULL);
+ n = 100;
+ if (argc == 2) {
+ n = atoi(argv[1]);
+ }
+ sp_login = lasso_login_new(sp_server);
+ idp_login = lasso_login_new(idp_server);
+
+ timing(n, "Generating %d AuthnRequest...\n", create_authn_request, sp_login, idp_login);
+#if 0
+ printf("%s\n", lasso_node_export_to_xml(sp_login->parent.request));
+#endif
+ timing(n, "Processing %d AuthnRequest...\n", process_authn_request, sp_login, idp_login);
+ timing(n, "Generating %d AuthnResponse...\n", create_authn_response, sp_login, idp_login);
+#if 0
+ printf("%s\n", lasso_node_export_to_xml(idp_login->parent.response));
+#endif
+ timing(n, "Processing %d AuthnResponse...\n", process_authn_response, sp_login, idp_login);
return 0;
}
diff --git a/tests/random_tests.c b/tests/random_tests.c
index 8a0f488d..100d5f6b 100644
--- a/tests/random_tests.c
+++ b/tests/random_tests.c
@@ -125,6 +125,7 @@ START_TEST(test01_server_new)
fail_unless(provider->ca_cert_chain == NULL);
g_object_unref(server);
lasso_release_string(dump);
+ lasso_release_string(content);
}
END_TEST
diff --git a/tests/tests.c b/tests/tests.c
index 3b0267f1..a32d32e9 100644
--- a/tests/tests.c
+++ b/tests/tests.c
@@ -35,6 +35,7 @@ extern Suite* login_saml2_suite();
extern Suite* random_suite();
extern Suite* metadata_suite();
extern Suite* assertion_query_suite();
+extern Suite* non_regression_suite();
#ifdef LASSO_WSF_ENABLED
extern Suite* idwsf2_suite();
#endif
@@ -48,6 +49,7 @@ SuiteFunction suites[] = {
random_suite,
metadata_suite,
assertion_query_suite,
+ non_regression_suite,
#ifdef LASSO_WSF_ENABLED
idwsf2_suite,
#endif
diff --git a/tests/valgrind/lasso.supp b/tests/valgrind/lasso.supp
index d888fe84..b4d22161 100644
--- a/tests/valgrind/lasso.supp
+++ b/tests/valgrind/lasso.supp
@@ -165,13 +165,3 @@
fun:g_hash_table_new
fun:g_quark_from_static_string
}
-{
- suppression 134
- Memcheck:Leak
- fun:calloc
- fun:g_slice_alloc
- fun:g_string_sized_new
- fun:g_log_default_handler
- fun:g_logv
- fun:g_log
-}