Przeglądaj źródła

Merge pull request #6573 from k32/fix-retainer-topic-printing

fix(retainer): Fix topic printing
k32 4 lat temu
rodzic
commit
2240c3e790

+ 1 - 1
apps/emqx_retainer/src/emqx_retainer.app.src

@@ -1,6 +1,6 @@
 {application, emqx_retainer,
  [{description, "EMQ X Retainer"},
-  {vsn, "4.3.2"}, % strict semver, bump manually!
+  {vsn, "4.3.3"}, % strict semver, bump manually!
   {modules, []},
   {registered, [emqx_retainer_sup]},
   {applications, [kernel,stdlib]},

+ 13 - 14
apps/emqx_retainer/src/emqx_retainer.appup.src

@@ -1,15 +1,14 @@
-%% -*-: erlang -*-
+%% -*- mode: erlang -*-
 {VSN,
-  [
-    {<<"4\\.3\\.[0-1]+">>, [
-      {load_module, emqx_retainer, brutal_purge, soft_purge, []}
-    ]},
-    {<<".*">>, []}
-  ],
-  [
-    {<<"4\\.3\\.[0-1]+">>, [
-      {load_module, emqx_retainer, brutal_purge, soft_purge, []}
-    ]},
-    {<<".*">>, []}
-  ]
-}.
+  [{"4.3.2",
+    [{load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]}]},
+   {<<"4\\.3\\.[0-1]">>,
+    [{load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]},
+     {load_module,emqx_retainer,brutal_purge,soft_purge,[]}]},
+   {<<".*">>,[]}],
+  [{"4.3.2",
+    [{load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]}]},
+   {<<"4\\.3\\.[0-1]">>,
+    [{load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]},
+     {load_module,emqx_retainer,brutal_purge,soft_purge,[]}]},
+   {<<".*">>,[]}]}.

+ 3 - 2
apps/emqx_retainer/src/emqx_retainer_cli.erl

@@ -33,7 +33,9 @@ cmd(["info"]) ->
 cmd(["topics"]) ->
     case mnesia:dirty_all_keys(?TAB) of
         []     -> ignore;
-        Topics -> lists:foreach(fun(Topic) -> emqx_ctl:print("~s~n", [Topic]) end, Topics)
+        Topics -> lists:foreach(fun(Topic) ->
+                                        emqx_ctl:print("~s~n", [emqx_topic:join(Topic)])
+                                end, Topics)
     end;
 
 cmd(["clean"]) ->
@@ -55,4 +57,3 @@ cmd(_) ->
 
 unload() ->
     emqx_ctl:unregister_command(retainer).
-

+ 19 - 5
apps/emqx_retainer/test/emqx_retainer_cli_SUITE.erl

@@ -23,18 +23,32 @@
 
 all() -> emqx_ct:all(?MODULE).
 
-init_per_testcase(_TestCase, Config) ->
+init_per_suite(Config) ->
+    emqx_ct_helpers:start_apps([emqx_retainer]),
     Config.
 
-end_per_testcase(_TestCase, Config) ->
+end_per_suite(_Config) ->
+    emqx_ct_helpers:stop_apps([emqx_retainer]).
+
+init_per_testcase(TestCase, Config) ->
     Config.
 
-% t_cmd(_) ->
-%     error('TODO').
+end_per_testcase(_TestCase, Config) ->
+    emqx_retainer:clean(<<"#">>).
+
+t_cmd(_) ->
+    {ok, C1} = emqtt:start_link([{clean_start, true}, {proto_ver, v5}]),
+    {ok, _} = emqtt:connect(C1),
+    emqtt:publish(C1, <<"/retained">>, <<"this is a retained message">>, [{qos, 0}, {retain, true}]),
+    emqtt:publish(C1, <<"/retained/2">>, <<"this is a retained message">>, [{qos, 0}, {retain, true}]),
+    timer:sleep(1000),
+    ?assertMatch(ok, emqx_retainer_cli:cmd(["topics"])),
+    ?assertMatch(ok, emqx_retainer_cli:cmd(["info"])),
+    ?assertMatch(ok, emqx_retainer_cli:cmd(["clean", "retained"])),
+    ?assertMatch(ok, emqx_retainer_cli:cmd(["clean"])).
 
 % t_unload(_) ->
 %     error('TODO').
 
 % t_load(_) ->
 %     error('TODO').
-