diff --git a/apps/emqx_auth_mnesia/test/emqx_acl_mnesia_SUITE.erl b/apps/emqx_auth_mnesia/test/emqx_acl_mnesia_SUITE.erl index eb1ea74f3..81b0ac890 100644 --- a/apps/emqx_auth_mnesia/test/emqx_acl_mnesia_SUITE.erl +++ b/apps/emqx_auth_mnesia/test/emqx_acl_mnesia_SUITE.erl @@ -302,7 +302,7 @@ t_start_stop_supervised(_Config) -> t_acl_cli(_Config) -> meck:new(emqx_ctl, [non_strict, passthrough]), - meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg) end), + meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg, []) end), meck:expect(emqx_ctl, print, fun(Msg, Arg) -> emqx_ctl:format(Msg, Arg) end), meck:expect(emqx_ctl, usage, fun(Usages) -> emqx_ctl:format_usage(Usages) end), meck:expect(emqx_ctl, usage, fun(Cmd, Descr) -> emqx_ctl:format_usage(Cmd, Descr) end), diff --git a/apps/emqx_management/test/emqx_mgmt_SUITE.erl b/apps/emqx_management/test/emqx_mgmt_SUITE.erl index 77d46b744..1b2d05a00 100644 --- a/apps/emqx_management/test/emqx_mgmt_SUITE.erl +++ b/apps/emqx_management/test/emqx_mgmt_SUITE.erl @@ -158,9 +158,9 @@ t_clients_cmd(_) -> timer:sleep(300), emqx_mgmt_cli:clients(["list"]), ?assertMatch({match, _}, re:run(emqx_mgmt_cli:clients(["show", "client12"]), "client12")), - ?assertEqual("ok~n", emqx_mgmt_cli:clients(["kick", "client12"])), + ?assertEqual("ok\n", emqx_mgmt_cli:clients(["kick", "client12"])), timer:sleep(500), - ?assertEqual("ok~n", emqx_mgmt_cli:clients(["kick", "client12"])), + ?assertEqual("ok\n", emqx_mgmt_cli:clients(["kick", "client12"])), receive {'EXIT', T, _} -> ok @@ -272,8 +272,8 @@ t_subscriptions_cmd(_) -> timer:sleep(300), [?assertMatch({match, _} , re:run(Result, "b/b/c")) || Result <- emqx_mgmt_cli:subscriptions(["show", <<"client">>])], - ?assertEqual(emqx_mgmt_cli:subscriptions(["add", "client", "b/b/c", "0"]), "ok~n"), - ?assertEqual(emqx_mgmt_cli:subscriptions(["del", "client", "b/b/c"]), "ok~n"), + ?assertEqual(emqx_mgmt_cli:subscriptions(["add", "client", "b/b/c", "0"]), "ok\n"), + ?assertEqual(emqx_mgmt_cli:subscriptions(["del", "client", "b/b/c"]), "ok\n"), unmock_print(). t_listeners_cmd_old(_) -> @@ -325,7 +325,7 @@ t_plugins_cmd(_) -> ), ?assertEqual( emqx_mgmt_cli:plugins(["unload", "emqx_management"]), - "Plugin emqx_management can not be unloaded.~n" + "Plugin emqx_management can not be unloaded.\n" ), unmock_print(). @@ -359,7 +359,7 @@ t_cli(_) -> mock_print() -> catch meck:unload(emqx_ctl), meck:new(emqx_ctl, [non_strict, passthrough]), - meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg) end), + meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg, []) end), meck:expect(emqx_ctl, print, fun(Msg, Arg) -> emqx_ctl:format(Msg, Arg) end), meck:expect(emqx_ctl, usage, fun(Usages) -> emqx_ctl:format_usage(Usages) end), meck:expect(emqx_ctl, usage, fun(Cmd, Descr) -> emqx_ctl:format_usage(Cmd, Descr) end). diff --git a/apps/emqx_recon/test/emqx_recon_SUITE.erl b/apps/emqx_recon/test/emqx_recon_SUITE.erl index 2abf8f709..22c83eca8 100644 --- a/apps/emqx_recon/test/emqx_recon_SUITE.erl +++ b/apps/emqx_recon/test/emqx_recon_SUITE.erl @@ -105,10 +105,9 @@ cli_usage(_) -> mock_print() -> catch meck:unload(emqx_ctl), meck:new(emqx_ctl, [non_strict, passthrough]), - meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg) end), + meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg, []) end), meck:expect(emqx_ctl, print, fun(Msg, Arg) -> emqx_ctl:format(Msg, Arg) end), meck:expect(emqx_ctl, usage, fun(Usages) -> emqx_ctl:format_usage(Usages) end). unmock_print() -> meck:unload(). - diff --git a/apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl index f430c3d4e..c2d7d10a2 100644 --- a/apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl +++ b/apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl @@ -538,7 +538,7 @@ t_rules_cli(_Config) -> ?assertMatch({match, _}, re:run(RUpdate, "updated")), RDelete = emqx_rule_engine_cli:rules(["delete", RuleId]), - ?assertEqual("ok~n", RDelete), + ?assertEqual("ok\n", RDelete), %ct:pal("RDelete : ~p", [RDelete]), %ct:pal("table action params after deleted: ~p", [ets:tab2list(emqx_action_instance_params)]), @@ -578,7 +578,7 @@ t_resources_cli(_Config) -> %ct:pal("RShow : ~p", [RShow]), RDelete = emqx_rule_engine_cli:resources(["delete", ResId]), - ?assertEqual("ok~n", RDelete), + ?assertEqual("ok\n", RDelete), RShow2 = emqx_rule_engine_cli:resources(["show", ResId]), ?assertMatch({match, _}, re:run(RShow2, "Cannot found")), @@ -1387,7 +1387,7 @@ t_metrics1(_Config) -> ?assertEqual(0, emqx_rule_metrics:get_rules_passed(RuleId)), ?assertEqual(0, emqx_rule_metrics:get_rules_failed(RuleId)), ?assertEqual(0, emqx_rule_metrics:get_rules_exception(RuleId)), - ?assertEqual(0, emqx_rule_metrics:get_rules_no_result(RuleId)), + ?assertEqual(0, emqx_rule_metrics:get_rules_no_result(RuleId)), {ok, Client} = emqtt:start_link([{username, <<"emqx">>}]), {ok, _} = emqtt:connect(Client), ct:sleep(200), @@ -2711,7 +2711,7 @@ set_special_configs(_App) -> mock_print() -> catch meck:unload(emqx_ctl), meck:new(emqx_ctl, [non_strict, passthrough]), - meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg) end), + meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg, []) end), meck:expect(emqx_ctl, print, fun(Msg, Arg) -> emqx_ctl:format(Msg, Arg) end), meck:expect(emqx_ctl, usage, fun(Usages) -> emqx_ctl:format_usage(Usages) end), meck:expect(emqx_ctl, usage, fun(Cmd, Descr) -> emqx_ctl:format_usage(Cmd, Descr) end). @@ -2763,4 +2763,3 @@ t_clear_resource(_) -> t_clear_action(_) -> error('TODO'). - diff --git a/lib-ce/emqx_modules/test/emqx_modules_SUITE.erl b/lib-ce/emqx_modules/test/emqx_modules_SUITE.erl index dc76e8eb7..175b24bba 100644 --- a/lib-ce/emqx_modules/test/emqx_modules_SUITE.erl +++ b/lib-ce/emqx_modules/test/emqx_modules_SUITE.erl @@ -143,7 +143,7 @@ t_join_cluster(_) -> mock_print() -> catch meck:unload(emqx_ctl), meck:new(emqx_ctl, [non_strict, passthrough]), - meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg) end), + meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg, []) end), meck:expect(emqx_ctl, print, fun(Msg, Arg) -> emqx_ctl:format(Msg, Arg) end), meck:expect(emqx_ctl, usage, fun(Usages) -> emqx_ctl:format_usage(Usages) end), meck:expect(emqx_ctl, usage, fun(Cmd, Descr) -> emqx_ctl:format_usage(Cmd, Descr) end). diff --git a/src/emqx_ctl.erl b/src/emqx_ctl.erl index 79616e631..400821537 100644 --- a/src/emqx_ctl.erl +++ b/src/emqx_ctl.erl @@ -43,8 +43,7 @@ ]). %% Exports mainly for test cases --export([ format/1 - , format/2 +-export([ format/2 , format_usage/1 , format_usage/2 ]). @@ -137,7 +136,7 @@ help() -> -spec(print(io:format()) -> ok). print(Msg) -> - io:format("~s", [format(Msg)]). + io:format("~s", [format(Msg, [])]). -spec(print(io:format(), [term()]) -> ok). print(Format, Args) -> @@ -151,10 +150,6 @@ usage(UsageList) -> usage(CmdParams, Desc) -> io:format(format_usage(CmdParams, Desc)). --spec(format(io:format()) -> string()). -format(Msg) -> - lists:flatten(io_lib:format("~s", [Msg])). - -spec(format(io:format(), [term()]) -> string()). format(Format, Args) -> lists:flatten(io_lib:format(Format, Args)). diff --git a/test/emqx_ctl_SUITE.erl b/test/emqx_ctl_SUITE.erl index 8466cf7b0..4832bacff 100644 --- a/test/emqx_ctl_SUITE.erl +++ b/test/emqx_ctl_SUITE.erl @@ -70,7 +70,7 @@ t_print(_) -> ok = emqx_ctl:print("~s", [<<"~!@#$%^&*()">>]), % - check the output of the usage mock_print(), - ?assertEqual("help~n", emqx_ctl:print("help~n")), + ?assertEqual("help\n", emqx_ctl:print("help~n")), ?assertEqual("help", emqx_ctl:print("~s", [help])), ?assertEqual("~!@#$%^&*()", emqx_ctl:print("~s", [<<"~!@#$%^&*()">>])), unmock_print(). @@ -110,7 +110,7 @@ mock_print() -> %% proxy usage/1,2 and print/1,2 to format_xx/1,2 funcs catch meck:unload(emqx_ctl), meck:new(emqx_ctl, [non_strict, passthrough]), - meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg) end), + meck:expect(emqx_ctl, print, fun(Arg) -> emqx_ctl:format(Arg, []) end), meck:expect(emqx_ctl, print, fun(Msg, Arg) -> emqx_ctl:format(Msg, Arg) end), meck:expect(emqx_ctl, usage, fun(Usages) -> emqx_ctl:format_usage(Usages) end), meck:expect(emqx_ctl, usage, fun(CmdParams, CmdDescr) ->