diff options
| author | Ingela Anderton Andin <[email protected]> | 2015-12-01 18:48:12 +0100 | 
|---|---|---|
| committer | Ingela Anderton Andin <[email protected]> | 2015-12-09 15:47:27 +0100 | 
| commit | 22afaebfc419df5a0ca78340ffc659f72439e2db (patch) | |
| tree | 8cd30307eef198f7feeb340f00517219e4762713 | |
| parent | 8f91fc9576aa4abadf7e20e5aaabec1b37832145 (diff) | |
| download | otp-22afaebfc419df5a0ca78340ffc659f72439e2db.tar.gz otp-22afaebfc419df5a0ca78340ffc659f72439e2db.tar.bz2 otp-22afaebfc419df5a0ca78340ffc659f72439e2db.zip  | |
ssl: Use spawn_executable
| -rw-r--r-- | lib/ssl/test/ssl_ECC_SUITE.erl | 20 | ||||
| -rw-r--r-- | lib/ssl/test/ssl_test_lib.erl | 14 | ||||
| -rw-r--r-- | lib/ssl/test/ssl_to_openssl_SUITE.erl | 208 | 
3 files changed, 124 insertions, 118 deletions
diff --git a/lib/ssl/test/ssl_ECC_SUITE.erl b/lib/ssl/test/ssl_ECC_SUITE.erl index 3a9f21ea99..fd2afc808c 100644 --- a/lib/ssl/test/ssl_ECC_SUITE.erl +++ b/lib/ssl/test/ssl_ECC_SUITE.erl @@ -248,10 +248,13 @@ start_client(openssl, Port, CA, OwnCa, Cert, Key, Config) ->      PrivDir = ?config(priv_dir, Config),      NewCA = new_ca(filename:join(PrivDir, "new_ca.pem"), CA, OwnCa),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_client -verify 2 -port " ++ integer_to_list(Port) ++  ssl_test_lib:version_flag(Version) ++ -	" -cert " ++ Cert ++ " -CAfile " ++ NewCA -	++ " -key " ++ Key ++ " -host localhost -msg -debug", -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]), +    Exe = "openssl", +    Args = ["s_client", "-verify", "2", "-port", integer_to_list(Port), +	    ssl_test_lib:version_flag(Version), +	    "-cert", Cert, "-CAfile", NewCA, +	    "-key", Key, "-host","localhost", "-msg", "-debug"], + +    OpenSslPort = ssl_test_lib:portable_open_port(Exe, Args),       true = port_command(OpenSslPort, "Hello world"),      OpenSslPort;  start_client(erlang, Port, CA, _, Cert, Key, Config) -> @@ -270,10 +273,11 @@ start_server(openssl, CA, OwnCa, Cert, Key, Config) ->      Port = ssl_test_lib:inet_port(node()),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_server -accept " ++ integer_to_list(Port) ++ ssl_test_lib:version_flag(Version) ++ -	" -verify 2 -cert " ++ Cert ++ " -CAfile " ++ NewCA -	++ " -key " ++ Key ++ " -msg -debug", -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]), +    Exe = "openssl", +    Args = ["s_server", "-accept", integer_to_list(Port), ssl_test_lib:version_flag(Version), +	    "-verify", "2",  "-cert ", Cert, "-CAfile", NewCA, +	    "-key", Key, "-msg" "-debug"], +    OpenSslPort = ssl_test_lib:portable_open_port(Exe, Args),      true = port_command(OpenSslPort, "Hello world"),      {OpenSslPort, Port};  start_server(erlang, CA, _, Cert, Key, Config) -> diff --git a/lib/ssl/test/ssl_test_lib.erl b/lib/ssl/test/ssl_test_lib.erl index f25f6f9425..9a76d603b1 100644 --- a/lib/ssl/test/ssl_test_lib.erl +++ b/lib/ssl/test/ssl_test_lib.erl @@ -1192,13 +1192,13 @@ wait_for_openssl_server(Port, N) ->      end.  version_flag(tlsv1) -> -    " -tls1 "; +    "-tls1";  version_flag('tlsv1.1') -> -    " -tls1_1 "; +    "-tls1_1";  version_flag('tlsv1.2') -> -    " -tls1_2 "; +    "-tls1_2";  version_flag(sslv3) -> -    " -ssl3 ". +    "-ssl3".  filter_suites(Ciphers0) ->      Version = tls_record:highest_protocol_version([]), @@ -1243,3 +1243,9 @@ close_loop(Port, Time, SentClose) ->  		    ct:log("Timeout~n",[])  	    end      end. + +portable_open_port(Exe, Args) -> +    AbsPath = os:find_executable(Exe), +    ct:pal("open_port({spawn_executable, ~p}, [{args, ~p}, stderr_to_stdout]).", [AbsPath, Args]), +    open_port({spawn_executable, AbsPath},  +	      [{args, Args}, stderr_to_stdout]).  diff --git a/lib/ssl/test/ssl_to_openssl_SUITE.erl b/lib/ssl/test/ssl_to_openssl_SUITE.erl index 16b6cb10b9..52b078f27b 100644 --- a/lib/ssl/test/ssl_to_openssl_SUITE.erl +++ b/lib/ssl/test/ssl_to_openssl_SUITE.erl @@ -262,12 +262,11 @@ basic_erlang_client_openssl_server(Config) when is_list(Config) ->      CertFile = proplists:get_value(certfile, ServerOpts),      KeyFile = proplists:get_value(keyfile, ServerOpts), -    Cmd = "openssl s_server -accept " ++ integer_to_list(Port)  ++ -	" -cert " ++ CertFile  ++ " -key " ++ KeyFile,  -     -    ct:log("openssl cmd: ~p~n", [Cmd]), +    Exe = "openssl", +    Args = ["s_server", "-accept", integer_to_list(Port),  +	    "-cert", CertFile, "-key", KeyFile],  -    OpensslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    OpensslPort = ssl_test_lib:portable_open_port(Exe, Args),       ssl_test_lib:wait_for_openssl_server(Port), @@ -302,13 +301,11 @@ basic_erlang_server_openssl_client(Config) when is_list(Config) ->  			   {mfa, {?MODULE, erlang_ssl_receive, [Data]}},  			   {options, ServerOpts}]),      Port = ssl_test_lib:inet_port(Server), - -    Cmd = "openssl s_client -port " ++ integer_to_list(Port) ++ -	" -host localhost" ++ workaround_openssl_s_clinent(), - -    ct:log("openssl cmd: ~p~n", [Cmd]), -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    Exe = "openssl", +    Args = ["s_client", "-connect", "localhost:" ++ integer_to_list(Port) | workaround_openssl_s_clinent()], +     +    OpenSslPort = ssl_test_lib:portable_open_port(Exe, Args),       true = port_command(OpenSslPort, Data),      ssl_test_lib:check_result(Server, ok), @@ -334,12 +331,12 @@ erlang_client_openssl_server(Config) when is_list(Config) ->      CertFile = proplists:get_value(certfile, ServerOpts),      KeyFile = proplists:get_value(keyfile, ServerOpts),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_server -accept " ++ integer_to_list(Port)  ++  ssl_test_lib:version_flag(Version) ++ -	" -cert " ++ CertFile  ++ " -key " ++ KeyFile, -     -    ct:log("openssl cmd: ~p~n", [Cmd]), - -    OpensslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    Exe = "openssl", +    Args = ["s_server", "-accept", integer_to_list(Port), +	    ssl_test_lib:version_flag(Version),  +	    "-cert", CertFile, "-key", KeyFile], +	 +    OpensslPort =  ssl_test_lib:portable_open_port(Exe, Args),       ssl_test_lib:wait_for_openssl_server(Port), @@ -376,12 +373,12 @@ erlang_server_openssl_client(Config) when is_list(Config) ->      Port = ssl_test_lib:inet_port(Server),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_client -port " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -	" -host localhost", +    Exe = "openssl", +    Args = ["s_client", "-connect", "localhost: " ++ integer_to_list(Port),  +	    ssl_test_lib:version_flag(Version)], -    ct:log("openssl cmd: ~p~n", [Cmd]), +    OpenSslPort =  ssl_test_lib:portable_open_port(Exe, Args),  -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),       true = port_command(OpenSslPort, Data),      ssl_test_lib:check_result(Server, ok), @@ -407,14 +404,13 @@ erlang_client_openssl_server_dsa_cert(Config) when is_list(Config) ->      CertFile = proplists:get_value(certfile, ServerOpts),      KeyFile = proplists:get_value(keyfile, ServerOpts),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), +    Exe = "openssl", +    Args = ["s_server", "-accept", integer_to_list(Port), +	    ssl_test_lib:version_flag(Version), +	    "-cert", CertFile, "-CAfile", CaCertFile,   +	    "-key", KeyFile, "-Verify", "2", "-msg"], -    Cmd = "openssl s_server -accept " ++ integer_to_list(Port)  ++  ssl_test_lib:version_flag(Version) ++ -	" -cert " ++ CertFile ++ " -CAfile " ++ CaCertFile   -	++ " -key " ++ KeyFile ++ " -Verify 2 -msg", -     -    ct:log("openssl cmd: ~p~n", [Cmd]), - -    OpensslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    OpensslPort =  ssl_test_lib:portable_open_port(Exe, Args),       ssl_test_lib:wait_for_openssl_server(Port), @@ -455,13 +451,14 @@ erlang_server_openssl_client_dsa_cert(Config) when is_list(Config) ->                            {options, ServerOpts}]),      Port = ssl_test_lib:inet_port(Server),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_client -port " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -       " -host localhost " ++  " -cert " ++ CertFile ++ " -CAfile " ++ CaCertFile -       ++ " -key " ++ KeyFile ++ " -msg", - -    ct:log("openssl cmd: ~p~n", [Cmd]), - -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]), +    Exe = "openssl", +    Args = ["s_client", "-connect", "localhost: " ++ integer_to_list(Port), +	    ssl_test_lib:version_flag(Version), +	    "-cert", CertFile, +	    "-CAfile", CaCertFile, +	    "-key", KeyFile, "-msg"], + +    OpenSslPort = ssl_test_lib:portable_open_port(Exe, Args),       true = port_command(OpenSslPort, Data),      ssl_test_lib:check_result(Server, ok), @@ -491,12 +488,13 @@ erlang_server_openssl_client_reuse_session(Config) when is_list(Config) ->  			   {options, ServerOpts}]),      Port = ssl_test_lib:inet_port(Server),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_client -port " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -	" -host localhost -reconnect", - -    ct:log("openssl cmd: ~p~n", [Cmd]), -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    Exe = "openssl", +    Args = ["s_client", "-connect",  "localhost:" ++ integer_to_list(Port), +	    ssl_test_lib:version_flag(Version), +	    "-reconnect"], +     +    OpenSslPort =  ssl_test_lib:portable_open_port(Exe, Args),      true = port_command(OpenSslPort, Data), @@ -527,12 +525,12 @@ erlang_client_openssl_server_renegotiate(Config) when is_list(Config) ->      KeyFile = proplists:get_value(keyfile, ServerOpts),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_server -accept " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -	" -cert " ++ CertFile ++ " -key " ++ KeyFile ++ " -msg",  +    Exe = "openssl", +    Args = ["s_server", "-accept", integer_to_list(Port),   +	    ssl_test_lib:version_flag(Version),  +	    "-cert", CertFile, "-key", KeyFile, "-msg"],  -    ct:log("openssl cmd: ~p~n", [Cmd]), - -    OpensslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    OpensslPort =  ssl_test_lib:portable_open_port(Exe, Args),       ssl_test_lib:wait_for_openssl_server(Port), @@ -576,12 +574,12 @@ erlang_client_openssl_server_nowrap_seqnum(Config) when is_list(Config) ->      CertFile = proplists:get_value(certfile, ServerOpts),      KeyFile = proplists:get_value(keyfile, ServerOpts),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_server -accept " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -	" -cert " ++ CertFile ++ " -key " ++ KeyFile ++ " -msg",  +    Exe = "openssl", +    Args = ["s_server", "-accept", integer_to_list(Port), +	    ssl_test_lib:version_flag(Version), +	    "-cert", CertFile, "-key", KeyFile, "-msg"],  -    ct:log("openssl cmd: ~p~n", [Cmd]), - -    OpensslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    OpensslPort = ssl_test_lib:portable_open_port(Exe, Args),      ssl_test_lib:wait_for_openssl_server(Port), @@ -622,12 +620,12 @@ erlang_server_openssl_client_nowrap_seqnum(Config) when is_list(Config) ->  					{options, [{renegotiate_at, N}, {reuse_sessions, false} | ServerOpts]}]),      Port = ssl_test_lib:inet_port(Server),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_client -port " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -	" -host localhost -msg", - -    ct:log("openssl cmd: ~p~n", [Cmd]), +    Exe = "openssl",  +    Args = ["s_client","-connect", "localhost: " ++ integer_to_list(Port), +	    ssl_test_lib:version_flag(Version), +	    "-msg"], -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    OpenSslPort = ssl_test_lib:portable_open_port(Exe, Args),       true = port_command(OpenSslPort, Data), @@ -657,13 +655,13 @@ erlang_client_openssl_server_no_server_ca_cert(Config) when is_list(Config) ->      CertFile = proplists:get_value(certfile, ServerOpts),      KeyFile = proplists:get_value(keyfile, ServerOpts),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_server -accept " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -	" -cert " ++ CertFile ++ " -key " ++ KeyFile ++ " -msg",  +    Exe = "openssl", +    Args = ["s_server", "-accept", integer_to_list(Port),  +	    ssl_test_lib:version_flag(Version), +	    "-cert", CertFile, "-key", KeyFile, "-msg"],  -    ct:log("openssl cmd: ~p~n", [Cmd]), - -    OpensslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  - +    OpensslPort =  ssl_test_lib:portable_open_port(Exe, Args),  +       ssl_test_lib:wait_for_openssl_server(Port),      Client = ssl_test_lib:start_client([{node, ClientNode}, {port, Port},  @@ -699,13 +697,13 @@ erlang_client_openssl_server_client_cert(Config) when is_list(Config) ->      CaCertFile = proplists:get_value(cacertfile, ServerOpts),      KeyFile = proplists:get_value(keyfile, ServerOpts),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_server -accept " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -	" -cert " ++ CertFile ++ " -CAfile " ++ CaCertFile  -	++ " -key " ++ KeyFile ++ " -Verify 2", +    Exe = "openssl", +    Args = ["s_server", "-accept", integer_to_list(Port), +	    ssl_test_lib:version_flag(Version), +	    "-cert", CertFile, "-CAfile", CaCertFile,  +	    "-key", KeyFile, "-Verify", "2"], -    ct:log("openssl cmd: ~p~n", [Cmd]), - -    OpensslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    OpensslPort = ssl_test_lib:portable_open_port(Exe, Args),         ssl_test_lib:wait_for_openssl_server(Port), @@ -750,13 +748,14 @@ erlang_server_openssl_client_client_cert(Config) when is_list(Config) ->      CertFile = proplists:get_value(certfile, ClientOpts),      KeyFile = proplists:get_value(keyfile, ClientOpts),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_client -cert " ++ CertFile  ++ " -CAfile " ++ CaCertFile  -	++ " -key " ++ KeyFile ++ " -port " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -	" -host localhost", - -    ct:log("openssl cmd: ~p~n", [Cmd]), +    Exe = "openssl", +    Args = ["s_client", "-cert", CertFile, +	   "-CAfile", CaCertFile,  +	   "-key", KeyFile,"-connect", "localhost:" ++ integer_to_list(Port), +	   ssl_test_lib:version_flag(Version)], -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    OpenSslPort = ssl_test_lib:portable_open_port(Exe, Args),  +      true = port_command(OpenSslPort, Data),      ssl_test_lib:check_result(Server, ok), @@ -839,12 +838,11 @@ erlang_client_bad_openssl_server(Config) when is_list(Config) ->      CertFile = proplists:get_value(certfile, ServerOpts),      KeyFile = proplists:get_value(keyfile, ServerOpts),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_server -accept " ++ integer_to_list(Port)  ++  ssl_test_lib:version_flag(Version) ++ - 	" -cert " ++ CertFile ++ " -key " ++ KeyFile ++ "", - -    ct:log("openssl cmd: ~p~n", [Cmd]), +    Exe = "openssl", +    Args = ["s_server", "-accept", integer_to_list(Port), ssl_test_lib:version_flag(Version), + 	"-cert", CertFile, "-key", KeyFile], -    OpensslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    OpensslPort = ssl_test_lib:portable_open_port(Exe, Args),       ssl_test_lib:wait_for_openssl_server(Port), @@ -895,12 +893,11 @@ expired_session(Config) when is_list(Config) ->      CertFile = proplists:get_value(certfile, ServerOpts),      KeyFile = proplists:get_value(keyfile, ServerOpts), -    Cmd = "openssl s_server -accept " ++ integer_to_list(Port)  ++ -	" -cert " ++ CertFile ++ " -key " ++ KeyFile ++ "",  +    Exe = "openssl", +    Args = ["s_server", "-accept", integer_to_list(Port), +	"-cert", CertFile,"-key", KeyFile],  -    ct:log("openssl cmd: ~p~n", [Cmd]), - -    OpensslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    OpensslPort = ssl_test_lib:portable_open_port(Exe, Args),       ssl_test_lib:wait_for_openssl_server(Port), @@ -953,12 +950,11 @@ ssl2_erlang_server_openssl_client(Config) when is_list(Config) ->  			   {options, ServerOpts}]),      Port = ssl_test_lib:inet_port(Server), -    Cmd = "openssl s_client -port " ++ integer_to_list(Port)  ++  -	" -host localhost -ssl2 -msg", - -    ct:log("openssl cmd: ~p~n", [Cmd]), +    Exe = "openssl", +    Args = ["s_client", "-connect", "localhost:" ++ integer_to_list(Port),  +	"-ssl2", "-msg"], -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]),  +    OpenSslPort = ssl_test_lib:portable_open_port(Exe, Args),        true = port_command(OpenSslPort, Data),      ct:log("Ports ~p~n", [[erlang:port_info(P) || P <- erlang:ports()]]),  @@ -1033,7 +1029,7 @@ erlang_server_alpn_openssl_client(Config) when is_list(Config) ->      Data = "From openssl to erlang",      start_erlang_server_and_openssl_client_with_opts(Config,  						     [{alpn_preferred_protocols, [<<"spdy/2">>]}], -                                                     "", +                                                     [],  						     Data, fun(Server, OpensslPort) ->          true = port_command(OpensslPort, Data),          ssl_test_lib:check_result(Server, ok) @@ -1046,7 +1042,7 @@ erlang_server_openssl_client_alpn(Config) when is_list(Config) ->      Data = "From openssl to erlang",      start_erlang_server_and_openssl_client_with_opts(Config,  						     [], -                                                     "-alpn spdy/2", +                                                     ["-alpn", "spdy/2"],  						     Data, fun(Server, OpensslPort) ->          true = port_command(OpensslPort, Data),          ssl_test_lib:check_result(Server, ok) @@ -1179,7 +1175,7 @@ erlang_client_openssl_server_npn_only_client(Config) when is_list(Config) ->  %%--------------------------------------------------------------------------  erlang_server_openssl_client_npn_only_server(Config) when is_list(Config) ->      Data = "From openssl to erlang", -    start_erlang_server_and_openssl_client_with_opts(Config, [{next_protocols_advertised, [<<"spdy/2">>]}], "", +    start_erlang_server_and_openssl_client_with_opts(Config, [{next_protocols_advertised, [<<"spdy/2">>]}], [],  						     Data, fun(Server, OpensslPort) ->          true = port_command(OpensslPort, Data),          ssl_test_lib:check_result(Server, ok) @@ -1188,7 +1184,7 @@ erlang_server_openssl_client_npn_only_server(Config) when is_list(Config) ->  erlang_server_openssl_client_npn_only_client(Config) when is_list(Config) ->      Data = "From openssl to erlang", -    start_erlang_server_and_openssl_client_with_opts(Config, [], "-nextprotoneg spdy/2", +    start_erlang_server_and_openssl_client_with_opts(Config, [], ["-nextprotoneg", "spdy/2"],  						     Data, fun(Server, OpensslPort) ->          true = port_command(OpensslPort, Data),          ssl_test_lib:check_result(Server, ok) @@ -1613,12 +1609,12 @@ start_erlang_server_and_openssl_client_for_npn_negotiation(Config, Data, Callbac                      {options, ServerOpts}]),      Port = ssl_test_lib:inet_port(Server),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_client -nextprotoneg http/1.0,spdy/2 -msg -port " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -    " -host localhost", -    ct:log("openssl cmd: ~p~n", [Cmd]), +    Exe = "openssl", +    Args = ["s_client", "-nextprotoneg", "http/1.0,spdy/2", "-msg", "-connect", "localhost:"  +	    ++ integer_to_list(Port), ssl_test_lib:version_flag(Version)], -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]), +    OpenSslPort = ssl_test_lib:portable_open_port(Exe, Args),        Callback(Server, OpenSslPort), @@ -1642,12 +1638,12 @@ start_erlang_server_and_openssl_client_with_opts(Config, ErlangServerOpts, OpenS                      {options, ServerOpts}]),      Port = ssl_test_lib:inet_port(Server),      Version = tls_record:protocol_version(tls_record:highest_protocol_version([])), -    Cmd = "openssl s_client " ++ OpenSSLClientOpts ++ " -msg -port " ++ integer_to_list(Port)  ++ ssl_test_lib:version_flag(Version) ++ -    " -host localhost", - -    ct:log("openssl cmd: ~p~n", [Cmd]), +    +    Exe = "openssl", +    Args = ["s_client"] ++ OpenSSLClientOpts ++ ["-msg",  "-connect", "localhost:" ++ integer_to_list(Port), +	    ssl_test_lib:version_flag(Version)], -    OpenSslPort =  open_port({spawn, Cmd}, [stderr_to_stdout]), +    OpenSslPort = ssl_test_lib:portable_open_port(Exe, Args),      Callback(Server, OpenSslPort), @@ -1793,13 +1789,13 @@ workaround_openssl_s_clinent() ->      %% explicitly specified       case os:cmd("openssl version") of   	"OpenSSL 1.0.1c" ++ _ -> -	    " -no_tls1_2 "; +	    ["-no_tls1_2"];  	"OpenSSL 1.0.1d" ++ _ -> -	    " -no_tls1_2 "; +	    ["-no_tls1_2"];  	"OpenSSL 1.0.1e" ++ _ -> -	    " -no_tls1_2 "; +	    ["-no_tls1_2"];  	"OpenSSL 1.0.1f" ++ _ -> -	    " -no_tls1_2 "; +	    ["-no_tls1_2"];  	_  -> -	    "" +	    []      end.  | 
