Fix test case

This commit is contained in:
linjun 2019-02-28 16:36:47 +08:00
parent 37c7e684b0
commit 814fd3fc9e
4 changed files with 60 additions and 117 deletions

View File

@ -84,7 +84,7 @@
-spec(init(map(), list()) -> state()).
init(SocketOpts = #{peername := Peername, peercert := Peercert, sendfun := SendFun}, Options) ->
ConnMod = maps:get(conn_mod, SocketOpts),
ConnMod = maps:get(conn_mod, SocketOpts, undefined),
Zone = proplists:get_value(zone, Options),
#pstate{zone = Zone,
sendfun = SendFun,

View File

@ -23,62 +23,6 @@
-include("emqx_mqtt.hrl").
-define(STATS, [{mailbox_len, _},
{heap_size, _},
{reductions, _},
{recv_pkt, _},
{recv_msg, _},
{send_pkt, _},
{send_msg, _},
{recv_oct, _},
{recv_cnt, _},
{send_oct, _},
{send_cnt, _},
{send_pend, _}]).
-define(ATTRS, [{clean_start, _},
{client_id, _},
{conn_mod, _},
{connected_at, _},
{is_bridge, _},
{is_super, _},
{keepalive, _},
{mountpoint, _},
{peercert, _},
{peername, _},
{proto_name, _},
{proto_ver, _},
{sockname, _},
{socktype, _},
{username, _},
{zone, _}]).
-define(INFO, [{ack_props, _},
{active_n, _},
{clean_start, _},
{client_id, _},
{conn_mod, _},
{conn_props, _},
{conn_state, _},
{connected_at, _},
{enable_acl, _},
{is_bridge, _},
{is_super, _},
{keepalive, _},
{mountpoint, _},
{peercert, _},
{peername, _},
{proto_name, _},
{proto_ver, _},
{pub_limit, _},
{rate_limit, _},
{session, _},
{sockname, _},
{socktype, _},
{topic_aliases, _},
{username, _},
{zone, _}]).
all() ->
[t_connect_api].
@ -96,9 +40,34 @@ t_connect_api(_Config) ->
{password, <<"pass1">>}]),
{ok, _} = emqx_client:connect(T1),
CPid = emqx_cm:lookup_conn_pid(<<"client1">>),
?STATS = emqx_connection:stats(CPid),
?ATTRS = emqx_connection:attrs(CPid),
?INFO = emqx_connection:info(CPid),
ConnStats = emqx_connection:stats(CPid),
ok = t_stats(ConnStats),
ConnAttrs = emqx_connection:attrs(CPid),
io:io_format("~p~n", [ConnAttrs]),
ok = t_attrs(ConnAttrs),
ConnInfo = emqx_connection:info(CPid),
ok = t_info(ConnInfo),
SessionPid = emqx_connection:session(CPid),
true = is_pid(SessionPid),
emqx_client:disconnect(T1).
t_info(ConnInfo) ->
?assertEqual(tcp, proplists:get_value(socktype, ConnInfo)),
?assertEqual(running, proplists:get_value(conn_state, ConnInfo)),
?assertEqual(<<"client1">>, proplists:get_value(client_id, ConnInfo)),
?assertEqual(<<"testuser1">>, proplists:get_value(username, ConnInfo)),
?assertEqual(<<"MQTT">>, proplists:get_value(proto_name, ConnInfo)).
t_attrs(AttrsData) ->
?assertEqual(<<"client1">>, proplists:get_value(client_id, AttrsData)),
?assertEqual(emqx_connection, proplists:get_value(conn_mod, AttrsData)),
?assertEqual(<<"testuser1">>, proplists:get_value(username, AttrsData)).
t_stats(StatsData) ->
?assertEqual(true, proplists:get_value(recv_oct, StatsData) >= 0),
?assertEqual(true, proplists:get_value(mailbox_len, StatsData) >= 0),
?assertEqual(true, proplists:get_value(heap_size, StatsData) >= 0),
?assertEqual(true, proplists:get_value(reductions, StatsData) >=0),
?assertEqual(true, proplists:get_value(recv_pkt, StatsData) =:=1),
?assertEqual(true, proplists:get_value(recv_msg, StatsData) >=0),
?assertEqual(true, proplists:get_value(send_pkt, StatsData) =:=1).

View File

@ -62,7 +62,8 @@
connected,
connected_at,
ignore_loop,
topic_alias_maximum
topic_alias_maximum,
conn_mod
}).
@ -90,7 +91,8 @@
send_stats = SendStats,
connected = false,
ignore_loop = false,
topic_alias_maximum = #{to_client => 0, from_client => 0}}).
topic_alias_maximum = #{to_client => 0, from_client => 0},
conn_mod = emqx_connection}).
all() ->
[

View File

@ -35,58 +35,6 @@
-define(PUBQOS, 1).
-define(INFO, [{socktype, _},
{conn_state, _},
{peername, _},
{sockname, _},
{zone, _},
{client_id, <<"mqtt_client">>},
{username, <<"admin">>},
{peername, _},
{peercert, _},
{proto_ver, _},
{proto_name, _},
{clean_start, _},
{keepalive, _},
{mountpoint, _},
{is_super, _},
{is_bridge, _},
{connected_at, _},
{conn_mod, _},
{conn_props, _},
{ack_props, _},
{session, _},
{topic_aliases, _},
{enable_acl, _}]).
-define(ATTRS, [{clean_start,true},
{client_id, <<"mqtt_client">>},
{conn_mod, _},
{connected_at, _},
{is_bridge, _},
{is_super, _},
{keepalive, _},
{mountpoint, _},
{peercert, _},
{peername, _},
{proto_name, _},
{proto_ver, _},
{sockname, _},
{username, <<"admin">>},
{zone, _}]).
-define(STATS, [{recv_oct, _},
{recv_cnt, _},
{send_oct, _},
{send_cnt, _},
{mailbox_len, _},
{heap_size, _},
{reductions, _},
{recv_pkt, _},
{recv_msg, _},
{send_pkt, _},
{send_msg, _}]).
all() ->
[t_ws_connect_api].
@ -105,9 +53,12 @@ t_ws_connect_api(_Config) ->
{binary, CONACK} = rfc6455_client:recv(WS),
{ok, ?CONNACK_PACKET(?CONNACK_ACCEPT), _} = raw_recv_pase(CONACK),
Pid = emqx_cm:lookup_conn_pid(<<"mqtt_client">>),
?INFO = emqx_ws_connection:info(Pid),
?ATTRS = emqx_ws_connection:attrs(Pid),
?STATS = emqx_ws_connection:stats(Pid),
ConnInfo = emqx_ws_connection:info(Pid),
ok = t_info(ConnInfo),
ConnAttrs = emqx_ws_connection:attrs(Pid),
ok = t_attrs(ConnAttrs),
ConnStats = emqx_ws_connection:stats(Pid),
ok = t_stats(ConnStats),
SessionPid = emqx_ws_connection:session(Pid),
true = is_pid(SessionPid),
ok = emqx_ws_connection:kick(Pid),
@ -120,3 +71,24 @@ raw_send_serialize(Packet) ->
raw_recv_pase(P) ->
emqx_frame:parse(P, {none, #{max_packet_size => ?MAX_PACKET_SIZE,
version => ?MQTT_PROTO_V4} }).
t_info(InfoData) ->
?assertEqual(websocket, proplists:get_value(socktype, InfoData)),
?assertEqual(running, proplists:get_value(conn_state, InfoData)),
?assertEqual(<<"mqtt_client">>, proplists:get_value(client_id, InfoData)),
?assertEqual(<<"admin">>, proplists:get_value(username, InfoData)),
?assertEqual(<<"MQTT">>, proplists:get_value(proto_name, InfoData)).
t_attrs(AttrsData) ->
?assertEqual(<<"mqtt_client">>, proplists:get_value(client_id, AttrsData)),
?assertEqual(emqx_ws_connection, proplists:get_value(conn_mod, AttrsData)),
?assertEqual(<<"admin">>, proplists:get_value(username, AttrsData)).
t_stats(StatsData) ->
?assertEqual(true, proplists:get_value(recv_oct, StatsData) >= 0),
?assertEqual(true, proplists:get_value(mailbox_len, StatsData) >= 0),
?assertEqual(true, proplists:get_value(heap_size, StatsData) >= 0),
?assertEqual(true, proplists:get_value(reductions, StatsData) >=0),
?assertEqual(true, proplists:get_value(recv_pkt, StatsData) =:=1),
?assertEqual(true, proplists:get_value(recv_msg, StatsData) >=0),
?assertEqual(true, proplists:get_value(send_pkt, StatsData) =:=1).