|
|
@@ -21,29 +21,81 @@
|
|
|
|
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
|
|
|
|
--define(OPTS, [{enable_acl, true},
|
|
|
- {enable_banned, false}
|
|
|
+-define(ENVS, [{use_username_as_clientid, false},
|
|
|
+ {server_keepalive, 60},
|
|
|
+ {upgrade_qos, false},
|
|
|
+ {session_expiry_interval, 7200},
|
|
|
+ {retry_interval, 20000},
|
|
|
+ {mqueue_store_qos0, true},
|
|
|
+ {mqueue_priorities, none},
|
|
|
+ {mqueue_default_priority, highest},
|
|
|
+ {max_subscriptions, 0},
|
|
|
+ {max_mqueue_len, 1000},
|
|
|
+ {max_inflight, 32},
|
|
|
+ {max_awaiting_rel, 100},
|
|
|
+ {keepalive_backoff, 0.75},
|
|
|
+ {ignore_loop_deliver, false},
|
|
|
+ {idle_timeout, 15000},
|
|
|
+ {force_shutdown_policy, #{max_heap_size => 838860800,
|
|
|
+ message_queue_len => 8000}},
|
|
|
+ {force_gc_policy, #{bytes => 1048576, count => 1000}},
|
|
|
+ {enable_stats, true},
|
|
|
+ {enable_flapping_detect, false},
|
|
|
+ {enable_ban, true},
|
|
|
+ {enable_acl, true},
|
|
|
+ {await_rel_timeout, 300000},
|
|
|
+ {acl_deny_action, ignore}
|
|
|
]).
|
|
|
|
|
|
all() -> emqx_ct:all(?MODULE).
|
|
|
|
|
|
-t_set_get_env(_) ->
|
|
|
+init_per_suite(Config) ->
|
|
|
_ = application:load(emqx),
|
|
|
- application:set_env(emqx, zones, [{external, ?OPTS}]),
|
|
|
- {ok, _} = emqx_zone:start_link(),
|
|
|
- ?assert(emqx_zone:get_env(external, enable_acl)),
|
|
|
- ?assertNot(emqx_zone:get_env(external, enable_banned)),
|
|
|
+ application:set_env(emqx, zone_env, val),
|
|
|
+ application:set_env(emqx, zones, [{zone, ?ENVS}]),
|
|
|
+ Config.
|
|
|
+
|
|
|
+end_per_suite(_Config) ->
|
|
|
+ application:unset_env(emqx, zone_env),
|
|
|
+ application:unset_env(emqx, zones).
|
|
|
+
|
|
|
+t_zone_env_func(_) ->
|
|
|
+ lists:foreach(fun({Env, Val}) ->
|
|
|
+ case erlang:function_exported(emqx_zone, Env, 1) of
|
|
|
+ true ->
|
|
|
+ ?assertEqual(Val, erlang:apply(emqx_zone, Env, [zone]));
|
|
|
+ false -> ok
|
|
|
+ end
|
|
|
+ end, ?ENVS).
|
|
|
+
|
|
|
+t_get_env(_) ->
|
|
|
+ ?assertEqual(val, emqx_zone:get_env(undefined, zone_env)),
|
|
|
+ ?assertEqual(val, emqx_zone:get_env(undefined, zone_env, def)),
|
|
|
+ ?assert(emqx_zone:get_env(zone, enable_acl)),
|
|
|
+ ?assert(emqx_zone:get_env(zone, enable_ban)),
|
|
|
?assertEqual(defval, emqx_zone:get_env(extenal, key, defval)),
|
|
|
?assertEqual(undefined, emqx_zone:get_env(external, key)),
|
|
|
?assertEqual(undefined, emqx_zone:get_env(internal, key)),
|
|
|
- ?assertEqual(def, emqx_zone:get_env(internal, key, def)),
|
|
|
- emqx_zone:stop().
|
|
|
+ ?assertEqual(def, emqx_zone:get_env(internal, key, def)).
|
|
|
+
|
|
|
+t_get_set_env(_) ->
|
|
|
+ ok = emqx_zone:set_env(zone, key, val),
|
|
|
+ ?assertEqual(val, emqx_zone:get_env(zone, key)),
|
|
|
+ true = emqx_zone:unset_env(zone, key),
|
|
|
+ ?assertEqual(undefined, emqx_zone:get_env(zone, key)).
|
|
|
|
|
|
t_force_reload(_) ->
|
|
|
{ok, _} = emqx_zone:start_link(),
|
|
|
- application:set_env(emqx, zones, [{zone, [{key, val}]}]),
|
|
|
- ?assertEqual(undefined, emqx_zone:get_env(zone, key)),
|
|
|
+ ?assertEqual(undefined, emqx_zone:get_env(xzone, key)),
|
|
|
+ application:set_env(emqx, zones, [{xzone, [{key, val}]}]),
|
|
|
ok = emqx_zone:force_reload(),
|
|
|
- ?assertEqual(val, emqx_zone:get_env(zone, key)),
|
|
|
+ ?assertEqual(val, emqx_zone:get_env(xzone, key)),
|
|
|
+ emqx_zone:stop().
|
|
|
+
|
|
|
+t_uncovered_func(_) ->
|
|
|
+ {ok, Pid} = emqx_zone:start_link(),
|
|
|
+ ignored = gen_server:call(Pid, unexpected_call),
|
|
|
+ ok = gen_server:cast(Pid, unexpected_cast),
|
|
|
+ ok = Pid ! ok,
|
|
|
emqx_zone:stop().
|
|
|
|