From 1a09d636aee2301d414f1e891c45a8979b282cab Mon Sep 17 00:00:00 2001 From: Rory Z Date: Wed, 16 Jun 2021 17:18:08 +0800 Subject: [PATCH] test: fix tests error --- apps/emqx/test/emqx_SUITE.erl | 25 +++++++------- apps/emqx/test/emqx_access_control_SUITE.erl | 12 +++---- apps/emqx/test/emqx_hooks_SUITE.erl | 29 ++++++++-------- .../test/emqx_acl_mnesia_SUITE.erl | 12 ------- apps/emqx_exproto/test/emqx_exproto_SUITE.erl | 33 ++++++++++--------- 5 files changed, 50 insertions(+), 61 deletions(-) diff --git a/apps/emqx/test/emqx_SUITE.erl b/apps/emqx/test/emqx_SUITE.erl index 714f4e0a5..4213a5aac 100644 --- a/apps/emqx/test/emqx_SUITE.erl +++ b/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), diff --git a/apps/emqx/test/emqx_access_control_SUITE.erl b/apps/emqx/test/emqx_access_control_SUITE.erl index b9ae2c2cb..e4a888d14 100644 --- a/apps/emqx/test/emqx_access_control_SUITE.erl +++ b/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, diff --git a/apps/emqx/test/emqx_hooks_SUITE.erl b/apps/emqx/test/emqx_hooks_SUITE.erl index d40030122..49ba88934 100644 --- a/apps/emqx/test/emqx_hooks_SUITE.erl +++ b/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), diff --git a/apps/emqx_auth_mnesia/test/emqx_acl_mnesia_SUITE.erl b/apps/emqx_auth_mnesia/test/emqx_acl_mnesia_SUITE.erl index 8ace680da..f7994387b 100644 --- a/apps/emqx_auth_mnesia/test/emqx_acl_mnesia_SUITE.erl +++ b/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), diff --git a/apps/emqx_exproto/test/emqx_exproto_SUITE.erl b/apps/emqx_exproto/test/emqx_exproto_SUITE.erl index 70484c30e..db64c7438 100644 --- a/apps/emqx_exproto/test/emqx_exproto_SUITE.erl +++ b/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)).