From: Sverker Eriksson <sverker@erlang.org>
Date: Tue, 20 Jun 2023 15:29:57 +0200
Subject: [PATCH] crypto: Skip entire engine_SUITE if notsup
diff --git a/lib/crypto/test/engine_SUITE.erl b/lib/crypto/test/engine_SUITE.erl
index 8907d3968f..b2c25bdcae 100644
--- a/lib/crypto/test/engine_SUITE.erl
+++ b/lib/crypto/test/engine_SUITE.erl
@@ -136,20 +136,23 @@ groups() ->
init_per_suite(Config) ->
- try {os:type(), crypto:info_lib()} of
- {_, [{_,_, <<"OpenSSL 1.0.1s-freebsd 1 Mar 2016">>}]} ->
+ try {engine_supported(), os:type(), crypto:info_lib()} of
+ {false,_,[{_,_,OpenSSLversion}]} ->
+ {skip, "Engine not supported by " ++ OpenSSLversion};
+
+ {_,_, [{_,_, <<"OpenSSL 1.0.1s-freebsd 1 Mar 2016">>}]} ->
{skip, "Problem with engine on OpenSSL 1.0.1s-freebsd"};
- {_, [{_,_,<<"LibreSSL 2.1.",_/binary>>}]} ->
+ {_,_, [{_,_,<<"LibreSSL 2.1.",_/binary>>}]} ->
{skip, "Problem with engine on older LibreSSL 2.1.*"};
- {{unix,darwin}, _} ->
+ {_,{unix,darwin}, _} ->
{skip, "Engine unsupported on Darwin"};
-
- {{win32,_}, _} ->
+
+ {_,{win32,_}, _} ->
{skip, "Engine unsupported on Windows"};
-
- {OS, Res} ->
+
+ {_,OS, Res} ->
ct:log("crypto:info_lib() -> ~p\nos:type() -> ~p", [Res,OS]),
try crypto:start() of
ok ->
@@ -166,6 +169,11 @@ init_per_suite(Config) ->
end_per_suite(_Config) ->
ok.
+engine_supported() ->
+ try crypto:engine_list(), true
+ catch error:notsup -> false
+ end.
+
%%--------------------------------------------------------------------
init_per_group(engine_stored_key, Config) ->
group_load_engine(Config, [engine_method_rsa]);