From 1e170da9e88565f369cdb06878a090c16d3ac417 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Thu, 28 Apr 2022 13:36:46 +0200 Subject: [PATCH] test: ensure emqx_metrics gen_server stopped after each test --- apps/emqx/src/emqx_metrics.erl | 9 ++++++++- apps/emqx/test/emqx_metrics_SUITE.erl | 15 ++++++++++++--- scripts/git-hook-pre-commit.sh | 11 +++++++---- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/apps/emqx/src/emqx_metrics.erl b/apps/emqx/src/emqx_metrics.erl index a5d63cb09..f7d3a5dc9 100644 --- a/apps/emqx/src/emqx_metrics.erl +++ b/apps/emqx/src/emqx_metrics.erl @@ -279,7 +279,14 @@ start_link() -> gen_server:start_link({local, ?SERVER}, ?MODULE, [], []). -spec stop() -> ok. -stop() -> gen_server:stop(?SERVER). +stop() -> + try + gen_server:stop(?SERVER) + catch + exit:R when R =:= noproc orelse R =:= timeout -> + %% pid is killed after timeout + ok + end. %% BACKW: v4.3.0 upgrade_retained_delayed_counter_type() -> diff --git a/apps/emqx/test/emqx_metrics_SUITE.erl b/apps/emqx/test/emqx_metrics_SUITE.erl index ababd359d..10bbeda27 100644 --- a/apps/emqx/test/emqx_metrics_SUITE.erl +++ b/apps/emqx/test/emqx_metrics_SUITE.erl @@ -166,7 +166,16 @@ t_trans(_) -> ). with_metrics_server(Fun) -> - _ = supervisor:terminate_child(emqx_kernel_sup, emqx_metrics), + try + supervisor:terminate_child(emqx_kernel_sup, emqx_metrics) + catch + exit:_ -> + ok + end, {ok, _} = emqx_metrics:start_link(), - _ = Fun(), - ok = emqx_metrics:stop(). + try + _ = Fun(), + ok + after + ok = emqx_metrics:stop() + end. diff --git a/scripts/git-hook-pre-commit.sh b/scripts/git-hook-pre-commit.sh index 7b9e06385..dc4e13e93 100755 --- a/scripts/git-hook-pre-commit.sh +++ b/scripts/git-hook-pre-commit.sh @@ -2,10 +2,13 @@ set -euo pipefail -files="$(git diff --cached --name-only | grep -E '.*\.erl' || true)" -if [[ "${files}" == '' ]]; then +OPT="${1:--c}" + +files_dirty="$(git diff --name-only | grep -E '.*\.erl' || true)" +files_cached="$(git diff --cached --name-only | grep -E '.*\.erl' || true)" +if [[ "${files_dirty}" == '' ]] && [[ "${files_cached}" == '' ]]; then exit 0 fi -files="$(echo -e "$files" | xargs)" +files="$(echo -e "${files_dirty} \n ${files_cached}" | xargs)" # shellcheck disable=SC2086 -./scripts/erlfmt -c $files +./scripts/erlfmt $OPT $files