diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-12-29 16:53:34 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-12-29 17:14:18 +0100 |
commit | 1b12ff5d1c8277880c57eca682afe13115cee627 (patch) | |
tree | ff89058652c628fdcabd0e498d2abf3544f7ac17 /tests/resume-dtls.c | |
parent | c39587f10121bb9150c0f0221f61405f47334680 (diff) | |
download | gnutls-1b12ff5d1c8277880c57eca682afe13115cee627.tar.gz |
resume tests will not block if they fail
Diffstat (limited to 'tests/resume-dtls.c')
-rw-r--r-- | tests/resume-dtls.c | 23 |
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(); |