From 107253638201cf1e2e06ccaa89be48a578fa09f8 Mon Sep 17 00:00:00 2001 From: zhanghongtong Date: Wed, 13 Nov 2019 18:30:02 +0800 Subject: [PATCH] Add more test cases for emqx_sup --- src/emqx_sup.erl | 2 +- test/emqx_sup_SUITE.erl | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 test/emqx_sup_SUITE.erl diff --git a/src/emqx_sup.erl b/src/emqx_sup.erl index f95e79b6d..915eff938 100644 --- a/src/emqx_sup.erl +++ b/src/emqx_sup.erl @@ -43,7 +43,7 @@ start_link() -> supervisor:start_link({local, ?SUP}, ?MODULE, []). -spec(start_child(supervisor:child_spec()) -> startchild_ret()). -start_child(ChildSpec) when is_tuple(ChildSpec) -> +start_child(ChildSpec) when is_map(ChildSpec) -> supervisor:start_child(?SUP, ChildSpec). -spec(start_child(module(), worker | supervisor) -> startchild_ret()). diff --git a/test/emqx_sup_SUITE.erl b/test/emqx_sup_SUITE.erl new file mode 100644 index 000000000..4d2386bde --- /dev/null +++ b/test/emqx_sup_SUITE.erl @@ -0,0 +1,39 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2019 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_sup_SUITE). + +-compile(export_all). +-compile(nowarn_export_all). + +-include_lib("eunit/include/eunit.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([]). + +t_child(_) -> + ?assertMatch({error, _}, emqx_sup:start_child(undef, worker)), + ?assertMatch({error, not_found}, emqx_sup:stop_child(undef)), + ?assertMatch({error, _}, emqx_sup:start_child(emqx_broker_sup, supervisor)), + ?assertEqual(ok, emqx_sup:stop_child(emqx_broker_sup)), + ?assertMatch({ok, _}, emqx_sup:start_child(emqx_broker_sup, supervisor)). \ No newline at end of file