From eb8c8021f09a513040464173cc5933f3ac07b82d Mon Sep 17 00:00:00 2001 From: JianBo He Date: Tue, 13 Apr 2021 19:13:22 +0800 Subject: [PATCH] test(proper): spefic the nodename for checking --- test/props/prop_emqx_rpc.erl | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/test/props/prop_emqx_rpc.erl b/test/props/prop_emqx_rpc.erl index ab876db39..755d27eff 100644 --- a/test/props/prop_emqx_rpc.erl +++ b/test/props/prop_emqx_rpc.erl @@ -19,6 +19,8 @@ -include_lib("proper/include/proper.hrl"). -include_lib("eunit/include/eunit.hrl"). +-define(NODENAME, 'test@127.0.0.1'). + -define(ALL(Vars, Types, Exprs), ?SETUP(fun() -> State = do_setup(), @@ -30,8 +32,9 @@ %%-------------------------------------------------------------------- prop_node() -> - ?ALL(Node, nodename(), + ?ALL(Node0, nodename(), begin + Node = punch(Node0), ?assert(emqx_rpc:cast(Node, erlang, system_time, [])), case emqx_rpc:call(Node, erlang, system_time, []) of {badrpc, _Reason} -> true; @@ -41,8 +44,9 @@ prop_node() -> end). prop_node_with_key() -> - ?ALL({Node, Key}, nodename_with_key(), + ?ALL({Node0, Key}, nodename_with_key(), begin + Node = punch(Node0), ?assert(emqx_rpc:cast(Key, Node, erlang, system_time, [])), case emqx_rpc:call(Key, Node, erlang, system_time, []) of {badrpc, _Reason} -> true; @@ -52,8 +56,9 @@ prop_node_with_key() -> end). prop_nodes() -> - ?ALL(Nodes, nodesname(), + ?ALL(Nodes0, nodesname(), begin + Nodes = punch(Nodes0), case emqx_rpc:multicall(Nodes, erlang, system_time, []) of {badrpc, _Reason} -> true; {RealResults, RealBadNodes} @@ -65,8 +70,9 @@ prop_nodes() -> end). prop_nodes_with_key() -> - ?ALL({Nodes, Key}, nodesname_with_key(), + ?ALL({Nodes0, Key}, nodesname_with_key(), begin + Nodes = punch(Nodes0), case emqx_rpc:multicall(Key, Nodes, erlang, system_time, []) of {badrpc, _Reason} -> true; {RealResults, RealBadNodes} @@ -82,9 +88,10 @@ prop_nodes_with_key() -> %%-------------------------------------------------------------------- do_setup() -> + {ok, _} = net_kernel:start([?NODENAME]), + ok = logger:set_primary_config(#{level => warning}), {ok, _Apps} = application:ensure_all_started(gen_rpc), ok = application:set_env(gen_rpc, call_receive_timeout, 1), - ok = emqx_logger:set_log_level(emergency), ok = meck:new(gen_rpc, [passthrough, no_history]), ok = meck:expect(gen_rpc, multicall, fun(Nodes, Mod, Fun, Args) -> @@ -92,7 +99,7 @@ do_setup() -> end). do_teardown(_) -> - ok = emqx_logger:set_log_level(debug), + ok = net_kernel:stop(), ok = application:stop(gen_rpc), ok = meck:unload(gen_rpc). @@ -100,6 +107,7 @@ do_teardown(_) -> %% Generator %%-------------------------------------------------------------------- + nodename() -> ?LET({NodePrefix, HostName}, {node_prefix(), hostname()}, @@ -130,3 +138,17 @@ text_like() -> hostname() -> oneof(["127.0.0.1", "localhost"]). + +%%-------------------------------------------------------------------- +%% Utils +%%-------------------------------------------------------------------- + +%% After running the props, the `node()` () is only able to return an +%% incorrect node name - `nonode@nohost`, But we want a distributed nodename +%% So, just translate the `nonode@nohost` to ?NODENAME +punch(Nodes) when is_list(Nodes) -> + lists:map(fun punch/1, Nodes); +punch('nonode@nohost') -> + node(); %% Equal to ?NODENAME +punch(GoodBoy) -> + GoodBoy.