@@ -68,14 +68,18 @@ all() ->
6868groups () ->
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
7677ocsp_tests () ->
7778 positive () ++ negative ().
7879
80+ no_next_update_tests () ->
81+ positive () ++ [cert_status_revoked , cert_status_undetermined ].
82+
7983positive () ->
8084 [staple_by_issuer ,
8185 staple_by_designated ,
@@ -113,14 +117,18 @@ end_per_suite(Config) ->
113117% %--------------------------------------------------------------------
114118init_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 );
118124init_per_group (GroupName , Config ) ->
119125 ssl_test_lib :init_per_group_openssl (GroupName , Config ).
120126
121127end_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 );
125133end_per_group (GroupName , Config ) ->
126134 ssl_test_lib :end_per_group (GroupName , Config ).
@@ -135,15 +143,22 @@ init_per_testcase(Testcase, Config) ->
135143
136144init_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
156171end_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 ]),
0 commit comments