Merge pull request #9446 from zmstone/1129-emqx-7958-add-cover
1129 emqx 7958 add cover
This commit is contained in:
commit
5b3bcf54ed
|
@ -13,4 +13,5 @@
|
||||||
, runtime_tools
|
, runtime_tools
|
||||||
, {mnesia, load}
|
, {mnesia, load}
|
||||||
, xmerl
|
, xmerl
|
||||||
|
, tools
|
||||||
].
|
].
|
||||||
|
|
|
@ -2,12 +2,14 @@
|
||||||
%% Unless you know what you are doing, DO NOT edit manually!!
|
%% Unless you know what you are doing, DO NOT edit manually!!
|
||||||
{VSN,
|
{VSN,
|
||||||
[{"4.4.11",
|
[{"4.4.11",
|
||||||
[{load_module,emqx_relup,brutal_purge,soft_purge,[]},
|
[{add_module,emqx_cover},
|
||||||
|
{load_module,emqx_relup,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.4.10",
|
{"4.4.10",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
|
{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
|
||||||
|
@ -24,7 +26,8 @@
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
||||||
{"4.4.9",
|
{"4.4.9",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{add_module,emqx_secret},
|
{add_module,emqx_secret},
|
||||||
|
@ -48,7 +51,8 @@
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
||||||
{"4.4.8",
|
{"4.4.8",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{add_module,emqx_secret},
|
{add_module,emqx_secret},
|
||||||
|
@ -73,7 +77,8 @@
|
||||||
{load_module,emqx_message,brutal_purge,soft_purge,[]},
|
{load_module,emqx_message,brutal_purge,soft_purge,[]},
|
||||||
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
||||||
{"4.4.7",
|
{"4.4.7",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{add_module,emqx_secret},
|
{add_module,emqx_secret},
|
||||||
|
@ -98,7 +103,8 @@
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
||||||
{"4.4.6",
|
{"4.4.6",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{add_module,emqx_secret},
|
{add_module,emqx_secret},
|
||||||
|
@ -123,7 +129,8 @@
|
||||||
{load_module,emqx,brutal_purge,soft_purge,[]},
|
{load_module,emqx,brutal_purge,soft_purge,[]},
|
||||||
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
||||||
{"4.4.5",
|
{"4.4.5",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{add_module,emqx_secret},
|
{add_module,emqx_secret},
|
||||||
|
@ -150,7 +157,8 @@
|
||||||
{load_module,emqx_session,brutal_purge,soft_purge,[]},
|
{load_module,emqx_session,brutal_purge,soft_purge,[]},
|
||||||
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
||||||
{"4.4.4",
|
{"4.4.4",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{add_module,emqx_secret},
|
{add_module,emqx_secret},
|
||||||
|
@ -184,7 +192,8 @@
|
||||||
{load_module,emqx_session,brutal_purge,soft_purge,[]},
|
{load_module,emqx_session,brutal_purge,soft_purge,[]},
|
||||||
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
||||||
{"4.4.3",
|
{"4.4.3",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{add_module,emqx_secret},
|
{add_module,emqx_secret},
|
||||||
|
@ -225,7 +234,8 @@
|
||||||
{load_module,emqx_relup},
|
{load_module,emqx_relup},
|
||||||
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
||||||
{"4.4.2",
|
{"4.4.2",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{add_module,emqx_secret},
|
{add_module,emqx_secret},
|
||||||
|
@ -267,7 +277,8 @@
|
||||||
{load_module,emqx_relup},
|
{load_module,emqx_relup},
|
||||||
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
||||||
{"4.4.1",
|
{"4.4.1",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{add_module,emqx_secret},
|
{add_module,emqx_secret},
|
||||||
|
@ -314,7 +325,8 @@
|
||||||
{add_module,emqx_relup},
|
{add_module,emqx_relup},
|
||||||
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
{apply, {application, set_env, [gen_rpc, insecure_auth_fallback_allowed, true]}}]},
|
||||||
{"4.4.0",
|
{"4.4.0",
|
||||||
[{add_module,emqx_ocsp_cache},
|
[{add_module,emqx_cover},
|
||||||
|
{add_module,emqx_ocsp_cache},
|
||||||
{add_module,emqx_crl_cache},
|
{add_module,emqx_crl_cache},
|
||||||
{add_module,emqx_const_v1},
|
{add_module,emqx_const_v1},
|
||||||
{add_module,emqx_secret},
|
{add_module,emqx_secret},
|
||||||
|
@ -367,7 +379,8 @@
|
||||||
[{load_module,emqx_relup,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_relup,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
|
{delete_module,emqx_cover}]},
|
||||||
{"4.4.10",
|
{"4.4.10",
|
||||||
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_listeners,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_kernel_sup,brutal_purge,soft_purge,[]},
|
{load_module,emqx_kernel_sup,brutal_purge,soft_purge,[]},
|
||||||
|
@ -381,6 +394,7 @@
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx,brutal_purge,soft_purge,[]},
|
{load_module,emqx,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{"4.4.9",
|
{"4.4.9",
|
||||||
|
@ -402,6 +416,7 @@
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_router,brutal_purge,soft_purge,[]},
|
{load_module,emqx_router,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{"4.4.8",
|
{"4.4.8",
|
||||||
|
@ -424,6 +439,7 @@
|
||||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_message,brutal_purge,soft_purge,[]},
|
{load_module,emqx_message,brutal_purge,soft_purge,[]},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{"4.4.7",
|
{"4.4.7",
|
||||||
|
@ -446,6 +462,7 @@
|
||||||
{load_module,emqx_plugins,brutal_purge,soft_purge,[]},
|
{load_module,emqx_plugins,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{"4.4.6",
|
{"4.4.6",
|
||||||
|
@ -468,6 +485,7 @@
|
||||||
{load_module,emqx_plugins,brutal_purge,soft_purge,[]},
|
{load_module,emqx_plugins,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx,brutal_purge,soft_purge,[]},
|
{load_module,emqx,brutal_purge,soft_purge,[]},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{"4.4.5",
|
{"4.4.5",
|
||||||
|
@ -492,6 +510,7 @@
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_relup,brutal_purge,soft_purge,[]},
|
{load_module,emqx_relup,brutal_purge,soft_purge,[]},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{"4.4.4",
|
{"4.4.4",
|
||||||
|
@ -523,6 +542,7 @@
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_plugins,brutal_purge,soft_purge,[]},
|
{load_module,emqx_plugins,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_metrics,brutal_purge,soft_purge,[]},
|
{load_module,emqx_metrics,brutal_purge,soft_purge,[]},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{"4.4.3",
|
{"4.4.3",
|
||||||
|
@ -560,6 +580,7 @@
|
||||||
{load_module,emqx_access_control,brutal_purge,soft_purge,[]},
|
{load_module,emqx_access_control,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_relup},
|
{load_module,emqx_relup},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{"4.4.2",
|
{"4.4.2",
|
||||||
|
@ -598,6 +619,7 @@
|
||||||
{load_module,emqx_hooks,brutal_purge,soft_purge,[]},
|
{load_module,emqx_hooks,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_relup},
|
{load_module,emqx_relup},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{"4.4.1",
|
{"4.4.1",
|
||||||
|
@ -641,6 +663,7 @@
|
||||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{delete_module,emqx_relup},
|
{delete_module,emqx_relup},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{"4.4.0",
|
{"4.4.0",
|
||||||
|
@ -685,6 +708,7 @@
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_limiter,brutal_purge,soft_purge,[]},
|
{load_module,emqx_limiter,brutal_purge,soft_purge,[]},
|
||||||
{delete_module,emqx_relup},
|
{delete_module,emqx_relup},
|
||||||
|
{delete_module,emqx_cover},
|
||||||
{delete_module,emqx_crl_cache},
|
{delete_module,emqx_crl_cache},
|
||||||
{delete_module,emqx_ocsp_cache}]},
|
{delete_module,emqx_ocsp_cache}]},
|
||||||
{<<".*">>,[]}]}.
|
{<<".*">>,[]}]}.
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
%% 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.
|
||||||
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
|
%% @doc This module is NOT used in production.
|
||||||
|
%% It is used to collect coverage data when running blackbox test
|
||||||
|
-module(emqx_cover).
|
||||||
|
|
||||||
|
-export([start/0,
|
||||||
|
start/1,
|
||||||
|
export_and_stop/1
|
||||||
|
]).
|
||||||
|
|
||||||
|
start() ->
|
||||||
|
start(#{}).
|
||||||
|
|
||||||
|
start(Opts) ->
|
||||||
|
ok = maybe_set_secret(),
|
||||||
|
case cover:start() of
|
||||||
|
{ok, _Pid} ->
|
||||||
|
ok;
|
||||||
|
{error, {already_started, _Pid}} ->
|
||||||
|
ok;
|
||||||
|
Other ->
|
||||||
|
throw(Other)
|
||||||
|
end,
|
||||||
|
ok = cover_compile(Opts).
|
||||||
|
|
||||||
|
export_and_stop(Path) ->
|
||||||
|
ok = cover:export(Path),
|
||||||
|
_ = cover:stop(),
|
||||||
|
ok.
|
||||||
|
|
||||||
|
maybe_set_secret() ->
|
||||||
|
case os:getenv("EMQX_DEBUG_SECRET_FILE") of
|
||||||
|
false ->
|
||||||
|
ok;
|
||||||
|
"" ->
|
||||||
|
ok;
|
||||||
|
File ->
|
||||||
|
ok = emqx:set_debug_secret(File)
|
||||||
|
end.
|
||||||
|
|
||||||
|
cover_compile(_Opts) ->
|
||||||
|
%% TODO better filter based on Opts,
|
||||||
|
%% e.g. we may want to see coverage info for ehttpc
|
||||||
|
Filter = fun is_emqx_module/1,
|
||||||
|
Modules = find_modules(Filter),
|
||||||
|
Results = cover:compile_beam(Modules),
|
||||||
|
Errors = lists:filter(fun({ok, _}) -> false;
|
||||||
|
(_) -> true
|
||||||
|
end, Results),
|
||||||
|
case Errors of
|
||||||
|
[] ->
|
||||||
|
ok;
|
||||||
|
_ ->
|
||||||
|
io:format(user, "failed_to_cover_compile:~n~p~n", [Errors]),
|
||||||
|
throw(failed_to_cover_compile)
|
||||||
|
end.
|
||||||
|
|
||||||
|
find_modules(Filter) ->
|
||||||
|
All = code:all_loaded(),
|
||||||
|
F = fun({M, _BeamPath}) -> Filter(M) end,
|
||||||
|
lists:filter(F, All).
|
||||||
|
|
||||||
|
is_emqx_module(?MODULE) ->
|
||||||
|
%% do not cover-compile self
|
||||||
|
false;
|
||||||
|
is_emqx_module(Module) ->
|
||||||
|
case erlang:atom_to_binary(Module, utf8) of
|
||||||
|
<<"emqx", _/binary>> ->
|
||||||
|
true;
|
||||||
|
_ ->
|
||||||
|
false
|
||||||
|
end.
|
Loading…
Reference in New Issue