test(proper): spefic the nodename for checking
This commit is contained in:
parent
9ead5c8cfd
commit
eb8c8021f0
|
@ -19,6 +19,8 @@
|
||||||
-include_lib("proper/include/proper.hrl").
|
-include_lib("proper/include/proper.hrl").
|
||||||
-include_lib("eunit/include/eunit.hrl").
|
-include_lib("eunit/include/eunit.hrl").
|
||||||
|
|
||||||
|
-define(NODENAME, 'test@127.0.0.1').
|
||||||
|
|
||||||
-define(ALL(Vars, Types, Exprs),
|
-define(ALL(Vars, Types, Exprs),
|
||||||
?SETUP(fun() ->
|
?SETUP(fun() ->
|
||||||
State = do_setup(),
|
State = do_setup(),
|
||||||
|
@ -30,8 +32,9 @@
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
prop_node() ->
|
prop_node() ->
|
||||||
?ALL(Node, nodename(),
|
?ALL(Node0, nodename(),
|
||||||
begin
|
begin
|
||||||
|
Node = punch(Node0),
|
||||||
?assert(emqx_rpc:cast(Node, erlang, system_time, [])),
|
?assert(emqx_rpc:cast(Node, erlang, system_time, [])),
|
||||||
case emqx_rpc:call(Node, erlang, system_time, []) of
|
case emqx_rpc:call(Node, erlang, system_time, []) of
|
||||||
{badrpc, _Reason} -> true;
|
{badrpc, _Reason} -> true;
|
||||||
|
@ -41,8 +44,9 @@ prop_node() ->
|
||||||
end).
|
end).
|
||||||
|
|
||||||
prop_node_with_key() ->
|
prop_node_with_key() ->
|
||||||
?ALL({Node, Key}, nodename_with_key(),
|
?ALL({Node0, Key}, nodename_with_key(),
|
||||||
begin
|
begin
|
||||||
|
Node = punch(Node0),
|
||||||
?assert(emqx_rpc:cast(Key, Node, erlang, system_time, [])),
|
?assert(emqx_rpc:cast(Key, Node, erlang, system_time, [])),
|
||||||
case emqx_rpc:call(Key, Node, erlang, system_time, []) of
|
case emqx_rpc:call(Key, Node, erlang, system_time, []) of
|
||||||
{badrpc, _Reason} -> true;
|
{badrpc, _Reason} -> true;
|
||||||
|
@ -52,8 +56,9 @@ prop_node_with_key() ->
|
||||||
end).
|
end).
|
||||||
|
|
||||||
prop_nodes() ->
|
prop_nodes() ->
|
||||||
?ALL(Nodes, nodesname(),
|
?ALL(Nodes0, nodesname(),
|
||||||
begin
|
begin
|
||||||
|
Nodes = punch(Nodes0),
|
||||||
case emqx_rpc:multicall(Nodes, erlang, system_time, []) of
|
case emqx_rpc:multicall(Nodes, erlang, system_time, []) of
|
||||||
{badrpc, _Reason} -> true;
|
{badrpc, _Reason} -> true;
|
||||||
{RealResults, RealBadNodes}
|
{RealResults, RealBadNodes}
|
||||||
|
@ -65,8 +70,9 @@ prop_nodes() ->
|
||||||
end).
|
end).
|
||||||
|
|
||||||
prop_nodes_with_key() ->
|
prop_nodes_with_key() ->
|
||||||
?ALL({Nodes, Key}, nodesname_with_key(),
|
?ALL({Nodes0, Key}, nodesname_with_key(),
|
||||||
begin
|
begin
|
||||||
|
Nodes = punch(Nodes0),
|
||||||
case emqx_rpc:multicall(Key, Nodes, erlang, system_time, []) of
|
case emqx_rpc:multicall(Key, Nodes, erlang, system_time, []) of
|
||||||
{badrpc, _Reason} -> true;
|
{badrpc, _Reason} -> true;
|
||||||
{RealResults, RealBadNodes}
|
{RealResults, RealBadNodes}
|
||||||
|
@ -82,9 +88,10 @@ prop_nodes_with_key() ->
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
do_setup() ->
|
do_setup() ->
|
||||||
|
{ok, _} = net_kernel:start([?NODENAME]),
|
||||||
|
ok = logger:set_primary_config(#{level => warning}),
|
||||||
{ok, _Apps} = application:ensure_all_started(gen_rpc),
|
{ok, _Apps} = application:ensure_all_started(gen_rpc),
|
||||||
ok = application:set_env(gen_rpc, call_receive_timeout, 1),
|
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:new(gen_rpc, [passthrough, no_history]),
|
||||||
ok = meck:expect(gen_rpc, multicall,
|
ok = meck:expect(gen_rpc, multicall,
|
||||||
fun(Nodes, Mod, Fun, Args) ->
|
fun(Nodes, Mod, Fun, Args) ->
|
||||||
|
@ -92,7 +99,7 @@ do_setup() ->
|
||||||
end).
|
end).
|
||||||
|
|
||||||
do_teardown(_) ->
|
do_teardown(_) ->
|
||||||
ok = emqx_logger:set_log_level(debug),
|
ok = net_kernel:stop(),
|
||||||
ok = application:stop(gen_rpc),
|
ok = application:stop(gen_rpc),
|
||||||
ok = meck:unload(gen_rpc).
|
ok = meck:unload(gen_rpc).
|
||||||
|
|
||||||
|
@ -100,6 +107,7 @@ do_teardown(_) ->
|
||||||
%% Generator
|
%% Generator
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
nodename() ->
|
nodename() ->
|
||||||
?LET({NodePrefix, HostName},
|
?LET({NodePrefix, HostName},
|
||||||
{node_prefix(), hostname()},
|
{node_prefix(), hostname()},
|
||||||
|
@ -130,3 +138,17 @@ text_like() ->
|
||||||
|
|
||||||
hostname() ->
|
hostname() ->
|
||||||
oneof(["127.0.0.1", "localhost"]).
|
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.
|
||||||
|
|
Loading…
Reference in New Issue