| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- %%--------------------------------------------------------------------
- %% Copyright (c) 2018-2024 EMQ Technologies Co., Ltd. All Rights Reserved.
- %%
- %% Licensed under the Apache License, Version 2.0 (the "License");
- %% you may not use this file except in compliance with the License.
- %% You may obtain a copy of the License at
- %%
- %% http://www.apache.org/licenses/LICENSE-2.0
- %%
- %% Unless required by applicable law or agreed to in writing, software
- %% distributed under the License is distributed on an "AS IS" BASIS,
- %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- %% See the License for the specific language governing permissions and
- %% limitations under the License.
- %%--------------------------------------------------------------------
- -module(emqx_pool_SUITE).
- -compile(export_all).
- -compile(nowarn_export_all).
- -include_lib("eunit/include/eunit.hrl").
- all() ->
- [
- {group, submit},
- {group, async_submit},
- t_unexpected
- ].
- groups() ->
- [
- {submit, [sequence], [
- t_submit_mfa,
- t_submit_fa
- ]},
- {async_submit, [sequence], [
- t_async_submit_mfa,
- t_async_submit_crash
- ]}
- ].
- init_per_suite(Config) ->
- _ = application:stop(grpoc),
- ok = emqx_logger:set_log_level(emergency),
- application:ensure_all_started(gproc),
- Config.
- end_per_suite(_Config) ->
- ok.
- init_per_testcase(_, Config) ->
- {ok, Sup} = emqx_pool_sup:start_link(),
- [{pool_sup, Sup} | Config].
- end_per_testcase(_, Config) ->
- Sup = proplists:get_value(pool_sup, Config),
- %% ???
- exit(Sup, normal).
- t_submit_mfa(_Config) ->
- Result = emqx_pool:submit({?MODULE, test_mfa, []}),
- ?assertEqual(15, Result).
- t_submit_fa(_Config) ->
- Fun = fun(X) ->
- case X rem 2 of
- 0 -> {true, X div 2};
- _ -> false
- end
- end,
- Result = emqx_pool:submit(Fun, [2]),
- ?assertEqual({true, 1}, Result).
- t_async_submit_mfa(_Config) ->
- emqx_pool:async_submit({?MODULE, test_mfa, []}),
- emqx_pool:async_submit(fun ?MODULE:test_mfa/0, []).
- t_async_submit_crash(_) ->
- emqx_pool:async_submit(fun() -> error(unexpected_error) end).
- t_unexpected(_) ->
- Pid = emqx_pool:worker(),
- ?assertEqual(ignored, gen_server:call(Pid, bad_request)),
- ?assertEqual(ok, gen_server:cast(Pid, bad_msg)),
- Pid ! bad_info,
- ok = gen_server:stop(Pid).
- test_mfa() ->
- lists:foldl(fun(X, Sum) -> X + Sum end, 0, [1, 2, 3, 4, 5]).
- % t_async_submit(_) ->
- % error('TODO').
|