test: fix flaky test emqx_stomp_SUITE:t_rest_clienit_inf
This commit is contained in:
parent
4f0311b6f8
commit
9c1972020c
|
@ -32,7 +32,7 @@
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-ifdef(TEST).
|
-ifdef(TEST).
|
||||||
-export([worker/0]).
|
-export([worker/0, flush_async_tasks/0]).
|
||||||
-endif.
|
-endif.
|
||||||
|
|
||||||
%% gen_server callbacks
|
%% gen_server callbacks
|
||||||
|
@ -139,3 +139,15 @@ run({F, A}) when is_function(F), is_list(A) ->
|
||||||
run(Fun) when is_function(Fun) ->
|
run(Fun) when is_function(Fun) ->
|
||||||
Fun().
|
Fun().
|
||||||
|
|
||||||
|
-ifdef(TEST).
|
||||||
|
%% This help function creates a large enough number of async tasks
|
||||||
|
%% to force flush the pool workers.
|
||||||
|
%% The number of tasks should be large enough to ensure all workers have
|
||||||
|
%% the chance to work on at least one of the tasks.
|
||||||
|
flush_async_tasks() ->
|
||||||
|
Ref = make_ref(),
|
||||||
|
Self = self(),
|
||||||
|
L = lists:seq(1, 997),
|
||||||
|
lists:foreach(fun(I) -> emqx_pool:async_submit(fun() -> Self ! {done, Ref, I} end, []) end, L),
|
||||||
|
lists:foreach(fun(I) -> receive {done, Ref, I} -> ok end end, L).
|
||||||
|
-endif.
|
||||||
|
|
|
@ -403,6 +403,7 @@ t_rest_clienit_info(_) ->
|
||||||
|
|
||||||
%% kickout
|
%% kickout
|
||||||
{204, _} = request(delete, ClientPath),
|
{204, _} = request(delete, ClientPath),
|
||||||
|
ok = emqx_pool:flush_async_tasks(),
|
||||||
{200, Clients2} = request(get, "/gateway/stomp/clients"),
|
{200, Clients2} = request(get, "/gateway/stomp/clients"),
|
||||||
?assertEqual(0, length(maps:get(data, Clients2)))
|
?assertEqual(0, length(maps:get(data, Clients2)))
|
||||||
end).
|
end).
|
||||||
|
|
Loading…
Reference in New Issue