Pārlūkot izejas kodu

Fix and cleanup tests for multiple-sinks

Previously, would fail due to lager:get_loglevel/2 not being exported.
pull/264/head
Mark Allen pirms 10 gadiem
vecāks
revīzija
b8552a8cb6
1 mainītis faili ar 40 papildinājumiem un 41 dzēšanām
  1. +40
    -41
      test/lager_test_backend.erl

+ 40
- 41
test/lager_test_backend.erl Parādīt failu

@ -23,12 +23,11 @@
-export([init/1, handle_call/2, handle_event/2, handle_info/2, terminate/2,
code_change/3]).
-define(TEST_SINK, '__lager_test_sink').
-define(TEST_SINK_H, '__lager_test_sink_event').
-define(TEST_SINK_NAME, '__lager_test_sink'). %% <-- used by parse transform
-define(TEST_SINK_EVENT, '__lager_test_sink_event'). %% <-- used by lager API calls and internals for gen_event
-record(state, {level :: list(), buffer :: list(), ignored :: term()}).
-compile({parse_transform, lager_transform}).
%-compile([{parse_transform, lager_transform}]).
-ifdef(TEST).
-include_lib("eunit/include/eunit.hrl").
@ -593,15 +592,15 @@ extra_sinks_test_() ->
[
{"observe that there is nothing up my sleeve",
fun() ->
?assertEqual(undefined, pop(?TEST_SINK_H)),
?assertEqual(0, count(?TEST_SINK_H))
?assertEqual(undefined, pop(?TEST_SINK_EVENT)),
?assertEqual(0, count(?TEST_SINK_EVENT))
end
},
{"logging works",
fun() ->
?TEST_SINK:warning("test message"),
?assertEqual(1, count(?TEST_SINK_H)),
{Level, _Time, Message, _Metadata} = pop(?TEST_SINK_H),
?TEST_SINK_NAME:warning("test message"),
?assertEqual(1, count(?TEST_SINK_EVENT)),
{Level, _Time, Message, _Metadata} = pop(?TEST_SINK_EVENT),
?assertMatch(Level, lager_util:level_to_num(warning)),
?assertEqual("test message", Message),
ok
@ -609,9 +608,9 @@ extra_sinks_test_() ->
},
{"logging with arguments works",
fun() ->
?TEST_SINK:warning("test message ~p", [self()]),
?assertEqual(1, count(?TEST_SINK_H)),
{Level, _Time, Message,_Metadata} = pop(?TEST_SINK_H),
?TEST_SINK_NAME:warning("test message ~p", [self()]),
?assertEqual(1, count(?TEST_SINK_EVENT)),
{Level, _Time, Message,_Metadata} = pop(?TEST_SINK_EVENT),
?assertMatch(Level, lager_util:level_to_num(warning)),
?assertEqual(lists:flatten(io_lib:format("test message ~p", [self()])), lists:flatten(Message)),
ok
@ -619,29 +618,29 @@ extra_sinks_test_() ->
},
{"variables inplace of literals in logging statements work",
fun() ->
?assertEqual(0, count(?TEST_SINK_H)),
?assertEqual(0, count(?TEST_SINK_EVENT)),
Attr = [{a, alpha}, {b, beta}],
Fmt = "format ~p",
Args = [world],
?TEST_SINK:info(Attr, "hello"),
?TEST_SINK:info(Attr, "hello ~p", [world]),
?TEST_SINK:info(Fmt, [world]),
?TEST_SINK:info("hello ~p", Args),
?TEST_SINK:info(Attr, "hello ~p", Args),
?TEST_SINK:info([{d, delta}, {g, gamma}], Fmt, Args),
?assertEqual(6, count(?TEST_SINK_H)),
{_Level, _Time, Message, Metadata} = pop(?TEST_SINK_H),
?TEST_SINK_NAME:info(Attr, "hello"),
?TEST_SINK_NAME:info(Attr, "hello ~p", [world]),
?TEST_SINK_NAME:info(Fmt, [world]),
?TEST_SINK_NAME:info("hello ~p", Args),
?TEST_SINK_NAME:info(Attr, "hello ~p", Args),
?TEST_SINK_NAME:info([{d, delta}, {g, gamma}], Fmt, Args),
?assertEqual(6, count(?TEST_SINK_EVENT)),
{_Level, _Time, Message, Metadata} = pop(?TEST_SINK_EVENT),
?assertMatch([{a, alpha}, {b, beta}|_], Metadata),
?assertEqual("hello", lists:flatten(Message)),
{_Level, _Time2, Message2, _Metadata2} = pop(?TEST_SINK_H),
{_Level, _Time2, Message2, _Metadata2} = pop(?TEST_SINK_EVENT),
?assertEqual("hello world", lists:flatten(Message2)),
{_Level, _Time3, Message3, _Metadata3} = pop(?TEST_SINK_H),
{_Level, _Time3, Message3, _Metadata3} = pop(?TEST_SINK_EVENT),
?assertEqual("format world", lists:flatten(Message3)),
{_Level, _Time4, Message4, _Metadata4} = pop(?TEST_SINK_H),
{_Level, _Time4, Message4, _Metadata4} = pop(?TEST_SINK_EVENT),
?assertEqual("hello world", lists:flatten(Message4)),
{_Level, _Time5, Message5, _Metadata5} = pop(?TEST_SINK_H),
{_Level, _Time5, Message5, _Metadata5} = pop(?TEST_SINK_EVENT),
?assertEqual("hello world", lists:flatten(Message5)),
{_Level, _Time6, Message6, Metadata6} = pop(?TEST_SINK_H),
{_Level, _Time6, Message6, Metadata6} = pop(?TEST_SINK_EVENT),
?assertMatch([{d, delta}, {g, gamma}|_], Metadata6),
?assertEqual("format world", lists:flatten(Message6)),
ok
@ -649,20 +648,20 @@ extra_sinks_test_() ->
},
{"log messages below the threshold are ignored",
fun() ->
?assertEqual(0, count(?TEST_SINK_H)),
?TEST_SINK:debug("this message will be ignored"),
?assertEqual(0, count(?TEST_SINK_H)),
?assertEqual(0, count_ignored(?TEST_SINK_H)),
lager_config:set({?TEST_SINK, loglevel}, {element(2, lager_util:config_to_mask(debug)), []}),
?TEST_SINK:debug("this message should be ignored"),
?assertEqual(0, count(?TEST_SINK_H)),
%?assertEqual(1, count_ignored(?TEST_SINK_H)),
lager:set_loglevel(?TEST_SINK_H, ?MODULE, undefined, debug),
?assertEqual({?DEBUG bor ?INFO bor ?NOTICE bor ?WARNING bor ?ERROR bor ?CRITICAL bor ?ALERT bor ?EMERGENCY, []}, lager_config:get({?TEST_SINK, loglevel})),
?TEST_SINK:debug("this message should be logged"),
?assertEqual(1, count(?TEST_SINK_H)),
?assertEqual(1, count_ignored(?TEST_SINK_H)),
?assertEqual(debug, lager:get_loglevel(?TEST_SINK, ?MODULE)),
?assertEqual(0, count(?TEST_SINK_EVENT)),
?TEST_SINK_NAME:debug("this message will be ignored"),
?assertEqual(0, count(?TEST_SINK_EVENT)),
?assertEqual(0, count_ignored(?TEST_SINK_EVENT)),
lager_config:set({?TEST_SINK_EVENT, loglevel}, {element(2, lager_util:config_to_mask(debug)), []}),
?TEST_SINK_NAME:debug("this message should be ignored"),
?assertEqual(0, count(?TEST_SINK_EVENT)),
?assertEqual(1, count_ignored(?TEST_SINK_EVENT)),
lager:set_loglevel(?TEST_SINK_EVENT, ?MODULE, undefined, debug),
?assertEqual({?DEBUG bor ?INFO bor ?NOTICE bor ?WARNING bor ?ERROR bor ?CRITICAL bor ?ALERT bor ?EMERGENCY, []}, lager_config:get({?TEST_SINK_EVENT, loglevel})),
?TEST_SINK_NAME:debug("this message should be logged"),
?assertEqual(1, count(?TEST_SINK_EVENT)),
?assertEqual(1, count_ignored(?TEST_SINK_EVENT)),
?assertEqual(debug, lager:get_loglevel(?TEST_SINK_EVENT, ?MODULE)),
ok
end
}
@ -674,10 +673,10 @@ setup_sink() ->
application:load(lager),
application:set_env(lager, handlers, []),
application:set_env(lager, error_logger_redirect, false),
application:set_env(lager, extra_sinks, [{?TEST_SINK_H, [{handlers, [{?MODULE, info}]}]}]),
application:set_env(lager, extra_sinks, [{?TEST_SINK_EVENT, [{handlers, [{?MODULE, info}]}]}]),
lager:start(),
gen_event:call(lager_event, ?MODULE, flush),
gen_event:call(?TEST_SINK_H, ?MODULE, flush).
gen_event:call(?TEST_SINK_EVENT, ?MODULE, flush).
setup() ->
error_logger:tty(false),

Notiek ielāde…
Atcelt
Saglabāt