Skip to content

Commit 30ed7be

Browse files
committed
Merge pull request #111 from esl/bugfix-get-loglevel
Test `mongooseimctl get_loglevel` command
2 parents 862db1d + dda9774 commit 30ed7be

File tree

1 file changed

+46
-2
lines changed

1 file changed

+46
-2
lines changed

tests/ejabberdctl_SUITE.erl

+46-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@
1919
-include_lib("escalus/include/escalus.hrl").
2020
-include_lib("common_test/include/ct.hrl").
2121
-include_lib("exml/include/exml.hrl").
22+
-include_lib("eunit/include/eunit.hrl").
23+
24+
-define(i2l(I), integer_to_list(I)).
25+
-define(a2l(A), atom_to_list(A)).
26+
-define(eq(Expected, Actual), ?assertEqual(Expected, Actual)).
2227

2328
-import(mongoose_helper, [auth_modules/0]).
2429

@@ -40,7 +45,8 @@ all() ->
4045
{group, last},
4146
{group, private},
4247
{group, stanza},
43-
{group, stats}
48+
{group, stats},
49+
{group, maintenance}
4450
]
4551
end.
4652

@@ -53,7 +59,8 @@ groups() ->
5359
{last, [sequence], last()},
5460
{private, [sequence], private()},
5561
{stanza, [sequence], stanza()},
56-
{stats, [sequence], stats()}
62+
{stats, [sequence], stats()},
63+
{maintenance, [sequence], maintenance()}
5764
].
5865

5966
accounts() -> [change_password, check_password_hash, check_password,
@@ -76,6 +83,8 @@ stanza() -> [send_message, send_stanza].
7683

7784
stats() -> [stats_global, stats_host].
7885

86+
maintenance() -> [loglevels].
87+
7988
suite() ->
8089
escalus:suite().
8190

@@ -592,6 +601,32 @@ stats_host(Config) ->
592601
{"0\n", 0} = ejabberdctl("stats_host", ["onlineusers", SecDomain], Config)
593602
end).
594603

604+
%%-----------------------------------------------------------------
605+
%% mongooseimctl maintenance commands (start, started, stop, ...)
606+
%%-----------------------------------------------------------------
607+
608+
loglevels(C) ->
609+
%% setup
610+
NC = escalus_ejabberd:setup_option(server_loglevel(), C),
611+
try
612+
[ loglevel(C, Level, Atom)
613+
|| {Level, Atom} <- [{0, none},
614+
{1, critical},
615+
{2, error},
616+
{3, warning},
617+
{4, info},
618+
{5, debug}] ]
619+
after
620+
%% cleanup
621+
escalus_ejabberd:reset_option(server_loglevel(), NC)
622+
end.
623+
624+
loglevel(C, Level, Atom) ->
625+
Control = escalus_config:get_config(ctl_path, C),
626+
ok = escalus_ejabberd:rpc(ejabberd_loglevel, set, [Level]),
627+
Result = os:cmd([Control, " ", "get_loglevel"]),
628+
?eq(textual_loglevel(Level, Atom), Result).
629+
595630
%%-----------------------------------------------------------------
596631
%% Helpers
597632
%%-----------------------------------------------------------------
@@ -709,3 +744,12 @@ match_roster(ItemsValid, Items) ->
709744
false
710745
end, ItemsTokens)
711746
end, ItemsValid).
747+
748+
textual_loglevel(Level, Atom) ->
749+
lists:flatten([?i2l(Level), $\t, ?a2l(Atom), $\n]).
750+
751+
server_loglevel() ->
752+
{server_loglevel,
753+
fun () -> element(1, escalus_ejabberd:rpc(ejabberd_loglevel, get, [])) end,
754+
fun (Level) -> escalus_ejabberd:rpc(ejabberd_loglevel, set, [Level]) end,
755+
4}.

0 commit comments

Comments
 (0)