YoukiLin 7 лет назад
Родитель
Сommit
88c32b2c41
3 измененных файлов с 39 добавлено и 15 удалено
  1. 1 1
      Makefile
  2. 2 14
      src/emqx_rpc.erl
  3. 36 0
      test/emqx_rpc_SUITE.erl

+ 1 - 1
Makefile

@@ -38,7 +38,7 @@ CT_SUITES = emqx emqx_client emqx_zone emqx_banned emqx_session \
 			emqx_listeners emqx_protocol emqx_pool emqx_shared_sub emqx_bridge \
 			emqx_listeners emqx_protocol emqx_pool emqx_shared_sub emqx_bridge \
 			emqx_hooks emqx_batch emqx_sequence emqx_pmon emqx_pd emqx_gc emqx_ws_connection \
 			emqx_hooks emqx_batch emqx_sequence emqx_pmon emqx_pd emqx_gc emqx_ws_connection \
 			emqx_packet emqx_connection emqx_tracer emqx_sys_mon emqx_message emqx_os_mon \
 			emqx_packet emqx_connection emqx_tracer emqx_sys_mon emqx_message emqx_os_mon \
-      emqx_vm_mon emqx_alarm_handler
+            emqx_vm_mon emqx_alarm_handler emqx_rpc
 
 
 CT_NODE_NAME = emqxct@127.0.0.1
 CT_NODE_NAME = emqxct@127.0.0.1
 CT_OPTS = -cover test/ct.cover.spec -erl_args -name $(CT_NODE_NAME)
 CT_OPTS = -cover test/ct.cover.spec -erl_args -name $(CT_NODE_NAME)

+ 2 - 14
src/emqx_rpc.erl

@@ -24,7 +24,7 @@ call(Node, Mod, Fun, Args) ->
     filter_result(?RPC:call(Node, Mod, Fun, Args)).
     filter_result(?RPC:call(Node, Mod, Fun, Args)).
 
 
 multicall(Nodes, Mod, Fun, Args) ->
 multicall(Nodes, Mod, Fun, Args) ->
-    filter_results(?RPC:multicall(Nodes, Mod, Fun, Args)).
+    filter_result(?RPC:multicall(Nodes, Mod, Fun, Args)).
 
 
 cast(Node, Mod, Fun, Args) ->
 cast(Node, Mod, Fun, Args) ->
     filter_result(?RPC:cast(Node, Mod, Fun, Args)).
     filter_result(?RPC:cast(Node, Mod, Fun, Args)).
@@ -33,18 +33,6 @@ filter_result(Delivery) ->
     case Delivery of 
     case Delivery of 
         {badrpc, Reason} -> {badrpc, Reason};
         {badrpc, Reason} -> {badrpc, Reason};
         {badtcp, Reason} -> {badrpc, Reason};
         {badtcp, Reason} -> {badrpc, Reason};
-        Delivery1        -> Delivery1
-    end.
-
-filter_results(Deliverys) ->
-    filter_results(Deliverys, []).
-
-filter_results([], Acc) ->
-    Acc;
-filter_results([Delivery | WaitDelivery], Acc) ->
-    case Delivery of 
-        {badrpc, Reason} -> [{badrpc, Reason} | Acc], filter_results(WaitDelivery, Acc);
-        {badtcp, Reason} -> [{badrpc, Reason} | Acc], filter_results(WaitDelivery, Acc);
-        Delivery1        -> [Delivery1 | Acc], filter_results(WaitDelivery, Acc)
+        Delivery1 -> Delivery1
     end.
     end.
 
 

+ 36 - 0
test/emqx_rpc_SUITE.erl

@@ -0,0 +1,36 @@
+%% Copyright (c) 2013-2019 EMQ Technologies Co., Ltd. All Rights Reserved.
+%%
+%% Licensed under the Apache License, Version 2.0 (the "License");
+%% you may not use this file except in compliance with the License.
+%% You may obtain a copy of the License at
+%%
+%%     http://www.apache.org/licenses/LICENSE-2.0
+%%
+%% Unless required by applicable law or agreed to in writing, software
+%% distributed under the License is distributed on an "AS IS" BASIS,
+%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+%% See the License for the specific language governing permissions and
+%% limitations under the License.
+
+-module(emqx_rpc_SUITE).
+
+-include("emqx.hrl").
+-include_lib("eunit/include/eunit.hrl").
+
+-compile(export_all).
+-compile(nowarn_export_all).
+-define(MASTER, 'emqxct@127.0.0.1').
+
+all() -> [t_rpc].
+
+init_per_suite(Config) ->
+    emqx_ct_broker_helpers:run_setup_steps(),
+    Config.
+
+end_per_suite(_Config) ->
+    emqx_ct_broker_helpers:run_teardown_steps().
+
+t_rpc(_) ->
+    60000 = emqx_rpc:call(?MASTER, timer, seconds, [60]),
+    {badrpc, _} = emqx_rpc:call(?MASTER, os, test, []),
+    {_, []} = emqx_rpc:multicall([?MASTER, ?MASTER], os, timestamp, []).