From d61b44ef977cddb5090130c2bf7d7dbcf0687eab Mon Sep 17 00:00:00 2001 From: Zhongwen Deng Date: Tue, 31 May 2022 19:20:09 +0800 Subject: [PATCH] fix: ct failed again --- apps/emqx/src/emqx_config.erl | 1 + apps/emqx/test/emqx_common_test_helpers.erl | 13 ++++++++-- apps/emqx_bridge/test/emqx_bridge_SUITE.erl | 5 ++-- .../test/emqx_delayed_api_SUITE.erl | 4 +++- .../test/emqx_modules_conf_SUITE.erl | 4 +++- apps/emqx_modules/test/emqx_rewrite_SUITE.erl | 20 ++++++++++++---- .../test/emqx_rewrite_api_SUITE.erl | 4 +++- .../test/emqx_telemetry_SUITE.erl | 24 ++++++++++++++++++- .../test/emqx_telemetry_api_SUITE.erl | 4 +++- .../test/emqx_topic_metrics_SUITE.erl | 4 +++- .../test/emqx_topic_metrics_api_SUITE.erl | 4 +++- 11 files changed, 71 insertions(+), 16 deletions(-) diff --git a/apps/emqx/src/emqx_config.erl b/apps/emqx/src/emqx_config.erl index d9cf42c74..5e50189be 100644 --- a/apps/emqx/src/emqx_config.erl +++ b/apps/emqx/src/emqx_config.erl @@ -22,6 +22,7 @@ -export([ init_load/1, init_load/2, + init_load/3, read_override_conf/1, delete_override_conf_files/0, check_config/2, diff --git a/apps/emqx/test/emqx_common_test_helpers.erl b/apps/emqx/test/emqx_common_test_helpers.erl index ee2d446c7..38064914c 100644 --- a/apps/emqx/test/emqx_common_test_helpers.erl +++ b/apps/emqx/test/emqx_common_test_helpers.erl @@ -51,6 +51,7 @@ render_config_file/2, read_schema_configs/2, load_config/2, + load_config/3, is_tcp_server_available/2, is_tcp_server_available/3 ]). @@ -465,11 +466,19 @@ copy_certs(emqx_conf, Dest0) -> copy_certs(_, _) -> ok. -load_config(SchemaModule, Config) -> +load_config(SchemaModule, Config, Opts) -> + ConfigBin = + case is_map(Config) of + true -> jsx:encode(Config); + false -> Config + end, ok = emqx_config:delete_override_conf_files(), - ok = emqx_config:init_load(SchemaModule, Config), + ok = emqx_config:init_load(SchemaModule, ConfigBin, Opts), ok. +load_config(SchemaModule, Config) -> + load_config(SchemaModule, Config, #{raw_with_default => false}). + -spec is_tcp_server_available( Host :: inet:socket_address() | inet:hostname(), Port :: inet:port_number() diff --git a/apps/emqx_bridge/test/emqx_bridge_SUITE.erl b/apps/emqx_bridge/test/emqx_bridge_SUITE.erl index fb7d1e314..894322c61 100644 --- a/apps/emqx_bridge/test/emqx_bridge_SUITE.erl +++ b/apps/emqx_bridge/test/emqx_bridge_SUITE.erl @@ -142,8 +142,9 @@ setup_fake_telemetry_data() -> } } }, - ok = emqx_common_test_helpers:load_config(emqx_connector_schema, ConnectorConf), - ok = emqx_common_test_helpers:load_config(emqx_bridge_schema, Conf), + Opts = #{raw_with_default => true}, + ok = emqx_common_test_helpers:load_config(emqx_connector_schema, ConnectorConf, Opts), + ok = emqx_common_test_helpers:load_config(emqx_bridge_schema, Conf, Opts), ok = snabbkaffe:start_trace(), Predicate = fun(#{?snk_kind := K}) -> K =:= emqx_bridge_monitor_loaded_bridge end, diff --git a/apps/emqx_modules/test/emqx_delayed_api_SUITE.erl b/apps/emqx_modules/test/emqx_delayed_api_SUITE.erl index 590fe24e6..0a17e12d2 100644 --- a/apps/emqx_modules/test/emqx_delayed_api_SUITE.erl +++ b/apps/emqx_modules/test/emqx_delayed_api_SUITE.erl @@ -32,7 +32,9 @@ all() -> emqx_common_test_helpers:all(?MODULE). init_per_suite(Config) -> - ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?BASE_CONF), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?BASE_CONF), #{ + raw_with_default => true + }), ok = emqx_common_test_helpers:start_apps( [emqx_conf, emqx_modules, emqx_dashboard], diff --git a/apps/emqx_modules/test/emqx_modules_conf_SUITE.erl b/apps/emqx_modules/test/emqx_modules_conf_SUITE.erl index 72258c413..10847e8ec 100644 --- a/apps/emqx_modules/test/emqx_modules_conf_SUITE.erl +++ b/apps/emqx_modules/test/emqx_modules_conf_SUITE.erl @@ -29,7 +29,9 @@ all() -> emqx_common_test_helpers:all(?MODULE). init_per_suite(Conf) -> - emqx_common_test_helpers:load_config(emqx_modules_schema, <<"gateway {}">>), + emqx_common_test_helpers:load_config(emqx_modules_schema, <<"gateway {}">>, #{ + raw_with_default => true + }), emqx_common_test_helpers:start_apps([emqx_conf, emqx_modules]), Conf. diff --git a/apps/emqx_modules/test/emqx_rewrite_SUITE.erl b/apps/emqx_modules/test/emqx_rewrite_SUITE.erl index 7a6f096d5..4fc3816fa 100644 --- a/apps/emqx_modules/test/emqx_rewrite_SUITE.erl +++ b/apps/emqx_modules/test/emqx_rewrite_SUITE.erl @@ -157,13 +157,17 @@ t_rewrite_re_error(_Config) -> ok. t_list(_Config) -> - ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?REWRITE), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?REWRITE), #{ + raw_with_default => true + }), Expect = maps:get(<<"rewrite">>, ?REWRITE), ?assertEqual(Expect, emqx_rewrite:list()), ok. t_update(_Config) -> - ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?REWRITE), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?REWRITE), #{ + raw_with_default => true + }), Init = emqx_rewrite:list(), Rules = [ #{ @@ -179,7 +183,9 @@ t_update(_Config) -> ok. t_update_disable(_Config) -> - ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?REWRITE), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?REWRITE), #{ + raw_with_default => true + }), ?assertEqual(ok, emqx_rewrite:update([])), timer:sleep(150), @@ -194,7 +200,9 @@ t_update_disable(_Config) -> ok. t_update_re_failed(_Config) -> - ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?REWRITE), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?REWRITE), #{ + raw_with_default => true + }), Re = <<"*^test/*">>, Rules = [ #{ @@ -249,7 +257,9 @@ receive_publish(Timeout) -> end. init() -> - ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?REWRITE), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?REWRITE), #{ + raw_with_default => true + }), ok = emqx_rewrite:enable(), {ok, C} = emqtt:start_link([{clientid, <<"c1">>}, {username, <<"u1">>}]), {ok, _} = emqtt:connect(C), diff --git a/apps/emqx_modules/test/emqx_rewrite_api_SUITE.erl b/apps/emqx_modules/test/emqx_rewrite_api_SUITE.erl index 4702b7d88..d837006dd 100644 --- a/apps/emqx_modules/test/emqx_rewrite_api_SUITE.erl +++ b/apps/emqx_modules/test/emqx_rewrite_api_SUITE.erl @@ -33,7 +33,9 @@ init_per_testcase(_, Config) -> Config. init_per_suite(Config) -> - ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?BASE_CONF), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?BASE_CONF), #{ + raw_with_default => true + }), ok = emqx_common_test_helpers:start_apps( [emqx_conf, emqx_modules, emqx_dashboard], diff --git a/apps/emqx_modules/test/emqx_telemetry_SUITE.erl b/apps/emqx_modules/test/emqx_telemetry_SUITE.erl index 7965d187e..ac5c8bf35 100644 --- a/apps/emqx_modules/test/emqx_telemetry_SUITE.erl +++ b/apps/emqx_modules/test/emqx_telemetry_SUITE.erl @@ -25,6 +25,11 @@ -import(proplists, [get_value/2]). +-define(BASE_CONF, #{ + <<"dealyed">> => <<"true">>, + <<"max_delayed_messages">> => <<"0">> +}). + all() -> emqx_common_test_helpers:all(?MODULE). init_per_suite(Config) -> @@ -36,6 +41,9 @@ init_per_suite(Config) -> emqx_common_test_helpers:deps_path(emqx_authz, "etc/acl.conf") end ), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?BASE_CONF), #{ + raw_with_default => true + }), emqx_common_test_helpers:start_apps( [emqx_conf, emqx_authn, emqx_authz, emqx_modules], fun set_special_configs/1 @@ -144,7 +152,9 @@ init_per_testcase(t_exhook_info, Config) -> {ok, _} = emqx_exhook_demo_svr:start(), {ok, Sock} = gen_tcp:connect("localhost", 9000, [], 3000), _ = gen_tcp:close(Sock), - ok = emqx_common_test_helpers:load_config(emqx_exhook_schema, ExhookConf), + ok = emqx_common_test_helpers:load_config(emqx_exhook_schema, ExhookConf, #{ + raw_with_default => true + }), {ok, _} = application:ensure_all_started(emqx_exhook), Config; init_per_testcase(t_cluster_uuid, Config) -> @@ -166,6 +176,9 @@ init_per_testcase(t_uuid_restored_from_file, Config) -> %% clear the UUIDs in the DB {atomic, ok} = mria:clear_table(emqx_telemetry), emqx_common_test_helpers:stop_apps([emqx_conf, emqx_authn, emqx_authz, emqx_modules]), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?BASE_CONF), #{ + raw_with_default => true + }), emqx_common_test_helpers:start_apps( [emqx_conf, emqx_authn, emqx_authz, emqx_modules], fun set_special_configs/1 @@ -319,6 +332,9 @@ t_uuid_saved_to_file(_Config) -> %% clear the UUIDs in the DB {atomic, ok} = mria:clear_table(emqx_telemetry), emqx_common_test_helpers:stop_apps([emqx_conf, emqx_authn, emqx_authz, emqx_modules]), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?BASE_CONF), #{ + raw_with_default => true + }), emqx_common_test_helpers:start_apps( [emqx_conf, emqx_authn, emqx_authz, emqx_modules], fun set_special_configs/1 @@ -841,6 +857,12 @@ setup_slave(Node) -> (_) -> ok end, + ok = rpc:call( + Node, + emqx_common_test_helpers, + load_config, + [emqx_modules_schema, jsx:encode(?BASE_CONF), #{raw_with_default => true}] + ), ok = rpc:call( Node, emqx_common_test_helpers, diff --git a/apps/emqx_modules/test/emqx_telemetry_api_SUITE.erl b/apps/emqx_modules/test/emqx_telemetry_api_SUITE.erl index 4ebd155d2..8c55583b6 100644 --- a/apps/emqx_modules/test/emqx_telemetry_api_SUITE.erl +++ b/apps/emqx_modules/test/emqx_telemetry_api_SUITE.erl @@ -29,7 +29,9 @@ all() -> emqx_common_test_helpers:all(?MODULE). init_per_suite(Config) -> - ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?BASE_CONF), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?BASE_CONF), #{ + raw_with_default => true + }), ok = emqx_common_test_helpers:start_apps( [emqx_conf, emqx_authn, emqx_authz, emqx_modules, emqx_dashboard], diff --git a/apps/emqx_modules/test/emqx_topic_metrics_SUITE.erl b/apps/emqx_modules/test/emqx_topic_metrics_SUITE.erl index 4e87374cc..05949a648 100644 --- a/apps/emqx_modules/test/emqx_topic_metrics_SUITE.erl +++ b/apps/emqx_modules/test/emqx_topic_metrics_SUITE.erl @@ -29,7 +29,9 @@ all() -> emqx_common_test_helpers:all(?MODULE). init_per_suite(Config) -> emqx_common_test_helpers:boot_modules(all), emqx_common_test_helpers:start_apps([emqx_conf, emqx_modules]), - ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?TOPIC), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?TOPIC), #{ + raw_with_default => true + }), Config. end_per_suite(_Config) -> diff --git a/apps/emqx_modules/test/emqx_topic_metrics_api_SUITE.erl b/apps/emqx_modules/test/emqx_topic_metrics_api_SUITE.erl index 6bb6cac14..8e57a8b79 100644 --- a/apps/emqx_modules/test/emqx_topic_metrics_api_SUITE.erl +++ b/apps/emqx_modules/test/emqx_topic_metrics_api_SUITE.erl @@ -40,7 +40,9 @@ init_per_testcase(_, Config) -> Config. init_per_suite(Config) -> - ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?BASE_CONF), + ok = emqx_common_test_helpers:load_config(emqx_modules_schema, jsx:encode(?BASE_CONF), #{ + raw_with_default => true + }), ok = emqx_common_test_helpers:start_apps( [emqx_conf, emqx_modules, emqx_dashboard],