From 6bfb794ab733b256e0e80f61a3cbe7958e7505fb Mon Sep 17 00:00:00 2001 From: huangdan Date: Sun, 18 Sep 2016 18:04:50 +0800 Subject: [PATCH] share local ct --- test/emqttd_SUITE.erl | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/test/emqttd_SUITE.erl b/test/emqttd_SUITE.erl index 846ee1955..5444a4f06 100644 --- a/test/emqttd_SUITE.erl +++ b/test/emqttd_SUITE.erl @@ -22,6 +22,8 @@ -include_lib("eunit/include/eunit.hrl"). +-include_lib("common_test/include/ct.hrl"). + -define(CONTENT_TYPE, "application/x-www-form-urlencoded"). all() -> @@ -44,6 +46,8 @@ groups() -> {pubsub, [sequence], [subscribe_unsubscribe, publish, pubsub, + t_local_subscribe, + t_shared_subscribe, 'pubsub#', 'pubsub+']}, {router, [sequence], [router_add_del, @@ -148,6 +152,37 @@ pubsub(_) -> timer:sleep(20), emqttd:unsubscribe(<<"a/b/c">>). +t_local_subscribe(_) -> + emqttd:subscribe("$local/topic0"), + emqttd:subscribe("$local/topic1", <<"x">>), + emqttd:subscribe("$local/topic2", <<"x">>, [{qos, 2}]), + timer:sleep(10), + ?assertEqual([self()], emqttd:subscribers("$local/topic0")), + ?assertEqual([<<"x">>], emqttd:subscribers("$local/topic1")), + ?assertEqual([{<<"$local/topic1">>,<<"x">>,[]},{<<"$local/topic2">>,<<"x">>,[{qos,2}]}], emqttd:subscriptions(<<"x">>)), + + ?assertEqual(ok, emqttd:unsubscribe("$local/topic0")), + ?assertMatch({error, {subscription_not_found, _}}, emqttd:unsubscribe("$local/topic0")), + ?assertEqual(ok, emqttd:unsubscribe("$local/topic1", <<"x">>)), + ?assertEqual(ok, emqttd:unsubscribe("$local/topic2", <<"x">>)), + ?assertEqual([], emqttd:subscribers("topic1")), + ?assertEqual([], emqttd:subscriptions(<<"x">>)). + +t_shared_subscribe(_) -> + emqttd:subscribe("$local/$share/group1/topic1"), + emqttd:subscribe("$share/group2/topic2"), + emqttd:subscribe("$queue/topic3"), + timer:sleep(10), + ?assertEqual([self()], emqttd:subscribers(<<"$local/$share/group1/topic1">>)), + ?assertEqual([{<<"$local/$share/group1/topic1">>, self(), []}, + {<<"$queue/topic3">>, self(), []}, + {<<"$share/group2/topic2">>, self(), []}], + lists:sort(emqttd:subscriptions(self()))), + emqttd:unsubscribe("$local/$share/group1/topic1"), + emqttd:unsubscribe("$share/group2/topic2"), + emqttd:unsubscribe("$queue/topic3"), + ?assertEqual([], lists:sort(emqttd:subscriptions(self()))). + 'pubsub#'(_) -> emqttd:subscribe(<<"a/#">>), timer:sleep(10),