test: fix tests error
This commit is contained in:
parent
e5447cd6e4
commit
1a09d636ae
|
@ -117,12 +117,12 @@ t_emqx_pubsub_api(_) ->
|
||||||
?assertEqual([], emqx:topics()).
|
?assertEqual([], emqx:topics()).
|
||||||
|
|
||||||
t_hook_unhook(_) ->
|
t_hook_unhook(_) ->
|
||||||
ok = emqx:hook(test_hook, fun ?MODULE:hook_fun1/1, []),
|
ok = emqx:hook(test_hook, {?MODULE, hook_fun1, []}),
|
||||||
ok = emqx:hook(test_hook, fun ?MODULE:hook_fun2/1, []),
|
ok = emqx:hook(test_hook, {?MODULE, hook_fun2, []}),
|
||||||
?assertEqual({error, already_exists},
|
?assertEqual({error, already_exists},
|
||||||
emqx:hook(test_hook, fun ?MODULE:hook_fun2/1, [])),
|
emqx:hook(test_hook, {?MODULE, hook_fun2, []})),
|
||||||
ok = emqx:unhook(test_hook, fun ?MODULE:hook_fun1/1),
|
ok = emqx:unhook(test_hook, {?MODULE, hook_fun1}),
|
||||||
ok = emqx:unhook(test_hook, fun ?MODULE:hook_fun2/1),
|
ok = emqx:unhook(test_hook, {?MODULE, hook_fun2}),
|
||||||
|
|
||||||
ok = emqx:hook(emqx_hook, {?MODULE, hook_fun8, []}, 8),
|
ok = emqx:hook(emqx_hook, {?MODULE, hook_fun8, []}, 8),
|
||||||
ok = emqx:hook(emqx_hook, {?MODULE, hook_fun2, []}, 2),
|
ok = emqx:hook(emqx_hook, {?MODULE, hook_fun2, []}, 2),
|
||||||
|
@ -134,21 +134,20 @@ t_hook_unhook(_) ->
|
||||||
ok = emqx:unhook(emqx_hook, {?MODULE, hook_fun10, []}).
|
ok = emqx:unhook(emqx_hook, {?MODULE, hook_fun10, []}).
|
||||||
|
|
||||||
t_run_hook(_) ->
|
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, {?MODULE, hook_fun3, [init]}),
|
||||||
ok = emqx:hook(foldl_hook, fun ?MODULE:hook_fun4/4, [init]),
|
ok = emqx:hook(foldl_hook, {?MODULE, hook_fun4, [init]}),
|
||||||
ok = emqx:hook(foldl_hook, fun ?MODULE:hook_fun5/4, [init]),
|
ok = emqx:hook(foldl_hook, {?MODULE, hook_fun5, [init]}),
|
||||||
[r5,r4] = emqx:run_fold_hook(foldl_hook, [arg1, arg2], []),
|
[r5,r4] = emqx:run_fold_hook(foldl_hook, [arg1, arg2], []),
|
||||||
[] = emqx:run_fold_hook(unknown_hook, [], []),
|
[] = 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, []}),
|
ok = emqx:hook(foldl_hook2, {?MODULE, hook_fun10, []}),
|
||||||
[r9] = emqx:run_fold_hook(foldl_hook2, [arg], []),
|
[r9] = emqx:run_fold_hook(foldl_hook2, [arg], []),
|
||||||
|
|
||||||
ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun6/2, [initArg]),
|
ok = emqx:hook(foreach_hook, {?MODULE, hook_fun6, [initArg]}),
|
||||||
{error, already_exists} = emqx:hook(foreach_hook, fun ?MODULE:hook_fun6/2, [initArg]),
|
{error, already_exists} = emqx:hook(foreach_hook, {?MODULE, hook_fun6, [initArg]}),
|
||||||
ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun7/2, [initArg]),
|
ok = emqx:hook(foreach_hook, {?MODULE, hook_fun7, [initArg]}),
|
||||||
ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun8/2, [initArg]),
|
ok = emqx:hook(foreach_hook, {?MODULE, hook_fun8, [initArg]}),
|
||||||
ok = emqx:run_hook(foreach_hook, [arg]),
|
ok = emqx:run_hook(foreach_hook, [arg]),
|
||||||
|
|
||||||
ok = emqx:hook(foreach_filter1_hook, {?MODULE, hook_fun1, []}, {?MODULE, hook_filter1, []}, 0),
|
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">>)).
|
?assertEqual(allow, emqx_access_control:check_acl(clientinfo(), Publish, <<"t">>)).
|
||||||
|
|
||||||
t_bypass_auth_plugins(_) ->
|
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(),
|
ClientInfo = clientinfo(),
|
||||||
emqx_zone:set_env(bypass_zone, allow_anonymous, true),
|
emqx_zone:set_env(bypass_zone, allow_anonymous, true),
|
||||||
emqx_zone:set_env(zone, allow_anonymous, false),
|
emqx_zone:set_env(zone, allow_anonymous, false),
|
||||||
emqx_zone:set_env(bypass_zone, bypass_auth_plugins, true),
|
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#{zone => bypass_zone})),
|
||||||
?assertMatch({ok, _}, emqx_access_control:authenticate(ClientInfo)).
|
?assertMatch({ok, _}, emqx_access_control:authenticate(ClientInfo)).
|
||||||
|
|
||||||
|
@ -67,6 +62,11 @@ t_bypass_auth_plugins(_) ->
|
||||||
%% Helper functions
|
%% 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() -> clientinfo(#{}).
|
||||||
clientinfo(InitProps) ->
|
clientinfo(InitProps) ->
|
||||||
maps:merge(#{zone => zone,
|
maps:merge(#{zone => zone,
|
||||||
|
|
|
@ -40,15 +40,15 @@ all() -> emqx_ct:all(?MODULE).
|
||||||
|
|
||||||
t_add_del_hook(_) ->
|
t_add_del_hook(_) ->
|
||||||
{ok, _} = emqx_hooks:start_link(),
|
{ok, _} = emqx_hooks:start_link(),
|
||||||
ok = emqx:hook(test_hook, fun ?MODULE:hook_fun1/1, []),
|
ok = emqx:hook(test_hook, {?MODULE, hook_fun1, []}),
|
||||||
ok = emqx:hook(test_hook, fun ?MODULE:hook_fun2/1, []),
|
ok = emqx:hook(test_hook, {?MODULE, hook_fun2, []}),
|
||||||
?assertEqual({error, already_exists},
|
?assertEqual({error, already_exists},
|
||||||
emqx:hook(test_hook, fun ?MODULE:hook_fun2/1, [])),
|
emqx:hook(test_hook, {?MODULE, hook_fun2, []})),
|
||||||
Callbacks = [{callback, {fun ?MODULE:hook_fun1/1, []}, undefined, 0},
|
Callbacks = [{callback, {?MODULE, hook_fun1, []}, undefined, 0},
|
||||||
{callback, {fun ?MODULE:hook_fun2/1, []}, undefined, 0}],
|
{callback, {?MODULE, hook_fun2, []}, undefined, 0}],
|
||||||
?assertEqual(Callbacks, emqx_hooks:lookup(test_hook)),
|
?assertEqual(Callbacks, emqx_hooks:lookup(test_hook)),
|
||||||
ok = emqx:unhook(test_hook, fun ?MODULE:hook_fun1/1),
|
ok = emqx:unhook(test_hook, {?MODULE, hook_fun1}),
|
||||||
ok = emqx:unhook(test_hook, fun ?MODULE:hook_fun2/1),
|
ok = emqx:unhook(test_hook, {?MODULE, hook_fun2}),
|
||||||
timer:sleep(200),
|
timer:sleep(200),
|
||||||
?assertEqual([], emqx_hooks:lookup(test_hook)),
|
?assertEqual([], emqx_hooks:lookup(test_hook)),
|
||||||
|
|
||||||
|
@ -71,21 +71,20 @@ t_add_del_hook(_) ->
|
||||||
|
|
||||||
t_run_hooks(_) ->
|
t_run_hooks(_) ->
|
||||||
{ok, _} = emqx_hooks:start_link(),
|
{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, {?MODULE, hook_fun3, [init]}),
|
||||||
ok = emqx:hook(foldl_hook, fun ?MODULE:hook_fun4/4, [init]),
|
ok = emqx:hook(foldl_hook, {?MODULE, hook_fun4, [init]}),
|
||||||
ok = emqx:hook(foldl_hook, fun ?MODULE:hook_fun5/4, [init]),
|
ok = emqx:hook(foldl_hook, {?MODULE, hook_fun5, [init]}),
|
||||||
[r5,r4] = emqx:run_fold_hook(foldl_hook, [arg1, arg2], []),
|
[r5,r4] = emqx:run_fold_hook(foldl_hook, [arg1, arg2], []),
|
||||||
[] = emqx:run_fold_hook(unknown_hook, [], []),
|
[] = 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, []}),
|
ok = emqx:hook(foldl_hook2, {?MODULE, hook_fun10, []}),
|
||||||
[r9] = emqx:run_fold_hook(foldl_hook2, [arg], []),
|
[r9] = emqx:run_fold_hook(foldl_hook2, [arg], []),
|
||||||
|
|
||||||
ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun6/2, [initArg]),
|
ok = emqx:hook(foreach_hook, {?MODULE, hook_fun6, [initArg]}),
|
||||||
{error, already_exists} = emqx:hook(foreach_hook, fun ?MODULE:hook_fun6/2, [initArg]),
|
{error, already_exists} = emqx:hook(foreach_hook, {?MODULE, hook_fun6, [initArg]}),
|
||||||
ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun7/2, [initArg]),
|
ok = emqx:hook(foreach_hook, {?MODULE, hook_fun7, [initArg]}),
|
||||||
ok = emqx:hook(foreach_hook, fun ?MODULE:hook_fun8/2, [initArg]),
|
ok = emqx:hook(foreach_hook, {?MODULE, hook_fun8, [initArg]}),
|
||||||
ok = emqx:run_hook(foreach_hook, [arg]),
|
ok = emqx:run_hook(foreach_hook, [arg]),
|
||||||
|
|
||||||
ok = emqx:hook(foreach_filter1_hook, {?MODULE, hook_fun1, []}, {?MODULE, hook_filter1, []}, 0),
|
ok = emqx:hook(foreach_filter1_hook, {?MODULE, hook_fun1, []}, {?MODULE, hook_filter1, []}, 0),
|
||||||
|
|
|
@ -50,18 +50,6 @@ end_per_suite(_Config) ->
|
||||||
delete_default_app(),
|
delete_default_app(),
|
||||||
emqx_ct_helpers:stop_apps([emqx_modules, emqx_management, emqx_auth_mnesia]).
|
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) ->
|
set_special_configs(emqx) ->
|
||||||
application:set_env(emqx, allow_anonymous, true),
|
application:set_env(emqx, allow_anonymous, true),
|
||||||
application:set_env(emqx, enable_acl_cache, false),
|
application:set_env(emqx, enable_acl_cache, false),
|
||||||
|
|
|
@ -234,10 +234,8 @@ t_hook_connected_disconnected(Cfg) ->
|
||||||
ConnAckBin = frame_connack(0),
|
ConnAckBin = frame_connack(0),
|
||||||
|
|
||||||
Parent = self(),
|
Parent = self(),
|
||||||
HookFun1 = fun(_, _) -> Parent ! connected, ok end,
|
emqx:hook('client.connected', {?MODULE, hook_fun1, [Parent]}),
|
||||||
HookFun2 = fun(_, _, _) -> Parent ! disconnected, ok end,
|
emqx:hook('client.disconnected',{?MODULE, hook_fun2, [Parent]}),
|
||||||
emqx:hook('client.connected', HookFun1),
|
|
||||||
emqx:hook('client.disconnected', HookFun2),
|
|
||||||
|
|
||||||
send(Sock, ConnBin),
|
send(Sock, ConnBin),
|
||||||
{ok, ConnAckBin} = recv(Sock, 5000),
|
{ok, ConnAckBin} = recv(Sock, 5000),
|
||||||
|
@ -260,8 +258,8 @@ t_hook_connected_disconnected(Cfg) ->
|
||||||
SockType =/= udp andalso begin
|
SockType =/= udp andalso begin
|
||||||
{error, closed} = recv(Sock, 5000)
|
{error, closed} = recv(Sock, 5000)
|
||||||
end,
|
end,
|
||||||
emqx:unhook('client.connected', HookFun1),
|
emqx:unhook('client.connected', {?MODULE, hook_fun1}),
|
||||||
emqx:unhook('client.disconnected', HookFun2).
|
emqx:unhook('client.disconnected', {?MODULE, hook_fun2}).
|
||||||
|
|
||||||
t_hook_session_subscribed_unsubscribed(Cfg) ->
|
t_hook_session_subscribed_unsubscribed(Cfg) ->
|
||||||
SockType = proplists:get_value(listener_type, Cfg),
|
SockType = proplists:get_value(listener_type, Cfg),
|
||||||
|
@ -280,10 +278,8 @@ t_hook_session_subscribed_unsubscribed(Cfg) ->
|
||||||
{ok, ConnAckBin} = recv(Sock, 5000),
|
{ok, ConnAckBin} = recv(Sock, 5000),
|
||||||
|
|
||||||
Parent = self(),
|
Parent = self(),
|
||||||
HookFun1 = fun(_, _, _) -> Parent ! subscribed, ok end,
|
emqx:hook('session.subscribed', {?MODULE, hook_fun3, [Parent]}),
|
||||||
HookFun2 = fun(_, _, _) -> Parent ! unsubscribed, ok end,
|
emqx:hook('session.unsubscribed', {?MODULE, hook_fun4, [Parent]}),
|
||||||
emqx:hook('session.subscribed', HookFun1),
|
|
||||||
emqx:hook('session.unsubscribed', HookFun2),
|
|
||||||
|
|
||||||
SubBin = frame_subscribe(<<"t/#">>, 1),
|
SubBin = frame_subscribe(<<"t/#">>, 1),
|
||||||
SubAckBin = frame_suback(0),
|
SubAckBin = frame_suback(0),
|
||||||
|
@ -310,8 +306,8 @@ t_hook_session_subscribed_unsubscribed(Cfg) ->
|
||||||
end,
|
end,
|
||||||
|
|
||||||
close(Sock),
|
close(Sock),
|
||||||
emqx:unhook('session.subscribed', HookFun1),
|
emqx:unhook('session.subscribed', {?MODULE, hook_fun3}),
|
||||||
emqx:unhook('session.unsubscribed', HookFun2).
|
emqx:unhook('session.unsubscribed', {?MODULE, hook_fun4}).
|
||||||
|
|
||||||
t_hook_message_delivered(Cfg) ->
|
t_hook_message_delivered(Cfg) ->
|
||||||
SockType = proplists:get_value(listener_type, Cfg),
|
SockType = proplists:get_value(listener_type, Cfg),
|
||||||
|
@ -335,19 +331,26 @@ t_hook_message_delivered(Cfg) ->
|
||||||
send(Sock, SubBin),
|
send(Sock, SubBin),
|
||||||
{ok, SubAckBin} = recv(Sock, 5000),
|
{ok, SubAckBin} = recv(Sock, 5000),
|
||||||
|
|
||||||
HookFun1 = fun(_, Msg) -> {ok, Msg#message{payload = <<"2">>}} end,
|
emqx:hook('message.delivered', {?MODULE, hook_fun5, []}),
|
||||||
emqx:hook('message.delivered', HookFun1),
|
|
||||||
|
|
||||||
emqx:publish(emqx_message:make(<<"t/dn">>, <<"1">>)),
|
emqx:publish(emqx_message:make(<<"t/dn">>, <<"1">>)),
|
||||||
PubBin1 = frame_publish(<<"t/dn">>, 0, <<"2">>),
|
PubBin1 = frame_publish(<<"t/dn">>, 0, <<"2">>),
|
||||||
{ok, PubBin1} = recv(Sock, 5000),
|
{ok, PubBin1} = recv(Sock, 5000),
|
||||||
|
|
||||||
close(Sock),
|
close(Sock),
|
||||||
emqx:unhook('message.delivered', HookFun1).
|
emqx:unhook('message.delivered', {?MODULE, hook_fun5}).
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% Utils
|
%% 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() ->
|
rand_bytes() ->
|
||||||
crypto:strong_rand_bytes(rand:uniform(256)).
|
crypto:strong_rand_bytes(rand:uniform(256)).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue