Fix testcase
This commit is contained in:
parent
1a1f348aca
commit
369db50ff6
|
@ -74,6 +74,14 @@ receive_disconnect_reasoncode() ->
|
||||||
error("no disconnect packet")
|
error("no disconnect packet")
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
waiting_client_process_exit(C) ->
|
||||||
|
receive
|
||||||
|
{'EXIT', C, Reason} -> Reason;
|
||||||
|
_Oth -> error({got_another_message, _Oth})
|
||||||
|
after
|
||||||
|
1000 -> error({waiting_timeout, C})
|
||||||
|
end.
|
||||||
|
|
||||||
clean_retained(Topic) ->
|
clean_retained(Topic) ->
|
||||||
{ok, Clean} = emqtt:start_link([{clean_start, true}]),
|
{ok, Clean} = emqtt:start_link([{clean_start, true}]),
|
||||||
{ok, _} = emqtt:connect(Clean),
|
{ok, _} = emqtt:connect(Clean),
|
||||||
|
@ -102,6 +110,7 @@ t_basic_test(_) ->
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
t_connect_clean_start(_) ->
|
t_connect_clean_start(_) ->
|
||||||
|
process_flag(trap_exit, true),
|
||||||
{ok, Client1} = emqtt:start_link([{clientid, <<"t_connect_clean_start">>},{proto_ver, v5},{clean_start, true}]),
|
{ok, Client1} = emqtt:start_link([{clientid, <<"t_connect_clean_start">>},{proto_ver, v5},{clean_start, true}]),
|
||||||
{ok, _} = emqtt:connect(Client1),
|
{ok, _} = emqtt:connect(Client1),
|
||||||
?assertEqual(0, client_info(session_present, Client1)), %% [MQTT-3.1.2-4]
|
?assertEqual(0, client_info(session_present, Client1)), %% [MQTT-3.1.2-4]
|
||||||
|
@ -109,11 +118,14 @@ t_connect_clean_start(_) ->
|
||||||
{ok, Client2} = emqtt:start_link([{clientid, <<"t_connect_clean_start">>},{proto_ver, v5},{clean_start, false}]),
|
{ok, Client2} = emqtt:start_link([{clientid, <<"t_connect_clean_start">>},{proto_ver, v5},{clean_start, false}]),
|
||||||
{ok, _} = emqtt:connect(Client2),
|
{ok, _} = emqtt:connect(Client2),
|
||||||
?assertEqual(1, client_info(session_present, Client2)), %% [MQTT-3.1.2-5]
|
?assertEqual(1, client_info(session_present, Client2)), %% [MQTT-3.1.2-5]
|
||||||
|
?assertEqual(142, receive_disconnect_reasoncode()),
|
||||||
|
|
||||||
ok = emqtt:disconnect(Client2),
|
ok = emqtt:disconnect(Client2),
|
||||||
{ok, Client3} = emqtt:start_link([{clientid, <<"new_client">>},{proto_ver, v5},{clean_start, false}]),
|
{ok, Client3} = emqtt:start_link([{clientid, <<"new_client">>},{proto_ver, v5},{clean_start, false}]),
|
||||||
{ok, _} = emqtt:connect(Client3),
|
{ok, _} = emqtt:connect(Client3),
|
||||||
?assertEqual(0, client_info(session_present, Client3)), %% [MQTT-3.1.2-6]
|
?assertEqual(0, client_info(session_present, Client3)), %% [MQTT-3.1.2-6]
|
||||||
ok = emqtt:disconnect(Client3).
|
ok = emqtt:disconnect(Client3),
|
||||||
|
process_flag(trap_exit, false).
|
||||||
|
|
||||||
t_connect_will_message(_) ->
|
t_connect_will_message(_) ->
|
||||||
Topic = nth(1, ?TOPICS),
|
Topic = nth(1, ?TOPICS),
|
||||||
|
@ -396,7 +408,7 @@ t_connack_max_qos_allowed(_) ->
|
||||||
|
|
||||||
{ok, Client1} = emqtt:start_link([{proto_ver, v5}]),
|
{ok, Client1} = emqtt:start_link([{proto_ver, v5}]),
|
||||||
{ok, Connack1} = emqtt:connect(Client1),
|
{ok, Connack1} = emqtt:connect(Client1),
|
||||||
?assertEqual(0, maps:get('Maximum-QoS',Connack1)), %% [MQTT-3.2.2-9]
|
?assertEqual(0, maps:get('Maximum-QoS', Connack1)), %% [MQTT-3.2.2-9]
|
||||||
|
|
||||||
{ok, _, [0]} = emqtt:subscribe(Client1, Topic, 0), %% [MQTT-3.2.2-10]
|
{ok, _, [0]} = emqtt:subscribe(Client1, Topic, 0), %% [MQTT-3.2.2-10]
|
||||||
{ok, _, [1]} = emqtt:subscribe(Client1, Topic, 1), %% [MQTT-3.2.2-10]
|
{ok, _, [1]} = emqtt:subscribe(Client1, Topic, 1), %% [MQTT-3.2.2-10]
|
||||||
|
@ -404,6 +416,7 @@ t_connack_max_qos_allowed(_) ->
|
||||||
|
|
||||||
{ok, _} = emqtt:publish(Client1, Topic, <<"Unsupported Qos 1">>, qos1),
|
{ok, _} = emqtt:publish(Client1, Topic, <<"Unsupported Qos 1">>, qos1),
|
||||||
?assertEqual(155, receive_disconnect_reasoncode()), %% [MQTT-3.2.2-11]
|
?assertEqual(155, receive_disconnect_reasoncode()), %% [MQTT-3.2.2-11]
|
||||||
|
waiting_client_process_exit(Client1),
|
||||||
|
|
||||||
{ok, Client2} = emqtt:start_link([
|
{ok, Client2} = emqtt:start_link([
|
||||||
{proto_ver, v5},
|
{proto_ver, v5},
|
||||||
|
@ -413,7 +426,8 @@ t_connack_max_qos_allowed(_) ->
|
||||||
{will_qos, 2}
|
{will_qos, 2}
|
||||||
]),
|
]),
|
||||||
{error, Connack2} = emqtt:connect(Client2),
|
{error, Connack2} = emqtt:connect(Client2),
|
||||||
?assertMatch({qos_not_supported,_ }, Connack2), %% [MQTT-3.2.2-12]
|
?assertMatch({qos_not_supported, _}, Connack2), %% [MQTT-3.2.2-12]
|
||||||
|
waiting_client_process_exit(Client2),
|
||||||
|
|
||||||
%% max_qos_allowed = 1
|
%% max_qos_allowed = 1
|
||||||
emqx_zone:set_env(external, max_qos_allowed, 1),
|
emqx_zone:set_env(external, max_qos_allowed, 1),
|
||||||
|
@ -422,7 +436,7 @@ t_connack_max_qos_allowed(_) ->
|
||||||
|
|
||||||
{ok, Client3} = emqtt:start_link([{proto_ver, v5}]),
|
{ok, Client3} = emqtt:start_link([{proto_ver, v5}]),
|
||||||
{ok, Connack3} = emqtt:connect(Client3),
|
{ok, Connack3} = emqtt:connect(Client3),
|
||||||
?assertEqual(1, maps:get('Maximum-QoS',Connack3)), %% [MQTT-3.2.2-9]
|
?assertEqual(1, maps:get('Maximum-QoS', Connack3)), %% [MQTT-3.2.2-9]
|
||||||
|
|
||||||
{ok, _, [0]} = emqtt:subscribe(Client3, Topic, 0), %% [MQTT-3.2.2-10]
|
{ok, _, [0]} = emqtt:subscribe(Client3, Topic, 0), %% [MQTT-3.2.2-10]
|
||||||
{ok, _, [1]} = emqtt:subscribe(Client3, Topic, 1), %% [MQTT-3.2.2-10]
|
{ok, _, [1]} = emqtt:subscribe(Client3, Topic, 1), %% [MQTT-3.2.2-10]
|
||||||
|
@ -430,6 +444,7 @@ t_connack_max_qos_allowed(_) ->
|
||||||
|
|
||||||
{ok, _} = emqtt:publish(Client3, Topic, <<"Unsupported Qos 2">>, qos2),
|
{ok, _} = emqtt:publish(Client3, Topic, <<"Unsupported Qos 2">>, qos2),
|
||||||
?assertEqual(155, receive_disconnect_reasoncode()), %% [MQTT-3.2.2-11]
|
?assertEqual(155, receive_disconnect_reasoncode()), %% [MQTT-3.2.2-11]
|
||||||
|
waiting_client_process_exit(Client3),
|
||||||
|
|
||||||
{ok, Client4} = emqtt:start_link([
|
{ok, Client4} = emqtt:start_link([
|
||||||
{proto_ver, v5},
|
{proto_ver, v5},
|
||||||
|
@ -439,11 +454,8 @@ t_connack_max_qos_allowed(_) ->
|
||||||
{will_qos, 2}
|
{will_qos, 2}
|
||||||
]),
|
]),
|
||||||
{error, Connack4} = emqtt:connect(Client4),
|
{error, Connack4} = emqtt:connect(Client4),
|
||||||
?assertMatch({qos_not_supported,_ }, Connack4), %% [MQTT-3.2.2-12]
|
?assertMatch({qos_not_supported, _}, Connack4), %% [MQTT-3.2.2-12]
|
||||||
receive
|
waiting_client_process_exit(Client4),
|
||||||
{'EXIT', _, {shutdown,qos_not_supported}} -> ok
|
|
||||||
after 100 -> error("t_connack_max_qos_allowed")
|
|
||||||
end,
|
|
||||||
|
|
||||||
%% max_qos_allowed = 2
|
%% max_qos_allowed = 2
|
||||||
emqx_zone:set_env(external, max_qos_allowed, 2),
|
emqx_zone:set_env(external, max_qos_allowed, 2),
|
||||||
|
@ -452,12 +464,10 @@ t_connack_max_qos_allowed(_) ->
|
||||||
|
|
||||||
{ok, Client5} = emqtt:start_link([{proto_ver, v5}]),
|
{ok, Client5} = emqtt:start_link([{proto_ver, v5}]),
|
||||||
{ok, Connack5} = emqtt:connect(Client5),
|
{ok, Connack5} = emqtt:connect(Client5),
|
||||||
?assertEqual(2, maps:get('Maximum-QoS',Connack5)), %% [MQTT-3.2.2-9]
|
?assertEqual(2, maps:get('Maximum-QoS', Connack5)), %% [MQTT-3.2.2-9]
|
||||||
ok = emqtt:disconnect(Client5),
|
ok = emqtt:disconnect(Client5),
|
||||||
|
waiting_client_process_exit(Client5),
|
||||||
|
|
||||||
receive {'EXIT', _, _} -> ok
|
|
||||||
after 100 -> ok
|
|
||||||
end,
|
|
||||||
process_flag(trap_exit, false).
|
process_flag(trap_exit, false).
|
||||||
|
|
||||||
t_connack_assigned_clienid(_) ->
|
t_connack_assigned_clienid(_) ->
|
||||||
|
@ -499,10 +509,8 @@ t_publish_wildtopic(_) ->
|
||||||
{ok, _} = emqtt:connect(Client1),
|
{ok, _} = emqtt:connect(Client1),
|
||||||
ok = emqtt:publish(Client1, Topic, <<"error topic">>),
|
ok = emqtt:publish(Client1, Topic, <<"error topic">>),
|
||||||
?assertEqual(144, receive_disconnect_reasoncode()),
|
?assertEqual(144, receive_disconnect_reasoncode()),
|
||||||
|
waiting_client_process_exit(Client1),
|
||||||
|
|
||||||
receive {'EXIT', _, _} -> ok
|
|
||||||
after 100 -> ok
|
|
||||||
end,
|
|
||||||
process_flag(trap_exit, false).
|
process_flag(trap_exit, false).
|
||||||
|
|
||||||
t_publish_payload_format_indicator(_) ->
|
t_publish_payload_format_indicator(_) ->
|
||||||
|
@ -525,6 +533,7 @@ t_publish_topic_alias(_) ->
|
||||||
{ok, _} = emqtt:connect(Client1),
|
{ok, _} = emqtt:connect(Client1),
|
||||||
ok = emqtt:publish(Client1, Topic, #{'Topic-Alias' => 0}, <<"Topic-Alias">>, [{qos, ?QOS_0}]),
|
ok = emqtt:publish(Client1, Topic, #{'Topic-Alias' => 0}, <<"Topic-Alias">>, [{qos, ?QOS_0}]),
|
||||||
?assertEqual(148, receive_disconnect_reasoncode()), %% [MQTT-3.3.2-8]
|
?assertEqual(148, receive_disconnect_reasoncode()), %% [MQTT-3.3.2-8]
|
||||||
|
waiting_client_process_exit(Client1),
|
||||||
|
|
||||||
{ok, Client2} = emqtt:start_link([{proto_ver, v5}]),
|
{ok, Client2} = emqtt:start_link([{proto_ver, v5}]),
|
||||||
{ok, _} = emqtt:connect(Client2),
|
{ok, _} = emqtt:connect(Client2),
|
||||||
|
@ -533,10 +542,8 @@ t_publish_topic_alias(_) ->
|
||||||
ok = emqtt:publish(Client2, <<"">>, #{'Topic-Alias' => 233}, <<"Topic-Alias">>, [{qos, ?QOS_0}]),
|
ok = emqtt:publish(Client2, <<"">>, #{'Topic-Alias' => 233}, <<"Topic-Alias">>, [{qos, ?QOS_0}]),
|
||||||
?assertEqual(2, length(receive_messages(2))), %% [MQTT-3.3.2-12]
|
?assertEqual(2, length(receive_messages(2))), %% [MQTT-3.3.2-12]
|
||||||
ok = emqtt:disconnect(Client2),
|
ok = emqtt:disconnect(Client2),
|
||||||
|
waiting_client_process_exit(Client2),
|
||||||
|
|
||||||
receive {'EXIT', _, _} -> ok
|
|
||||||
after 100 -> ok
|
|
||||||
end,
|
|
||||||
process_flag(trap_exit, false).
|
process_flag(trap_exit, false).
|
||||||
|
|
||||||
t_publish_response_topic(_) ->
|
t_publish_response_topic(_) ->
|
||||||
|
@ -547,10 +554,8 @@ t_publish_response_topic(_) ->
|
||||||
{ok, _} = emqtt:connect(Client1),
|
{ok, _} = emqtt:connect(Client1),
|
||||||
ok = emqtt:publish(Client1, Topic, #{'Response-Topic' => nth(1, ?WILD_TOPICS)}, <<"Response-Topic">>, [{qos, ?QOS_0}]),
|
ok = emqtt:publish(Client1, Topic, #{'Response-Topic' => nth(1, ?WILD_TOPICS)}, <<"Response-Topic">>, [{qos, ?QOS_0}]),
|
||||||
?assertEqual(130, receive_disconnect_reasoncode()), %% [MQTT-3.3.2-14]
|
?assertEqual(130, receive_disconnect_reasoncode()), %% [MQTT-3.3.2-14]
|
||||||
|
waiting_client_process_exit(Client1),
|
||||||
|
|
||||||
receive {'EXIT', _, _} -> ok
|
|
||||||
after 100 -> ok
|
|
||||||
end,
|
|
||||||
process_flag(trap_exit, false).
|
process_flag(trap_exit, false).
|
||||||
|
|
||||||
t_publish_properties(_) ->
|
t_publish_properties(_) ->
|
||||||
|
|
Loading…
Reference in New Issue