From a4d0a9266a12593e833ff3625c84f900e8c55db5 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Thu, 28 Apr 2022 18:32:52 +0200 Subject: [PATCH 1/2] test: fix flaky test emqx_ctl_SUITE.erl --- apps/emqx/src/emqx_ctl.erl | 8 +++++++- apps/emqx/test/emqx_ctl_SUITE.erl | 9 +++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/apps/emqx/src/emqx_ctl.erl b/apps/emqx/src/emqx_ctl.erl index 448c47d74..26d93fa89 100644 --- a/apps/emqx/src/emqx_ctl.erl +++ b/apps/emqx/src/emqx_ctl.erl @@ -75,7 +75,13 @@ start_link() -> gen_server:start_link({local, ?SERVER}, ?MODULE, [], []). -spec stop() -> ok. -stop() -> gen_server:stop(?SERVER). +stop() -> + try + gen_server:stop(?SERVER) + catch + exit:R when R =:= noproc orelse R =:= timeout -> + ok + end. -spec register_command(cmd(), {module(), atom()}) -> ok. register_command(Cmd, MF) when is_atom(Cmd) -> diff --git a/apps/emqx/test/emqx_ctl_SUITE.erl b/apps/emqx/test/emqx_ctl_SUITE.erl index 605466e79..9338576e4 100644 --- a/apps/emqx/test/emqx_ctl_SUITE.erl +++ b/apps/emqx/test/emqx_ctl_SUITE.erl @@ -107,9 +107,14 @@ cmd2_fun(["arg1", "arg2"]) -> ok; cmd2_fun(["arg1", "badarg"]) -> error(badarg). with_ctl_server(Fun) -> + ok = emqx_ctl:stop(), {ok, Pid} = emqx_ctl:start_link(), - _ = Fun(Pid), - ok = emqx_ctl:stop(). + try + _ = Fun(Pid), + ok + after + ok = emqx_ctl:stop() + end. mock_print() -> %% proxy usage/1,2 and print/1,2 to format_xx/1,2 funcs From a0a1a2b9724589af2d60d470821ef6203563d559 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Thu, 28 Apr 2022 19:11:02 +0200 Subject: [PATCH 2/2] style: make elvis happy --- apps/emqx/src/emqx_ctl.erl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/emqx/src/emqx_ctl.erl b/apps/emqx/src/emqx_ctl.erl index 26d93fa89..8e8477f7c 100644 --- a/apps/emqx/src/emqx_ctl.erl +++ b/apps/emqx/src/emqx_ctl.erl @@ -111,8 +111,9 @@ run_command(help, []) -> run_command(Cmd, Args) when is_atom(Cmd) -> case lookup_command(Cmd) of [{Mod, Fun}] -> - try Mod:Fun(Args) of - _ -> ok + try + _ = apply(Mod, Fun, [Args]), + ok catch _:Reason:Stacktrace -> ?SLOG(error, #{ @@ -147,7 +148,7 @@ help() -> lists:foreach( fun({_, {Mod, Cmd}, _}) -> print("~110..-s~n", [""]), - Mod:Cmd(usage) + apply(Mod, Cmd, [usage]) end, Cmds )