From f5c1221ec86f90a46a37419194f5bbc7df524ed6 Mon Sep 17 00:00:00 2001 From: firest Date: Fri, 10 Jun 2022 15:53:00 +0800 Subject: [PATCH] fix(limiter): fix test case error --- .../emqx_limiter/src/emqx_limiter_server.erl | 2 +- apps/emqx/test/emqx_listeners_SUITE.erl | 62 +++++++++++++------ apps/emqx/test/emqx_ratelimiter_SUITE.erl | 5 -- 3 files changed, 43 insertions(+), 26 deletions(-) diff --git a/apps/emqx/src/emqx_limiter/src/emqx_limiter_server.erl b/apps/emqx/src/emqx_limiter/src/emqx_limiter_server.erl index 6a89ecab5..8b39f9bbb 100644 --- a/apps/emqx/src/emqx_limiter/src/emqx_limiter_server.erl +++ b/apps/emqx/src/emqx_limiter/src/emqx_limiter_server.erl @@ -475,7 +475,7 @@ init_tree(Type, #{bucket := Buckets} = Cfg) -> State2 = State#{ root := Root, - counter := counters:new(CounterNum, [atomics]) + counter := counters:new(CounterNum, [write_concurrency]) }, lists:foldl(fun(F, Acc) -> F(Acc) end, State2, DelayBuckets). diff --git a/apps/emqx/test/emqx_listeners_SUITE.erl b/apps/emqx/test/emqx_listeners_SUITE.erl index a9d299d88..3dfdf66cf 100644 --- a/apps/emqx/test/emqx_listeners_SUITE.erl +++ b/apps/emqx/test/emqx_listeners_SUITE.erl @@ -49,32 +49,33 @@ init_per_testcase(Case, Config) when undefined -> ok; Listeners -> emqx_config:put([listeners], maps:remove(quic, Listeners)) end, - PrevListeners = emqx_config:get([listeners, tcp], #{}), - PrevRateLimit = emqx_config:get([rate_limit], #{}), - emqx_config:put( - [listeners, tcp], - #{ + + PrevListeners = emqx_config:get([listeners]), + PureListeners = remove_default_limiter(PrevListeners), + PureListeners2 = PureListeners#{ + tcp => #{ listener_test => #{ bind => {"127.0.0.1", 9999}, max_connections => 4321, limiter => #{} } } - ), - emqx_config:put([rate_limit], #{max_conn_rate => 1000}), + }, + emqx_config:put([listeners], PureListeners2), + ok = emqx_listeners:start(), [ - {prev_listener_conf, PrevListeners}, - {prev_rate_limit_conf, PrevRateLimit} + {prev_listener_conf, PrevListeners} | Config ]; init_per_testcase(t_wss_conn, Config) -> catch emqx_config_handler:stop(), {ok, _} = emqx_config_handler:start_link(), - PrevListeners = emqx_config:get([listeners, wss], #{}), - emqx_config:put( - [listeners, wss], - #{ + + PrevListeners = emqx_config:get([listeners]), + PureListeners = remove_default_limiter(PrevListeners), + PureListeners2 = PureListeners#{ + wss => #{ listener_test => #{ bind => {{127, 0, 0, 1}, 9998}, limiter => #{}, @@ -85,7 +86,9 @@ init_per_testcase(t_wss_conn, Config) -> } } } - ), + }, + emqx_config:put([listeners], PureListeners2), + ok = emqx_listeners:start(), [ {prev_listener_conf, PrevListeners} @@ -94,25 +97,31 @@ init_per_testcase(t_wss_conn, Config) -> init_per_testcase(_, Config) -> catch emqx_config_handler:stop(), {ok, _} = emqx_config_handler:start_link(), - Config. + PrevListeners = emqx_config:get([listeners]), + PureListeners = remove_default_limiter(PrevListeners), + emqx_config:put([listeners], PureListeners), + [ + {prev_listener_conf, PrevListeners} + | Config + ]. end_per_testcase(Case, Config) when Case =:= t_max_conns_tcp; Case =:= t_current_conns_tcp -> PrevListener = ?config(prev_listener_conf, Config), - PrevRateLimit = ?config(prev_rate_limit_conf, Config), emqx_listeners:stop(), - emqx_config:put([listeners, tcp], PrevListener), - emqx_config:put([rate_limit], PrevRateLimit), + emqx_config:put([listeners], PrevListener), _ = emqx_config_handler:stop(), ok; end_per_testcase(t_wss_conn, Config) -> PrevListener = ?config(prev_listener_conf, Config), emqx_listeners:stop(), - emqx_config:put([listeners, wss], PrevListener), + emqx_config:put([listeners], PrevListener), _ = emqx_config_handler:stop(), ok; -end_per_testcase(_, _Config) -> +end_per_testcase(_, Config) -> + PrevListener = ?config(prev_listener_conf, Config), + emqx_config:put([listeners], PrevListener), _ = emqx_config_handler:stop(), ok. @@ -184,3 +193,16 @@ get_base_dir(Module) -> get_base_dir() -> get_base_dir(?MODULE). + +remove_default_limiter(Listeners) -> + maps:map( + fun(_, X) -> + maps:map( + fun(_, E) -> + maps:remove(limiter, E) + end, + X + ) + end, + Listeners + ). diff --git a/apps/emqx/test/emqx_ratelimiter_SUITE.erl b/apps/emqx/test/emqx_ratelimiter_SUITE.erl index 0b6f7c94e..d6ad9f1a0 100644 --- a/apps/emqx/test/emqx_ratelimiter_SUITE.erl +++ b/apps/emqx/test/emqx_ratelimiter_SUITE.erl @@ -29,7 +29,6 @@ "\n" "limiter {\n" " bytes_in {\n" - " enable = true\n" " bucket.default {\n" " rate = infinity\n" " capacity = infinity\n" @@ -37,7 +36,6 @@ " }\n" "\n" " message_in {\n" - " enable = true\n" " bucket.default {\n" " rate = infinity\n" " capacity = infinity\n" @@ -45,7 +43,6 @@ " }\n" "\n" " connection {\n" - " enable = true\n" " bucket.default {\n" " rate = infinity\n" " capacity = infinity\n" @@ -53,7 +50,6 @@ " }\n" "\n" " message_routing {\n" - " enable = true\n" " bucket.default {\n" " rate = infinity\n" " capacity = infinity\n" @@ -61,7 +57,6 @@ " }\n" "\n" " batch {\n" - " enable = true\n" " bucket.retainer {\n" " rate = infinity\n" " capacity = infinity\n"