From 921a45a5057d5a75fcaf827a035214efb18ed0f0 Mon Sep 17 00:00:00 2001 From: Gilbert Wong Date: Mon, 25 Feb 2019 09:20:05 +0800 Subject: [PATCH] Fix emqx_portal_mqtt_tests start function --- src/emqx_client.erl | 1 - src/portal/emqx_portal_mqtt.erl | 15 +++++++++++---- test/emqx_portal_mqtt_tests.erl | 3 +-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/emqx_client.erl b/src/emqx_client.erl index 48c8c0e1e..987cf52d3 100644 --- a/src/emqx_client.erl +++ b/src/emqx_client.erl @@ -1382,4 +1382,3 @@ bump_last_packet_id(State = #state{last_packet_id = Id}) -> -spec next_packet_id(packet_id()) -> packet_id(). next_packet_id(?MAX_PACKET_ID) -> 1; next_packet_id(Id) -> Id + 1. - diff --git a/src/portal/emqx_portal_mqtt.erl b/src/portal/emqx_portal_mqtt.erl index 6c718e9e4..f47a0cf5a 100644 --- a/src/portal/emqx_portal_mqtt.erl +++ b/src/portal/emqx_portal_mqtt.erl @@ -39,12 +39,20 @@ -define(ACKED(AnyPktId), {acked, AnyPktId}). -define(STOP(Ref), {stop, Ref}). -start(Config) -> +start(Config = #{address := Address}) -> Ref = make_ref(), Parent = self(), AckCollector = spawn_link(fun() -> ack_collector(Parent, Ref) end), Handlers = make_hdlr(Parent, AckCollector, Ref), - case emqx_client:start_link(Config#{msg_handler => Handlers, owner => AckCollector}) of + {Host, Port} = case string:tokens(Address, ":") of + [H] -> {H, 1883}; + [H, P] -> {H, list_to_integer(P)} + end, + ClientConfig = Config#{msg_handler => Handlers, + owner => AckCollector, + host => Host, + port => Port}, + case emqx_client:start_link(ClientConfig) of {ok, Pid} -> case emqx_client:connect(Pid) of {ok, _} -> @@ -58,7 +66,7 @@ start(Config) -> {error, Reason} end; {error, Reason} -> - ok = stop(AckCollector, Pid), + ok = stop(Ref, #{ack_collector => AckCollector, client_pid => Pid}), {error, Reason} end; {error, Reason} -> @@ -178,4 +186,3 @@ subscribe_remote_topics(ClientPid, Subscriptions) -> Error -> throw(Error) end end, Subscriptions). - diff --git a/test/emqx_portal_mqtt_tests.erl b/test/emqx_portal_mqtt_tests.erl index 311554a2f..788f5a4b2 100644 --- a/test/emqx_portal_mqtt_tests.erl +++ b/test/emqx_portal_mqtt_tests.erl @@ -39,7 +39,7 @@ send_and_ack_test() -> try Max = 100, Batch = lists:seq(1, Max), - {ok, Ref, Conn} = emqx_portal_mqtt:start(#{}), + {ok, Ref, Conn} = emqx_portal_mqtt:start(#{address => "127.0.0.1:1883"}), %% return last packet id as batch reference {ok, AckRef} = emqx_portal_mqtt:send(Conn, Batch), %% expect batch ack @@ -57,4 +57,3 @@ fake_client(#{puback := PubAckCallback} = Hdlr) -> stop -> exit(normal) end. -