test: cover mqttsn predefined topics
This commit is contained in:
parent
6fc50d11f8
commit
9760181ed9
|
@ -52,7 +52,10 @@
|
||||||
-define(PREDEF_TOPIC_ID2, 2).
|
-define(PREDEF_TOPIC_ID2, 2).
|
||||||
-define(PREDEF_TOPIC_NAME1, <<"/predefined/topic/name/hello">>).
|
-define(PREDEF_TOPIC_NAME1, <<"/predefined/topic/name/hello">>).
|
||||||
-define(PREDEF_TOPIC_NAME2, <<"/predefined/topic/name/nice">>).
|
-define(PREDEF_TOPIC_NAME2, <<"/predefined/topic/name/nice">>).
|
||||||
-define(ENABLE_QOS3, true).
|
-define(DEFAULT_PREDEFINED_TOPICS, [
|
||||||
|
#{<<"id">> => ?PREDEF_TOPIC_ID1, <<"topic">> => ?PREDEF_TOPIC_NAME1},
|
||||||
|
#{<<"id">> => ?PREDEF_TOPIC_ID2, <<"topic">> => ?PREDEF_TOPIC_NAME2}
|
||||||
|
]).
|
||||||
% FLAG NOT USED
|
% FLAG NOT USED
|
||||||
-define(FNU, 0).
|
-define(FNU, 0).
|
||||||
|
|
||||||
|
@ -143,6 +146,13 @@ restart_mqttsn_with_mountpoint(Mp) ->
|
||||||
Conf#{<<"mountpoint">> => Mp}
|
Conf#{<<"mountpoint">> => Mp}
|
||||||
).
|
).
|
||||||
|
|
||||||
|
restart_mqttsn_with_predefined_topics(Topics) ->
|
||||||
|
Conf = emqx:get_raw_config([gateway, mqttsn]),
|
||||||
|
emqx_gateway_conf:update_gateway(
|
||||||
|
mqttsn,
|
||||||
|
Conf#{<<"predefined">> => Topics}
|
||||||
|
).
|
||||||
|
|
||||||
default_config() ->
|
default_config() ->
|
||||||
?CONF_DEFAULT.
|
?CONF_DEFAULT.
|
||||||
|
|
||||||
|
@ -487,6 +497,35 @@ t_subscribe_case08(_) ->
|
||||||
?assertEqual(<<2, ?SN_DISCONNECT>>, receive_response(Socket)),
|
?assertEqual(<<2, ?SN_DISCONNECT>>, receive_response(Socket)),
|
||||||
gen_udp:close(Socket).
|
gen_udp:close(Socket).
|
||||||
|
|
||||||
|
t_subscribe_predefined_topic(_) ->
|
||||||
|
Dup = 0,
|
||||||
|
QoS = 0,
|
||||||
|
Retain = 0,
|
||||||
|
Will = 0,
|
||||||
|
CleanSession = 0,
|
||||||
|
MsgId = 1,
|
||||||
|
Socket = ensure_connected_client(?CLIENTID),
|
||||||
|
send_subscribe_msg_predefined_topic(Socket, 0, ?PREDEF_TOPIC_ID1, 1),
|
||||||
|
?assertEqual(
|
||||||
|
<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
|
||||||
|
?PREDEF_TOPIC_ID1:16, MsgId:16, ?SN_RC_ACCEPTED>>,
|
||||||
|
receive_response(Socket)
|
||||||
|
),
|
||||||
|
send_disconnect_msg(Socket, undefined),
|
||||||
|
gen_udp:close(Socket),
|
||||||
|
|
||||||
|
restart_mqttsn_with_predefined_topics([]),
|
||||||
|
Socket1 = ensure_connected_client(?CLIENTID),
|
||||||
|
send_subscribe_msg_predefined_topic(Socket1, 0, ?PREDEF_TOPIC_ID1, 1),
|
||||||
|
?assertEqual(
|
||||||
|
<<8, ?SN_SUBACK, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2, 0:16,
|
||||||
|
MsgId:16, ?SN_RC_INVALID_TOPIC_ID>>,
|
||||||
|
receive_response(Socket1)
|
||||||
|
),
|
||||||
|
send_disconnect_msg(Socket1, undefined),
|
||||||
|
restart_mqttsn_with_predefined_topics(?DEFAULT_PREDEFINED_TOPICS),
|
||||||
|
gen_udp:close(Socket1).
|
||||||
|
|
||||||
t_publish_negqos_enabled(_) ->
|
t_publish_negqos_enabled(_) ->
|
||||||
Dup = 0,
|
Dup = 0,
|
||||||
QoS = 0,
|
QoS = 0,
|
||||||
|
@ -513,14 +552,11 @@ t_publish_negqos_enabled(_) ->
|
||||||
Payload1 = <<20, 21, 22, 23>>,
|
Payload1 = <<20, 21, 22, 23>>,
|
||||||
send_publish_msg_normal_topic(Socket, NegQoS, MsgId1, TopicId1, Payload1),
|
send_publish_msg_normal_topic(Socket, NegQoS, MsgId1, TopicId1, Payload1),
|
||||||
timer:sleep(100),
|
timer:sleep(100),
|
||||||
case ?ENABLE_QOS3 of
|
Eexp =
|
||||||
true ->
|
<<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1, ?SN_NORMAL_TOPIC:2,
|
||||||
Eexp =
|
TopicId1:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
|
||||||
<<11, ?SN_PUBLISH, Dup:1, QoS:2, Retain:1, Will:1, CleanSession:1,
|
What = receive_response(Socket),
|
||||||
?SN_NORMAL_TOPIC:2, TopicId1:16, (mid(0)):16, <<20, 21, 22, 23>>/binary>>,
|
?assertEqual(Eexp, What),
|
||||||
What = receive_response(Socket),
|
|
||||||
?assertEqual(Eexp, What)
|
|
||||||
end,
|
|
||||||
|
|
||||||
send_disconnect_msg(Socket, undefined),
|
send_disconnect_msg(Socket, undefined),
|
||||||
?assertEqual(<<2, ?SN_DISCONNECT>>, receive_response(Socket)),
|
?assertEqual(<<2, ?SN_DISCONNECT>>, receive_response(Socket)),
|
||||||
|
@ -2777,3 +2813,9 @@ flush(Msgs) ->
|
||||||
M -> flush([M | Msgs])
|
M -> flush([M | Msgs])
|
||||||
after 0 -> lists:reverse(Msgs)
|
after 0 -> lists:reverse(Msgs)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
ensure_connected_client(ClientId) ->
|
||||||
|
{ok, Socket} = gen_udp:open(0, [binary]),
|
||||||
|
send_connect_msg(Socket, ClientId),
|
||||||
|
?assertEqual(<<3, ?SN_CONNACK, 0>>, receive_response(Socket)),
|
||||||
|
Socket.
|
||||||
|
|
Loading…
Reference in New Issue