Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
0414-ssl-Adjust-when-test-are-run.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0414-ssl-Adjust-when-test-are-run.patch of Package erlang
From b8d795b75bfe16867d7517f41ecc55b5ac87ee5b Mon Sep 17 00:00:00 2001 From: Ingela Anderton Andin <ingela@erlang.org> Date: Wed, 24 Aug 2022 08:32:32 +0200 Subject: [PATCH] ssl: Adjust when test are run We do not want to run TLS test when crypto fails to build. Also avoid testing OpenSSL test tool. --- lib/ssl/test/openssl_mfl_SUITE.erl | 87 +++++++++---------- lib/ssl/test/ssl_alert_SUITE.erl | 15 ++++ lib/ssl/test/ssl_eqc_SUITE.erl | 15 +++- lib/ssl/test/ssl_session_cache_api_SUITE.erl | 19 +++- lib/ssl/test/ssl_test_lib.erl | 21 ----- .../test/tls_server_session_ticket_SUITE.erl | 24 ++++- 6 files changed, 110 insertions(+), 71 deletions(-) diff --git a/lib/ssl/test/openssl_mfl_SUITE.erl b/lib/ssl/test/openssl_mfl_SUITE.erl index c26934082a..e7e2d73b0b 100644 --- a/lib/ssl/test/openssl_mfl_SUITE.erl +++ b/lib/ssl/test/openssl_mfl_SUITE.erl @@ -38,26 +38,21 @@ reuse_session_erlang_server/1, reuse_session_erlang_client/1]). + +-export([session_id_and_data/3]). + -define(SLEEP, 500). %%-------------------------------------------------------------------- %% Common Test interface functions ----------------------------------- %%-------------------------------------------------------------------- all() -> - case ssl_test_lib:openssl_dtls_maxfraglen_support() of - true -> - [{group, 'tlsv1.3'}, - {group, 'tlsv1.2'}, - {group, 'tlsv1.1'}, - {group, 'tlsv1'}, - {group, 'dtlsv1.2'}, - {group, 'dtlsv1'}]; - false -> - [{group, 'tlsv1.3'}, - {group, 'tlsv1.2'}, - {group, 'tlsv1.1'}, - {group, 'tlsv1'}] - end. + [{group, 'tlsv1.3'}, + {group, 'tlsv1.2'}, + {group, 'tlsv1.1'}, + {group, 'tlsv1'}, + {group, 'dtlsv1.2'}, + {group, 'dtlsv1'}]. groups() -> [{'tlsv1.3', [], common_tests()}, @@ -125,12 +120,10 @@ openssl_client(Config) when is_list(Config) -> reuse_session_erlang_server(Config) when is_list(Config) -> ServerOpts = ssl_test_lib:ssl_options(server_rsa_opts, Config), ClientOpts = proplists:get_value(client_rsa_opts, Config), - + Protocol = proplists:get_value(protocol, ServerOpts, tls), {_, ServerNode, _} = ssl_test_lib:run_where(Config), - MFL = 512, - Data = "reuse_session_erlang_server " ++ lists:duplicate(MFL, $r), - + Data = max_frag_data(Protocol, MFL), Server = ssl_test_lib:start_server([{node, ServerNode}, {port, 0}, {from, self()}, {mfa, {ssl_test_lib, active_recv, [length(Data)]}}, @@ -153,9 +146,9 @@ reuse_session_erlang_client(Config) when is_list(Config) -> ClientOpts0 = ssl_test_lib:ssl_options(client_rsa_opts, Config), ServerOpts = proplists:get_value(server_rsa_opts, Config), {ClientNode, _, Hostname} = ssl_test_lib:run_where(Config), - + Protocol = proplists:get_value(protocol, ClientOpts0, tls), MFL = 512, - Data = "reuse_session_erlang_client " ++ lists:duplicate(MFL, $r), + Data = max_frag_data(Protocol, MFL), ClientOpts = [{max_fragment_length, MFL} | ClientOpts0], {Server, OpenSSLPort} = ssl_test_lib:start_server(openssl, [{maxfrag, MFL}, return_port], @@ -175,14 +168,12 @@ reuse_session_erlang_client(Config) when is_list(Config) -> Id0 end, - %% quit s_server's current session so we can interact with the next client - true = port_command(OpenSSLPort, "q\n"), ssl_test_lib:close(Client0), Client1 = ssl_test_lib:start_client([{node, ClientNode}, {port, Port}, {host, Hostname}, - {mfa, {ssl_test_lib, session_id, []}}, + {mfa, {?MODULE, session_id_and_data, [self(), length(Data)]}}, {from, self()}, {options, [{reuse_session, SID} | ClientOpts]}]), receive {Client1, SID} -> @@ -191,25 +182,24 @@ reuse_session_erlang_client(Config) when is_list(Config) -> ct:fail(session_not_reused) end, - ErlRecvFun = fun() -> - Data = ssl_test_lib:check_active_receive(Client1, Data) - end, - max_frag_len_test(Client1, OpenSSLPort, MFL, Data, ErlRecvFun), + max_frag_len_test(Client1, OpenSSLPort, MFL, Data), ssl_test_lib:close(Client1). openssl_client(MFL, Config) -> ServerOpts = ssl_test_lib:ssl_options(server_rsa_opts, Config), ClientOpts = proplists:get_value(client_rsa_opts, Config), + Protocol = proplists:get_value(protocol, ServerOpts, tls), {_, ServerNode, _} = ssl_test_lib:run_where(Config), - Data = "mfl_openssl_server " ++ lists:duplicate(MFL, $s), + Data = max_frag_data(Protocol, MFL), + Server = ssl_test_lib:start_server([{node, ServerNode}, {port, 0}, {from, self()}, {mfa, {ssl_test_lib, active_recv, [length(Data)]}}, {options, ServerOpts}]), Port = ssl_test_lib:inet_port(Server), - + {_Client, OpenSSLPort} = ssl_test_lib:start_client(openssl, [{port, Port}, {maxfrag, MFL}, {options, ClientOpts}, @@ -224,40 +214,49 @@ openssl_client(MFL, Config) -> openssl_server(MFL, Config) -> ClientOpts = ssl_test_lib:ssl_options(client_rsa_opts, Config), ServerOpts = proplists:get_value(server_rsa_opts, Config), + Protocol = proplists:get_value(protocol, ClientOpts, tls), {ClientNode, _, Hostname} = ssl_test_lib:run_where(Config), - Data = "mfl_openssl_server " ++ lists:duplicate(MFL, $s), + + Data = max_frag_data(Protocol, MFL), {Server, OpenSSLPort} = ssl_test_lib:start_server(openssl, [{maxfrag, MFL}, return_port], [{server_opts, ServerOpts} | Config]), Port = ssl_test_lib:inet_port(Server), - + Client = ssl_test_lib:start_client([{node, ClientNode}, {port, Port}, {host, Hostname}, {from, self()}, {mfa, {ssl_test_lib, active_recv, [length(Data)]}}, {options, [{max_fragment_length, MFL} | ClientOpts]}]), - + max_frag_len_test(Client, OpenSSLPort, MFL, Data). %% ------------------------------------------------------------ max_frag_len_test(ErlProc, OpenSSL, MFL, Data) -> - ErlRecvFun = fun() -> - receive - {ErlProc, Data} -> - ok - end - end, - max_frag_len_test(ErlProc, OpenSSL, MFL, Data, ErlRecvFun). - -max_frag_len_test(ErlProc, OpenSSL, MFL, Data, ErlRecvFun) -> - true = port_command(OpenSSL, Data), - ErlRecvFun(), - + openssl_send(OpenSSL, Data), + receive + {ErlProc, Data} -> + ok + end, ErlProc ! get_socket, ErlSocket = receive {ErlProc, {socket, ErlSocket0}} -> ErlSocket0 end, ssl_test_lib:assert_mfl(ErlSocket, MFL). + +session_id_and_data(Socket, Pid, Len) -> + {ok, [{session_id, ID}]} = ssl:connection_information(Socket, [session_id]), + Pid ! {self(), ID}, + ssl_test_lib:active_recv(Socket, Len). + +max_frag_data(tls, MaxFragLen) -> + "Send more data than max frag length " ++ lists:duplicate(MaxFragLen, $s); +max_frag_data(dtls, _MaxFragLen) -> + "Send small data as OpenSSL s_client/s_server does not create UDP packets " + "with appropriate fragments". + +openssl_send(OpenSSL, Data) -> + port_command(OpenSSL, Data). diff --git a/lib/ssl/test/ssl_alert_SUITE.erl b/lib/ssl/test/ssl_alert_SUITE.erl index f20df97d53..d6b132cc63 100644 --- a/lib/ssl/test/ssl_alert_SUITE.erl +++ b/lib/ssl/test/ssl_alert_SUITE.erl @@ -29,6 +29,8 @@ %% Common test -export([all/0, + init_per_suite/1, + end_per_suite/1, init_per_testcase/2, end_per_testcase/2 ]). @@ -54,6 +56,19 @@ all() -> bad_connect_response ]. +init_per_suite(Config0) -> + catch crypto:stop(), + try crypto:start() of + ok -> + ssl_test_lib:clean_start(), + Config0 + catch _:_ -> + {skip, "Crypto did not start"} + end. + +end_per_suite(_Config) -> + ssl:stop(), + application:stop(crypto). init_per_testcase(_TestCase, Config) -> ct:timetrap({seconds, 5}), Config. diff --git a/lib/ssl/test/ssl_eqc_SUITE.erl b/lib/ssl/test/ssl_eqc_SUITE.erl index 84ee7bf778..c8eda84c32 100644 --- a/lib/ssl/test/ssl_eqc_SUITE.erl +++ b/lib/ssl/test/ssl_eqc_SUITE.erl @@ -66,9 +66,18 @@ all() -> %%-------------------------------------------------------------------- init_per_suite(Config) -> ct:timetrap({seconds, 20}), - ct_property_test:init_per_suite(Config). -end_per_suite(Config) -> - Config. + catch crypto:stop(), + try crypto:start() of + ok -> + ssl_test_lib:clean_start(), + ct_property_test:init_per_suite(Config) + catch _:_ -> + {skip, "Crypto did not start"} + end. + +end_per_suite(_Config) -> + ssl:stop(), + application:stop(crypto). init_per_testcase(_, Config0) -> Config0. diff --git a/lib/ssl/test/ssl_session_cache_api_SUITE.erl b/lib/ssl/test/ssl_session_cache_api_SUITE.erl index 2277e0fa66..12e25bdcc0 100644 --- a/lib/ssl/test/ssl_session_cache_api_SUITE.erl +++ b/lib/ssl/test/ssl_session_cache_api_SUITE.erl @@ -28,7 +28,9 @@ -include("tls_handshake.hrl"). %% Callback functions --export([all/0]). +-export([all/0, + init_per_suite/1, + end_per_suite/1]). %% Testcases -export([server_cb/0, @@ -43,6 +45,21 @@ all() -> [server_cb, client_cb]. + +init_per_suite(Config0) -> + catch crypto:stop(), + try crypto:start() of + ok -> + ssl_test_lib:clean_start(), + Config0 + catch _:_ -> + {skip, "Crypto did not start"} + end. + +end_per_suite(_Config) -> + ssl:stop(), + application:stop(crypto). + %%-------------------------------------------------------------------- %% Test Cases -------------------------------------------------------- %%-------------------------------------------------------------------- diff --git a/lib/ssl/test/ssl_test_lib.erl b/lib/ssl/test/ssl_test_lib.erl index 0ee97ff531..06988aa307 100644 --- a/lib/ssl/test/ssl_test_lib.erl +++ b/lib/ssl/test/ssl_test_lib.erl @@ -196,7 +196,6 @@ openssl_sane_dtls/0, kill_openssl/0, openssl_allows_server_renegotiate/1, - openssl_dtls_maxfraglen_support/0, openssl_maxfraglen_support/0, is_sane_oppenssl_pss/1, consume_port_exit/1, @@ -4006,26 +4005,6 @@ openssl_maxfraglen_support() -> false end. -openssl_dtls_maxfraglen_support() -> - case portable_cmd("openssl", ["version"]) of - "OpenSSL 0" ++ _ -> - false; - "OpenSSL 1.0" ++ _ -> - false; - "OpenSSL 1.1.0" ++ _ -> - false; - "OpenSSL 1.1.1" ++ _ -> - false; - "OpenSSL 1.1" ++ _ -> - false; - "OpenSSL 3.0.1" ++ _ -> - false; %% OpenSSL sends internal error alert - "OpenSSL" ++ _ -> - true; - _ -> - false - end. - assert_mfl(Socket, undefined) -> InfoMFL = ssl:connection_information(Socket, [max_fragment_length]), ?LOG("Connection MFL ~p, Expecting: [] ~n", [InfoMFL]), diff --git a/lib/ssl/test/tls_server_session_ticket_SUITE.erl b/lib/ssl/test/tls_server_session_ticket_SUITE.erl index 6e2eeb4996..954afa9fb5 100644 --- a/lib/ssl/test/tls_server_session_ticket_SUITE.erl +++ b/lib/ssl/test/tls_server_session_ticket_SUITE.erl @@ -27,8 +27,14 @@ -include_lib("ssl/src/tls_handshake_1_3.hrl"). %% Callback functions --export([all/0, groups/0, init_per_group/2, end_per_group/2, - init_per_testcase/2, end_per_testcase/2]). +-export([all/0, + groups/0, + init_per_suite/1, + end_per_suite/1, + init_per_group/2, + end_per_group/2, + init_per_testcase/2, + end_per_testcase/2]). %% Testcases -export([expired_ticket_test/0, expired_ticket_test/1, @@ -58,6 +64,20 @@ groups() -> {stateless_antireplay, [], [main_test, misc_test]} ]. +init_per_suite(Config0) -> + catch crypto:stop(), + try crypto:start() of + ok -> + ssl_test_lib:clean_start(), + Config0 + catch _:_ -> + {skip, "Crypto did not start"} + end. + +end_per_suite(_Config) -> + ssl:stop(), + application:stop(crypto). + init_per_group(stateless_antireplay, Config) -> check_environment([{server_session_tickets, stateless}, {anti_replay, {10, 20, 30}}] -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor