From 838ced7840aa4888a0e0d85873a072a0dd340a74 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Fri, 8 Jul 2022 10:46:04 +0800 Subject: [PATCH] test: no shared subscription lost --- test/emqx_broker_sup_SUITE.erl | 65 ++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 test/emqx_broker_sup_SUITE.erl diff --git a/test/emqx_broker_sup_SUITE.erl b/test/emqx_broker_sup_SUITE.erl new file mode 100644 index 000000000..04881f308 --- /dev/null +++ b/test/emqx_broker_sup_SUITE.erl @@ -0,0 +1,65 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2022 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_broker_sup_SUITE). + +-compile(export_all). +-compile(nowarn_export_all). + +-define(APP, emqx). + +-include_lib("eunit/include/eunit.hrl"). +-include_lib("common_test/include/ct.hrl"). + +-include_lib("emqx/include/emqx.hrl"). +-include_lib("emqx/include/emqx_mqtt.hrl"). + +all() -> emqx_ct:all(?MODULE). + +init_per_suite(Config) -> + emqx_ct_helpers:boot_modules(all), + emqx_ct_helpers:start_apps([]), + Config. + +end_per_suite(_Config) -> + emqx_ct_helpers:stop_apps([]). + +init_per_testcase(Case, Config) -> + ?MODULE:Case({init, Config}). + +end_per_testcase(Case, Config) -> + ?MODULE:Case({'end', Config}). + +%%-------------------------------------------------------------------- +%% cases +%%-------------------------------------------------------------------- + +t_restart_shared_sub({init, Config}) -> + emqx:subscribe(<<"t/a">>, #{share => <<"groupa">>}), + true = exit(whereis(emqx_shared_sub), kill), + %% waiting for restart + timer:sleep(200), Config; +t_restart_shared_sub(Config) when is_list(Config) -> + ?assert(is_pid(whereis(emqx_shared_sub))), + emqx:publish(emqx_message:make(<<"t/a">>, <<"Hi">>)), + ?assert( + receive + {deliver, _Topic, #message{payload = <<"Hi">>}} -> true + after 2000 -> + false + end); +t_restart_shared_sub({'end', Config}) -> + emqx:unsubscribe(<<"$share/grpa/t/a">>).