فهرست منبع

test: fix tests error

Rory Z 4 سال پیش
والد
کامیت
1a09d636ae

+ 12 - 13
apps/emqx/test/emqx_SUITE.erl

@@ -117,12 +117,12 @@ t_emqx_pubsub_api(_) ->
     ?assertEqual([], emqx:topics()).
 
 t_hook_unhook(_) ->
-    ok = emqx:hook(test_hook, fun ?MODULE:hook_fun1/1, []),
-    ok = emqx:hook(test_hook, fun ?MODULE:hook_fun2/1, []),
+    ok = emqx:hook(test_hook, {?MODULE, hook_fun1, []}),
+    ok = emqx:hook(test_hook, {?MODULE, hook_fun2, []}),
     ?assertEqual({error, already_exists},
-                    emqx:hook(test_hook, fun ?MODULE:hook_fun2/1, [])),
-    ok = emqx:unhook(test_hook, fun ?MODULE:hook_fun1/1),
-    ok = emqx:unhook(test_hook, fun ?MODULE:hook_fun2/1),
+                    emqx:hook(test_hook, {?MODULE, hook_fun2, []})),
+    ok = emqx:unhook(test_hook, {?MODULE, hook_fun1}),
+    ok = emqx:unhook(test_hook, {?MODULE, hook_fun2}),
 
     ok = emqx:hook(emqx_hook, {?MODULE, hook_fun8, []}, 8),
     ok = emqx:hook(emqx_hook, {?MODULE, hook_fun2, []}, 2),
@@ -134,21 +134,20 @@ t_hook_unhook(_) ->
     ok = emqx:unhook(emqx_hook, {?MODULE, hook_fun10, []}).
 
 t_run_hook(_) ->
-    ok = emqx:hook(foldl_hook, fun ?MODULE:hook_fun3/4, [init]),
     ok = emqx:hook(foldl_hook, {?MODULE, hook_fun3, [init]}),
-    ok = emqx:hook(foldl_hook, fun ?MODULE:hook_fun4/4, [init]),
-    ok = emqx:hook(foldl_hook, fun ?MODULE:hook_fun5/4, [init]),
+    ok = emqx:hook(foldl_hook, {?MODULE, hook_fun4, [init]}),
+    ok = emqx:hook(foldl_hook, {?MODULE, hook_fun5, [init]}),
     [r5,r4] = emqx:run_fold_hook(foldl_hook, [arg1, arg2], []),
     [] = emqx:run_fold_hook(unknown_hook, [], []),
 
-    ok = emqx:hook(foldl_hook2, fun ?MODULE:hook_fun9/2),
+    ok = emqx:hook(foldl_hook2, {?MODULE, hook_fun9, []}),
     ok = emqx:hook(foldl_hook2, {?MODULE, hook_fun10, []}),
     [r9] = emqx:run_fold_hook(foldl_hook2, [arg], []),
 
-    ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun6/2, [initArg]),
-    {error, already_exists} = emqx:hook(foreach_hook, fun ?MODULE:hook_fun6/2, [initArg]),
-    ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun7/2, [initArg]),
-    ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun8/2, [initArg]),
+    ok = emqx:hook(foreach_hook, {?MODULE, hook_fun6, [initArg]}),
+    {error, already_exists} = emqx:hook(foreach_hook, {?MODULE, hook_fun6, [initArg]}),
+    ok = emqx:hook(foreach_hook, {?MODULE, hook_fun7, [initArg]}),
+    ok = emqx:hook(foreach_hook, {?MODULE, hook_fun8, [initArg]}),
     ok = emqx:run_hook(foreach_hook, [arg]),
 
     ok = emqx:hook(foreach_filter1_hook, {?MODULE, hook_fun1, []}, {?MODULE, hook_filter1, []}, 0),

+ 6 - 6
apps/emqx/test/emqx_access_control_SUITE.erl

@@ -50,16 +50,11 @@ t_check_acl(_) ->
     ?assertEqual(allow, emqx_access_control:check_acl(clientinfo(), Publish, <<"t">>)).
 
 t_bypass_auth_plugins(_) ->
-    AuthFun = fun(#{zone := bypass_zone}, AuthRes) ->
-                      {stop, AuthRes#{auth_result => password_error}};
-                 (#{zone := _}, AuthRes) ->
-                      {stop, AuthRes#{auth_result => success}}
-              end,
     ClientInfo = clientinfo(),
     emqx_zone:set_env(bypass_zone, allow_anonymous, true),
     emqx_zone:set_env(zone, allow_anonymous, false),
     emqx_zone:set_env(bypass_zone, bypass_auth_plugins, true),
-    emqx:hook('client.authenticate', AuthFun, []),
+    emqx:hook('client.authenticate',{?MODULE, auth_fun, []}),
     ?assertMatch({ok, _}, emqx_access_control:authenticate(ClientInfo#{zone => bypass_zone})),
     ?assertMatch({ok, _}, emqx_access_control:authenticate(ClientInfo)).
 
@@ -67,6 +62,11 @@ t_bypass_auth_plugins(_) ->
 %% Helper functions
 %%--------------------------------------------------------------------
 
+auth_fun(#{zone := bypass_zone}, AuthRes) ->
+             {stop, AuthRes#{auth_result => password_error}};
+auth_fun(#{zone := _}, AuthRes) ->
+             {stop, AuthRes#{auth_result => success}}.
+
 clientinfo() -> clientinfo(#{}).
 clientinfo(InitProps) ->
     maps:merge(#{zone       => zone,

+ 14 - 15
apps/emqx/test/emqx_hooks_SUITE.erl

@@ -40,15 +40,15 @@ all() -> emqx_ct:all(?MODULE).
     
 t_add_del_hook(_) ->
     {ok, _} = emqx_hooks:start_link(),
-    ok = emqx:hook(test_hook, fun ?MODULE:hook_fun1/1, []),
-    ok = emqx:hook(test_hook, fun ?MODULE:hook_fun2/1, []),
+    ok = emqx:hook(test_hook, {?MODULE, hook_fun1, []}),
+    ok = emqx:hook(test_hook, {?MODULE, hook_fun2, []}),
     ?assertEqual({error, already_exists},
-                 emqx:hook(test_hook, fun ?MODULE:hook_fun2/1, [])),
-    Callbacks = [{callback, {fun ?MODULE:hook_fun1/1, []}, undefined, 0},
-                 {callback, {fun ?MODULE:hook_fun2/1, []}, undefined, 0}],
+                 emqx:hook(test_hook, {?MODULE, hook_fun2, []})),
+    Callbacks = [{callback, {?MODULE, hook_fun1, []}, undefined, 0},
+                 {callback, {?MODULE, hook_fun2, []}, undefined, 0}],
     ?assertEqual(Callbacks, emqx_hooks:lookup(test_hook)),
-    ok = emqx:unhook(test_hook, fun ?MODULE:hook_fun1/1),
-    ok = emqx:unhook(test_hook, fun ?MODULE:hook_fun2/1),
+    ok = emqx:unhook(test_hook, {?MODULE, hook_fun1}),
+    ok = emqx:unhook(test_hook, {?MODULE, hook_fun2}),
     timer:sleep(200),
     ?assertEqual([], emqx_hooks:lookup(test_hook)),
 
@@ -71,21 +71,20 @@ t_add_del_hook(_) ->
 
 t_run_hooks(_) ->
     {ok, _} = emqx_hooks:start_link(),
-    ok = emqx:hook(foldl_hook, fun ?MODULE:hook_fun3/4, [init]),
     ok = emqx:hook(foldl_hook, {?MODULE, hook_fun3, [init]}),
-    ok = emqx:hook(foldl_hook, fun ?MODULE:hook_fun4/4, [init]),
-    ok = emqx:hook(foldl_hook, fun ?MODULE:hook_fun5/4, [init]),
+    ok = emqx:hook(foldl_hook, {?MODULE, hook_fun4, [init]}),
+    ok = emqx:hook(foldl_hook, {?MODULE, hook_fun5, [init]}),
     [r5,r4] = emqx:run_fold_hook(foldl_hook, [arg1, arg2], []),
     [] = emqx:run_fold_hook(unknown_hook, [], []),
 
-    ok = emqx:hook(foldl_hook2, fun ?MODULE:hook_fun9/2),
+    ok = emqx:hook(foldl_hook2, {?MODULE, hook_fun9, []}),
     ok = emqx:hook(foldl_hook2, {?MODULE, hook_fun10, []}),
     [r9] = emqx:run_fold_hook(foldl_hook2, [arg], []),
 
-    ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun6/2, [initArg]),
-    {error, already_exists} = emqx:hook(foreach_hook, fun ?MODULE:hook_fun6/2, [initArg]),
-    ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun7/2, [initArg]),
-    ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun8/2, [initArg]),
+    ok = emqx:hook(foreach_hook, {?MODULE, hook_fun6, [initArg]}),
+    {error, already_exists} = emqx:hook(foreach_hook, {?MODULE, hook_fun6, [initArg]}),
+    ok = emqx:hook(foreach_hook, {?MODULE, hook_fun7, [initArg]}),
+    ok = emqx:hook(foreach_hook, {?MODULE, hook_fun8, [initArg]}),
     ok = emqx:run_hook(foreach_hook, [arg]),
 
     ok = emqx:hook(foreach_filter1_hook, {?MODULE, hook_fun1, []}, {?MODULE, hook_filter1, []}, 0),

+ 0 - 12
apps/emqx_auth_mnesia/test/emqx_acl_mnesia_SUITE.erl

@@ -50,18 +50,6 @@ end_per_suite(_Config) ->
     delete_default_app(),
     emqx_ct_helpers:stop_apps([emqx_modules, emqx_management, emqx_auth_mnesia]).
 
-init_per_testcase(t_check_acl_as_clientid, Config) ->
-    emqx:hook('client.check_acl', fun emqx_acl_mnesia:check_acl/5, [#{key_as => clientid}]),
-    Config;
-
-init_per_testcase(_, Config) ->
-    emqx:hook('client.check_acl', fun emqx_acl_mnesia:check_acl/5, [#{key_as => username}]),
-    Config.
-
-end_per_testcase(_, Config) ->
-    emqx:unhook('client.check_acl', fun emqx_acl_mnesia:check_acl/5),
-    Config.
-
 set_special_configs(emqx) ->
     application:set_env(emqx, allow_anonymous, true),
     application:set_env(emqx, enable_acl_cache, false),

+ 18 - 15
apps/emqx_exproto/test/emqx_exproto_SUITE.erl

@@ -234,10 +234,8 @@ t_hook_connected_disconnected(Cfg) ->
     ConnAckBin = frame_connack(0),
 
     Parent = self(),
-    HookFun1 = fun(_, _) -> Parent ! connected, ok end,
-    HookFun2 = fun(_, _, _) -> Parent ! disconnected, ok end,
-    emqx:hook('client.connected', HookFun1),
-    emqx:hook('client.disconnected', HookFun2),
+    emqx:hook('client.connected', {?MODULE, hook_fun1, [Parent]}),
+    emqx:hook('client.disconnected',{?MODULE, hook_fun2, [Parent]}),
 
     send(Sock, ConnBin),
     {ok, ConnAckBin} = recv(Sock, 5000),
@@ -260,8 +258,8 @@ t_hook_connected_disconnected(Cfg) ->
     SockType =/= udp andalso begin
         {error, closed} = recv(Sock, 5000)
     end,
-    emqx:unhook('client.connected', HookFun1),
-    emqx:unhook('client.disconnected', HookFun2).
+    emqx:unhook('client.connected', {?MODULE, hook_fun1}),
+    emqx:unhook('client.disconnected', {?MODULE, hook_fun2}).
 
 t_hook_session_subscribed_unsubscribed(Cfg) ->
     SockType = proplists:get_value(listener_type, Cfg),
@@ -280,10 +278,8 @@ t_hook_session_subscribed_unsubscribed(Cfg) ->
     {ok, ConnAckBin} = recv(Sock, 5000),
 
     Parent = self(),
-    HookFun1 = fun(_, _, _) -> Parent ! subscribed, ok end,
-    HookFun2 = fun(_, _, _) -> Parent ! unsubscribed, ok end,
-    emqx:hook('session.subscribed', HookFun1),
-    emqx:hook('session.unsubscribed', HookFun2),
+    emqx:hook('session.subscribed', {?MODULE, hook_fun3, [Parent]}),
+    emqx:hook('session.unsubscribed', {?MODULE, hook_fun4, [Parent]}),
 
     SubBin = frame_subscribe(<<"t/#">>, 1),
     SubAckBin = frame_suback(0),
@@ -310,8 +306,8 @@ t_hook_session_subscribed_unsubscribed(Cfg) ->
     end,
 
     close(Sock),
-    emqx:unhook('session.subscribed', HookFun1),
-    emqx:unhook('session.unsubscribed', HookFun2).
+    emqx:unhook('session.subscribed', {?MODULE, hook_fun3}),
+    emqx:unhook('session.unsubscribed', {?MODULE, hook_fun4}).
 
 t_hook_message_delivered(Cfg) ->
     SockType = proplists:get_value(listener_type, Cfg),
@@ -335,19 +331,26 @@ t_hook_message_delivered(Cfg) ->
     send(Sock, SubBin),
     {ok, SubAckBin} = recv(Sock, 5000),
 
-    HookFun1 = fun(_, Msg) -> {ok, Msg#message{payload = <<"2">>}} end,
-    emqx:hook('message.delivered', HookFun1),
+    emqx:hook('message.delivered', {?MODULE, hook_fun5, []}),
 
     emqx:publish(emqx_message:make(<<"t/dn">>, <<"1">>)),
     PubBin1 = frame_publish(<<"t/dn">>, 0, <<"2">>),
     {ok, PubBin1} = recv(Sock, 5000),
 
     close(Sock),
-    emqx:unhook('message.delivered', HookFun1).
+    emqx:unhook('message.delivered', {?MODULE, hook_fun5}).
 
 %%--------------------------------------------------------------------
 %% Utils
 
+hook_fun1(_, _, Parent) -> Parent ! connected, ok.
+hook_fun2(_, _, _, Parent) -> Parent ! disconnected, ok.
+
+hook_fun3(_, _, _, Parent) -> Parent ! subscribed, ok.
+hook_fun4(_, _, _, Parent) -> Parent ! unsubscribed, ok.
+
+hook_fun5(_, Msg) -> {ok, Msg#message{payload = <<"2">>}}.
+
 rand_bytes() ->
     crypto:strong_rand_bytes(rand:uniform(256)).