diff options
author | Hans Nilsson <hans@erlang.org> | 2020-01-10 10:27:01 +0100 |
---|---|---|
committer | Hans Nilsson <hans@erlang.org> | 2020-01-10 15:07:17 +0100 |
commit | 3e1c5455d404180aa4362731098137ef2cc74b18 (patch) | |
tree | 33bb6c53f06735138861aca845f933becdb7063b | |
parent | e7bc4ae0fe0f260941343a27cef6df7a5d6a5d2f (diff) | |
download | erlang-3e1c5455d404180aa4362731098137ef2cc74b18.tar.gz |
ssh: Remove inet_port() from tests
-rw-r--r-- | lib/ssh/test/ssh_basic_SUITE.erl | 14 | ||||
-rw-r--r-- | lib/ssh/test/ssh_relay.erl | 21 | ||||
-rw-r--r-- | lib/ssh/test/ssh_sup_SUITE.erl | 33 | ||||
-rw-r--r-- | lib/ssh/test/ssh_test_lib.erl | 16 | ||||
-rw-r--r-- | lib/ssh/test/ssh_upgrade_SUITE.erl | 3 |
5 files changed, 36 insertions, 51 deletions
diff --git a/lib/ssh/test/ssh_basic_SUITE.erl b/lib/ssh/test/ssh_basic_SUITE.erl index 30d03f842f..f8b883c643 100644 --- a/lib/ssh/test/ssh_basic_SUITE.erl +++ b/lib/ssh/test/ssh_basic_SUITE.erl @@ -866,7 +866,7 @@ daemon_already_started(Config) when is_list(Config) -> %%% Test that a failed daemon start does not leave the port open daemon_error_closes_port(Config) -> GoodSystemDir = proplists:get_value(data_dir, Config), - Port = ssh_test_lib:inet_port(), + Port = inet_port(), {error,_} = ssh_test_lib:daemon(Port, []), % No system dir case ssh_test_lib:daemon(Port, [{system_dir, GoodSystemDir}]) of {error,eaddrinuse} -> @@ -1681,9 +1681,7 @@ renegotiate1(Config) -> {Pid, Host, DPort} = ssh_test_lib:std_daemon(Config,[{max_random_length_padding,0}, {preferred_algorithms,Algs}]), - RPort = ssh_test_lib:inet_port(), - {ok,RelayPid} = ssh_relay:start_link({0,0,0,0}, RPort, Host, DPort), - + {ok,RelayPid,_,RPort} = ssh_relay:start_link({0,0,0,0}, 0, Host, DPort), ConnectionRef = ssh_test_lib:std_connect(Config, Host, RPort, [{max_random_length_padding,0}]), {ok, SftpPid} = ssh_sftp:start_channel(ConnectionRef), @@ -1721,8 +1719,7 @@ renegotiate2(Config) -> {Pid, Host, DPort} = ssh_test_lib:std_daemon(Config,[{max_random_length_padding,0}, {preferred_algorithms,Algs}]), - RPort = ssh_test_lib:inet_port(), - {ok,RelayPid} = ssh_relay:start_link({0,0,0,0}, RPort, Host, DPort), + {ok,RelayPid,_,RPort} = ssh_relay:start_link({0,0,0,0}, 0, Host, DPort), ConnectionRef = ssh_test_lib:std_connect(Config, Host, RPort, [{max_random_length_padding,0}]), {ok, SftpPid} = ssh_sftp:start_channel(ConnectionRef), @@ -1931,3 +1928,8 @@ new_do_shell_prompt(IO, N, Op, Str, More) -> new_do_shell(IO, N, [{Op,Str}|More]). %%-------------------------------------------------------------------- +inet_port() -> + {ok, Socket} = gen_tcp:listen(0, [{reuseaddr, true}]), + {ok, Port} = inet:port(Socket), + gen_tcp:close(Socket), + Port. diff --git a/lib/ssh/test/ssh_relay.erl b/lib/ssh/test/ssh_relay.erl index 763130358b..3bb4cb2071 100644 --- a/lib/ssh/test/ssh_relay.erl +++ b/lib/ssh/test/ssh_relay.erl @@ -28,8 +28,7 @@ }). -record(state, { - local_addr, - local_port, + sockname, peer_addr, peer_port, lpid, @@ -92,11 +91,17 @@ release_next(Srv, Dir, TriggerDir) -> %% @doc %% Starts the server %% -%% @spec start_link() -> {ok, Pid} | ignore | {error, Error} +%% @spec start_link() -> {ok, Pid, Host, Port} | ignore | {error, Error} %% @end %%-------------------------------------------------------------------- start_link(ListenAddr, ListenPort, PeerAddr, PeerPort) -> - gen_server:start_link(?MODULE, [ListenAddr, ListenPort, PeerAddr, PeerPort], []). + case gen_server:start_link(?MODULE, [ListenAddr, ListenPort, PeerAddr, PeerPort], []) of + {ok,Pid} -> + {ok,{Host,Port}} = gen_server:call(Pid, get_sockname), + {ok, Pid, Host, Port}; + Other -> + Other + end. stop(Srv) -> unlink(Srv), @@ -126,11 +131,11 @@ init([ListenAddr, ListenPort, PeerAddr, PeerPort | _Options]) -> end, case gen_tcp:listen(ListenPort, [{reuseaddr, true}, {backlog, 1}, {active, false}, binary | IfAddr]) of {ok, LSock} -> + {ok, SName} = inet:sockname(LSock), Parent = self(), {LPid, _LMod} = spawn_monitor(fun() -> listen(Parent, LSock) end), - S = #state{local_addr = ListenAddr, - local_port = ListenPort, - lpid = LPid, + S = #state{sockname = SName, + lpid = LPid, peer_addr = ssh_test_lib:ntoa( ssh_test_lib:mangle_connect_address(PeerAddr)), peer_port = PeerPort @@ -174,6 +179,8 @@ handle_call({release, Dir}, _From, State) -> end; handle_call({release_next, _Dir, _TriggerDir}, _From, State) -> {reply, {error, nyi}, State}; +handle_call(get_sockname, _From, State) -> + {reply, {ok,State#state.sockname}, State}; handle_call(Request, _From, State) -> Reply = {unhandled, Request}, diff --git a/lib/ssh/test/ssh_sup_SUITE.erl b/lib/ssh/test/ssh_sup_SUITE.erl index a0e3d809be..73bfc13eef 100644 --- a/lib/ssh/test/ssh_sup_SUITE.erl +++ b/lib/ssh/test/ssh_sup_SUITE.erl @@ -58,11 +58,10 @@ end_per_group(_GroupName, Config) -> init_per_suite(Config) -> ?CHECK_CRYPTO( begin - Port = ssh_test_lib:inet_port(node()), PrivDir = proplists:get_value(priv_dir, Config), UserDir = filename:join(PrivDir, nopubkey), % to make sure we don't use public-key-auth file:make_dir(UserDir), - [{userdir, UserDir},{port, Port}, {host, "localhost"}, {host_ip, any} | Config] + [{userdir, UserDir} | Config] end). end_per_suite(_) -> @@ -136,13 +135,11 @@ sshc_subtree(Config) when is_list(Config) -> sshd_subtree() -> [{doc, "Make sure the sshd subtree is correct"}]. sshd_subtree(Config) when is_list(Config) -> - HostIP = proplists:get_value(host_ip, Config), - Port = proplists:get_value(port, Config), SystemDir = proplists:get_value(data_dir, Config), - {ok,Daemon} = ssh:daemon(HostIP, Port, [{system_dir, SystemDir}, - {failfun, fun ssh_test_lib:failfun/2}, - {user_passwords, - [{?USER, ?PASSWD}]}]), + {Daemon, HostIP, Port} = ssh_test_lib:daemon([{system_dir, SystemDir}, + {failfun, fun ssh_test_lib:failfun/2}, + {user_passwords, + [{?USER, ?PASSWD}]}]), ct:log("Expect HostIP=~p, Port=~p, Daemon=~p",[HostIP,Port,Daemon]), ?wait_match([{{server,ssh_system_sup, ListenIP, Port, ?DEFAULT_PROFILE}, @@ -151,7 +148,7 @@ sshd_subtree(Config) when is_list(Config) -> supervisor:which_children(sshd_sup), [ListenIP,Daemon]), true = ssh_test_lib:match_ip(HostIP, ListenIP), - check_sshd_system_tree(Daemon, Config), + check_sshd_system_tree(Daemon, HostIP, Port, Config), ssh:stop_daemon(HostIP, Port), ct:sleep(?WAIT_FOR_SHUTDOWN), ?wait_match([], supervisor:which_children(sshd_sup)). @@ -160,16 +157,14 @@ sshd_subtree(Config) when is_list(Config) -> sshd_subtree_profile() -> [{doc, "Make sure the sshd subtree using profile option is correct"}]. sshd_subtree_profile(Config) when is_list(Config) -> - HostIP = proplists:get_value(host_ip, Config), - Port = proplists:get_value(port, Config), Profile = proplists:get_value(profile, Config), SystemDir = proplists:get_value(data_dir, Config), - {ok, Daemon} = ssh:daemon(HostIP, Port, [{system_dir, SystemDir}, - {failfun, fun ssh_test_lib:failfun/2}, - {user_passwords, - [{?USER, ?PASSWD}]}, - {profile, Profile}]), + {Daemon, HostIP, Port} = ssh_test_lib:daemon([{system_dir, SystemDir}, + {failfun, fun ssh_test_lib:failfun/2}, + {user_passwords, + [{?USER, ?PASSWD}]}, + {profile, Profile}]), ct:log("Expect HostIP=~p, Port=~p, Profile=~p, Daemon=~p",[HostIP,Port,Profile,Daemon]), ?wait_match([{{server,ssh_system_sup, ListenIP,Port,Profile}, Daemon, supervisor, @@ -177,7 +172,7 @@ sshd_subtree_profile(Config) when is_list(Config) -> supervisor:which_children(sshd_sup), [ListenIP,Daemon]), true = ssh_test_lib:match_ip(HostIP, ListenIP), - check_sshd_system_tree(Daemon, Config), + check_sshd_system_tree(Daemon, HostIP, Port, Config), ssh:stop_daemon(HostIP, Port, Profile), ct:sleep(?WAIT_FOR_SHUTDOWN), ?wait_match([], supervisor:which_children(sshd_sup)). @@ -354,9 +349,7 @@ chk_empty_con_daemon(Daemon) -> %%------------------------------------------------------------------------- %% Help functions %%------------------------------------------------------------------------- -check_sshd_system_tree(Daemon, Config) -> - Host = proplists:get_value(host, Config), - Port = proplists:get_value(port, Config), +check_sshd_system_tree(Daemon, Host, Port, Config) -> UserDir = proplists:get_value(userdir, Config), {ok, Client} = ssh:connect(Host, Port, [{silently_accept_hosts, true}, {user_interaction, false}, diff --git a/lib/ssh/test/ssh_test_lib.erl b/lib/ssh/test/ssh_test_lib.erl index 036820fa8d..a4794dde1b 100644 --- a/lib/ssh/test/ssh_test_lib.erl +++ b/lib/ssh/test/ssh_test_lib.erl @@ -353,12 +353,6 @@ receive_exec_result(Data, ConnectionRef, ChannelId) -> expected = receive_exec_result(Closed). -inet_port()-> - {ok, Socket} = gen_tcp:listen(0, [{reuseaddr, true}]), - {ok, Port} = inet:port(Socket), - gen_tcp:close(Socket), - Port. - setup_ssh_auth_keys(RSAFile, DSAFile, Dir) -> Entries = ssh_file_entry(RSAFile) ++ ssh_file_entry(DSAFile), AuthKeys = public_key:ssh_encode(Entries , auth_keys), @@ -611,16 +605,6 @@ del_dirs(Dir) -> ok end. -inet_port(Node) -> - {Port, Socket} = do_inet_port(Node), - rpc:call(Node, gen_tcp, close, [Socket]), - Port. - -do_inet_port(Node) -> - {ok, Socket} = rpc:call(Node, gen_tcp, listen, [0, [{reuseaddr, true}]]), - {ok, Port} = rpc:call(Node, inet, port, [Socket]), - {Port, Socket}. - openssh_sanity_check(Config) -> ssh:start(), case ssh:connect("localhost", 22, [{password,""}]) of diff --git a/lib/ssh/test/ssh_upgrade_SUITE.erl b/lib/ssh/test/ssh_upgrade_SUITE.erl index 7b9b109fa1..de9d7b2b1c 100644 --- a/lib/ssh/test/ssh_upgrade_SUITE.erl +++ b/lib/ssh/test/ssh_upgrade_SUITE.erl @@ -149,8 +149,7 @@ setup_server_client(#state{config=Config} = State) -> SFTP = ssh_sftpd:subsystem_spec([{root,FtpRootDir},{cwd,FtpRootDir}]), - {Server,Host,Port} = ssh_test_lib:daemon(ssh_test_lib:inet_port(), % when lower rel is 18.x - [{system_dir,DataDir}, + {Server,Host,Port} = ssh_test_lib:daemon([{system_dir,DataDir}, {user_passwords,[{"hej","hopp"}]}, {subsystems,[SFTP]}]), |