diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2020-01-17 21:34:45 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2020-01-18 07:45:04 +0100 |
commit | 6f11aaffb420bbf58f631cb4a210e7fdc9a218c7 (patch) | |
tree | 23f7f9f92ecba82470d0dd892d8a3300e49da601 /src | |
parent | 4023d63f0b2795c0c0447282c808671ae8503ac3 (diff) | |
download | gnutls-6f11aaffb420bbf58f631cb4a210e7fdc9a218c7.tar.gz |
gnutls-cli-debug: ignore tests when algorithms are unavailable
When gnutls-cli-debug is run on systems where a particular algorithm
is disabled, ensure that we don't stop the testing; in that case
we ignore the test.
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/tests.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/tests.c b/src/tests.c index 9b608119f5..82474b0995 100644 --- a/src/tests.c +++ b/src/tests.c @@ -134,20 +134,31 @@ char prio_str[768] = ""; #define INIT_STR "NONE:" char rest[384] = "%UNSAFE_RENEGOTIATION:+SIGN-ALL:+GROUP-ALL" GOST_REST; -#define _gnutls_priority_set_direct(s, str) __gnutls_priority_set_direct(s, str, __LINE__) +#define _gnutls_priority_set_direct(s, str) { \ + int _ret; \ + if ((_ret=__gnutls_priority_set_direct(s, str, __LINE__)) != TEST_SUCCEED) { \ + return _ret; \ + } \ + } -static inline void +static inline int __gnutls_priority_set_direct(gnutls_session_t session, const char *str, int line) { const char *err; int ret = gnutls_priority_set_direct(session, str, &err); if (ret < 0) { + /* this can happen when some cipher is disabled system-wide */ + if (ret == GNUTLS_E_NO_PRIORITIES_WERE_SET) + return TEST_IGNORE; + fprintf(stderr, "Error at %d with string %s\n", line, str); fprintf(stderr, "Error at %s: %s\n", err, gnutls_strerror(ret)); exit(1); } + + return TEST_SUCCEED; } test_code_t test_server(gnutls_session_t session) |