test: fix tests error
This commit is contained in:
parent
227c8e626b
commit
b21959b0c3
|
@ -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),
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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)).
|
||||
|
||||
|
|
Loading…
Reference in New Issue