Skip to content

Commit 7474fd0

Browse files
committed
Merge branch 'maint'
2 parents c27530a + 22a5f20 commit 7474fd0

2 files changed

Lines changed: 64 additions & 24 deletions

File tree

lib/ssl/test/openssl_stapling_SUITE.erl

Lines changed: 53 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,18 @@ all() ->
6868
groups() ->
6969
[{'tlsv1.3', [], ocsp_tests()},
7070
{'tlsv1.3_issuer_nonce', [], [staple_by_issuer, staple_with_nonce]},
71-
{no_next_update, [], [{group, 'tlsv1.3'}]},
71+
{'tlsv1.3_no_next_update', [], no_next_update_tests()},
72+
{no_next_update, [], [{group, 'tlsv1.3_no_next_update'}]},
7273
{no_resp_certs, [], [{group, 'tlsv1.3_issuer_nonce'}]},
7374
{'tlsv1.2', [], ocsp_tests()},
7475
{'dtlsv1.2', [], ocsp_tests()}].
7576

7677
ocsp_tests() ->
7778
positive() ++ negative().
7879

80+
no_next_update_tests() ->
81+
positive() ++ [cert_status_revoked, cert_status_undetermined].
82+
7983
positive() ->
8084
[staple_by_issuer,
8185
staple_by_designated,
@@ -113,14 +117,18 @@ end_per_suite(Config) ->
113117
%%--------------------------------------------------------------------
114118
init_per_group(no_next_update, Config) ->
115119
Config;
116-
init_per_group('tlsv1.3_issuer_nonce', Config) ->
120+
init_per_group(GroupName, Config)
121+
when GroupName =:= 'tlsv1.3_issuer_nonce';
122+
GroupName =:= 'tlsv1.3_no_next_update' ->
117123
ssl_test_lib:init_per_group_openssl('tlsv1.3', Config);
118124
init_per_group(GroupName, Config) ->
119125
ssl_test_lib:init_per_group_openssl(GroupName, Config).
120126

121127
end_per_group(no_next_update, Config) ->
122128
Config;
123-
end_per_group('tlsv1.3_issuer_nonce', Config) ->
129+
end_per_group(GroupName, Config)
130+
when GroupName =:= 'tlsv1.3_issuer_nonce';
131+
GroupName =:= 'tlsv1.3_no_next_update' ->
124132
ssl_test_lib:end_per_group('tlsv1.3', Config);
125133
end_per_group(GroupName, Config) ->
126134
ssl_test_lib:end_per_group(GroupName, Config).
@@ -135,15 +143,22 @@ init_per_testcase(Testcase, Config) ->
135143

136144
init_per_testcase_helper(Testcase, Config0) ->
137145
ct:timetrap({seconds, 10}),
138-
Default = "otpCA",
139-
TestcaseMapping = #{staple_by_issuer => Default,
140-
staple_by_trusted => "erlangCA",
141-
staple_by_designated => "b.server",
142-
staple_not_designated => "a.server",
143-
staple_wrong_issuer => "localhost"},
144-
ResponderFolder = maps:get(Testcase, TestcaseMapping, Default),
145-
Config = start_ocsp_responder(
146-
[{responder_folder, ResponderFolder} | Config0]) ++ Config0,
146+
NeedsResponder = not lists:member(Testcase,
147+
[staple_missing, staple_missing_atom, staple_missing_verify_fun]),
148+
Config = case NeedsResponder of
149+
true ->
150+
Default = "otpCA",
151+
TestcaseMapping = #{staple_by_issuer => Default,
152+
staple_by_trusted => "erlangCA",
153+
staple_by_designated => "b.server",
154+
staple_not_designated => "a.server",
155+
staple_wrong_issuer => "localhost"},
156+
ResponderFolder = maps:get(Testcase, TestcaseMapping, Default),
157+
start_ocsp_responder(
158+
[{responder_folder, ResponderFolder} | Config0]) ++ Config0;
159+
false ->
160+
Config0
161+
end,
147162
ssl_test_lib:ct_log_supported_protocol_versions(Config),
148163
Config.
149164

@@ -154,11 +169,31 @@ end_per_testcase(_Testcase, Config) ->
154169
end_per_testcase_helper(Config).
155170

156171
end_per_testcase_helper(Config) ->
157-
ResponderPid = ?config(responder_pid, Config),
158-
ssl_test_lib:close(ResponderPid),
172+
case ?config(responder_pid, Config) of
173+
undefined -> ok;
174+
ResponderPid -> ssl_test_lib:close(ResponderPid)
175+
end,
176+
log_wsl_process_count(),
177+
ssl_test_lib:kill_openssl(),
178+
log_wsl_process_count(),
159179
[ssl_test_lib:ct_pal_file(?OCSP_RESPONDER_LOG) || ?config(debug, Config)],
160180
Config.
161181

182+
log_wsl_process_count() ->
183+
try
184+
case os:type() of
185+
{win32, _} ->
186+
WslRes = os:cmd("tasklist | find /c \"wsl.exe\""),
187+
CmdRes = os:cmd("tasklist | find /c \"cmd.exe\""),
188+
?CT_LOG("wsl.exe: ~s, cmd.exe: ~s",
189+
[string:trim(WslRes), string:trim(CmdRes)]);
190+
_ ->
191+
ok
192+
end
193+
catch C:E ->
194+
?CT_LOG("log_wsl_process_count failed: ~p:~p", [C, E])
195+
end.
196+
162197
%%--------------------------------------------------------------------
163198
%% Test Cases --------------------------------------------------------
164199
%%--------------------------------------------------------------------
@@ -332,7 +367,8 @@ stapling_negative_helper(Config, CACertsPath, ServerVariant, ExpectedError, Stap
332367
{host, Hostname}, {from, self()},
333368
{options, ClientOpts}]),
334369
true = is_pid(Client),
335-
ssl_test_lib:check_client_alert(Client, ExpectedError).
370+
ssl_test_lib:check_client_alert(Client, ExpectedError),
371+
ssl_test_lib:close(Server).
336372

337373
%%--------------------------------------------------------------------
338374
%% Internal functions -----------------------------------------------
@@ -388,12 +424,14 @@ ocsp_responder_loop(Port, {Status, Starter} = State) ->
388424
receive
389425
close ->
390426
?CT_LOG("OCSP responder: received close", []),
427+
try erlang:port_close(Port) catch _:_ -> ok end,
391428
ok;
392429
{Port, closed} ->
393430
?CT_LOG("OCSP responder: Port = ~p Closed", [Port]),
394431
ok;
395432
{'EXIT', Sender, _Reason} ->
396433
?CT_LOG("OCSP responder: Sender = ~p Closed",[Sender]),
434+
try erlang:port_close(Port) catch _:_ -> ok end,
397435
ok;
398436
{Port, {data, Msg}} when Status == new ->
399437
?CT_LOG("OCSP responder: Msg = ~p", [Msg]),

lib/ssl/test/ssl_test_lib.erl

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4205,15 +4205,17 @@ digest() ->
42054205
end.
42064206

42074207
kill_openssl() ->
4208-
case os:type() of
4209-
{win32, _} ->
4210-
case os:getenv("WSLENV") of
4211-
false -> os:cmd("cmd.exe /C \"taskkill /IM openssl.exe /F\"");
4212-
_ -> os:cmd("wsl pkill openssl")
4213-
end;
4214-
_ ->
4215-
os:cmd("pkill openssl")
4216-
end.
4208+
Res = case os:type() of
4209+
{win32, _} ->
4210+
case os:getenv("WSLENV") of
4211+
false -> os:cmd("cmd.exe /C \"taskkill /IM openssl.exe /F\"");
4212+
_ -> os:cmd("wsl pkill openssl")
4213+
end;
4214+
_ ->
4215+
os:cmd("pkill openssl")
4216+
end,
4217+
?CT_LOG("kill_openssl: ~s", [Res]),
4218+
Res.
42174219

42184220
hostname_format(Hostname) ->
42194221
case lists:member($., Hostname) of

0 commit comments

Comments
 (0)