summaryrefslogtreecommitdiff
path: root/tests/resume-dtls.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2013-12-29 16:53:34 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2013-12-29 17:14:18 +0100
commit1b12ff5d1c8277880c57eca682afe13115cee627 (patch)
treeff89058652c628fdcabd0e498d2abf3544f7ac17 /tests/resume-dtls.c
parentc39587f10121bb9150c0f0221f61405f47334680 (diff)
downloadgnutls-1b12ff5d1c8277880c57eca682afe13115cee627.tar.gz
resume tests will not block if they fail
Diffstat (limited to 'tests/resume-dtls.c')
-rw-r--r--tests/resume-dtls.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/tests/resume-dtls.c b/tests/resume-dtls.c
index 2e45522438..83baeb7dd4 100644
--- a/tests/resume-dtls.c
+++ b/tests/resume-dtls.c
@@ -105,7 +105,7 @@ static void client(int sds[], struct params_res *params)
if (debug) {
gnutls_global_set_log_function(tls_log_func);
- gnutls_global_set_log_level(2);
+ gnutls_global_set_log_level(3);
}
global_init();
@@ -143,11 +143,14 @@ static void client(int sds[], struct params_res *params)
/* Perform the TLS handshake
*/
- ret = gnutls_handshake(session);
+ gnutls_handshake_set_timeout(session, 20 * 1000);
+ do {
+ ret = gnutls_handshake(session);
+ } while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
if (ret < 0) {
- fail("client: Handshake failed\n");
gnutls_perror(ret);
+ fail("client: Handshake failed\n");
goto end;
} else {
if (debug)
@@ -296,7 +299,7 @@ static void server(int sds[], struct params_res *params)
*/
if (debug) {
gnutls_global_set_log_function(tls_log_func);
- gnutls_global_set_log_level(2);
+ gnutls_global_set_log_level(3);
}
global_init();
@@ -322,10 +325,15 @@ static void server(int sds[], struct params_res *params)
session = initialize_tls_session(params);
gnutls_transport_set_int(session, sd);
- ret = gnutls_handshake(session);
+ gnutls_handshake_set_timeout(session, 20 * 1000);
+
+ do {
+ ret = gnutls_handshake(session);
+ } while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
if (ret < 0) {
close(sd);
gnutls_deinit(session);
+ kill(child, SIGTERM);
fail("server: Handshake has failed (%s)\n\n",
gnutls_strerror(ret));
return;
@@ -346,6 +354,7 @@ static void server(int sds[], struct params_res *params)
("server: Peer has closed the GnuTLS connection\n");
break;
} else if (ret < 0) {
+ kill(child, SIGTERM);
fail("server: Received corrupted data(%d). Closing...\n", ret);
break;
} else if (ret > 0) {
@@ -414,6 +423,10 @@ void doit(void)
if (WEXITSTATUS(status) > 0)
error_count++;
global_stop();
+
+ if (error_count)
+ exit(1);
+
} else {
client(client_sds, &resume_tests[i]);
gnutls_global_deinit();