From 7e6b94fc121b4e38b1a5d2c603bbc05c6169074e Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Thu, 4 Aug 2022 10:22:04 -0300 Subject: [PATCH] test: avoid stopping cover and using meck --- .../emqx_license/src/emqx_license_parser.erl | 7 +++++++ .../emqx_license/test/emqx_license_SUITE.erl | 18 +++--------------- .../test/emqx_license_http_api_SUITE.erl | 15 ++++----------- 3 files changed, 14 insertions(+), 26 deletions(-) diff --git a/lib-ee/emqx_license/src/emqx_license_parser.erl b/lib-ee/emqx_license/src/emqx_license_parser.erl index f0ac7b8f5..469f70f2a 100644 --- a/lib-ee/emqx_license/src/emqx_license_parser.erl +++ b/lib-ee/emqx_license/src/emqx_license_parser.erl @@ -72,9 +72,16 @@ %% API %%-------------------------------------------------------------------- +-ifdef(TEST). +-spec parse(string() | binary()) -> {ok, license()} | {error, term()}. +parse(Content) -> + PubKey = persistent_term:get({emqx_license_parser_test, pubkey}, ?PUBKEY), + parse(Content, PubKey). +-else. -spec parse(string() | binary()) -> {ok, license()} | {error, term()}. parse(Content) -> parse(Content, ?PUBKEY). +-endif. parse(Content, Pem) -> [PemEntry] = public_key:pem_decode(Pem), diff --git a/lib-ee/emqx_license/test/emqx_license_SUITE.erl b/lib-ee/emqx_license/test/emqx_license_SUITE.erl index ec92f4efe..fb25bd0b9 100644 --- a/lib-ee/emqx_license/test/emqx_license_SUITE.erl +++ b/lib-ee/emqx_license/test/emqx_license_SUITE.erl @@ -16,9 +16,6 @@ all() -> emqx_common_test_helpers:all(?MODULE). init_per_suite(Config) -> - %% hack needed to avoid inter-suite flakiness when using meck... - ok = cover:stop(), - {ok, _} = cover:start(), _ = application:load(emqx_conf), emqx_config:save_schema_mod_and_names(emqx_license_schema), emqx_common_test_helpers:start_apps([emqx_license], fun set_special_configs/1), @@ -144,18 +141,9 @@ setup_test(TestCase, Config) when emqx_config:put([license], LicConfig), RawConfig = #{<<"type">> => file, <<"file">> => LicensePath}, emqx_config:put_raw([<<"license">>], RawConfig), - ok = meck:new(emqx_license_parser, [ - non_strict, passthrough, no_history, no_link - ]), - meck:expect( - emqx_license_parser, - parse, - fun(X) -> - emqx_license_parser:parse( - X, - emqx_license_test_lib:public_key_pem() - ) - end + ok = persistent_term:put( + {emqx_license_parser_test, pubkey}, + emqx_license_test_lib:public_key_pem() ), ok; (_) -> diff --git a/lib-ee/emqx_license/test/emqx_license_http_api_SUITE.erl b/lib-ee/emqx_license/test/emqx_license_http_api_SUITE.erl index f2feed893..867db6043 100644 --- a/lib-ee/emqx_license/test/emqx_license_http_api_SUITE.erl +++ b/lib-ee/emqx_license/test/emqx_license_http_api_SUITE.erl @@ -25,12 +25,12 @@ init_per_suite(Config) -> Config. end_per_suite(_) -> - ok = meck:unload([emqx_license_parser]), emqx_common_test_helpers:stop_apps([emqx_license, emqx_dashboard]), Config = #{type => file, file => emqx_license_test_lib:default_license()}, emqx_config:put([license], Config), RawConfig = #{<<"type">> => file, <<"file">> => emqx_license_test_lib:default_license()}, emqx_config:put_raw([<<"license">>], RawConfig), + persistent_term:erase({emqx_license_parser_test, pubkey}), ok. set_special_configs(emqx_dashboard) -> @@ -41,16 +41,9 @@ set_special_configs(emqx_license) -> emqx_config:put([license], Config), RawConfig = #{<<"type">> => key, <<"key">> => LicenseKey}, emqx_config:put_raw([<<"license">>], RawConfig), - ok = meck:new(emqx_license_parser, [non_strict, passthrough, no_history, no_link]), - ok = meck:expect( - emqx_license_parser, - parse, - fun(X) -> - emqx_license_parser:parse( - X, - emqx_license_test_lib:public_key_pem() - ) - end + ok = persistent_term:put( + {emqx_license_parser_test, pubkey}, + emqx_license_test_lib:public_key_pem() ), ok; set_special_configs(_) ->