diff --git a/test/lager_test_backend.erl b/test/lager_test_backend.erl index 459f8ed..75d37f9 100644 --- a/test/lager_test_backend.erl +++ b/test/lager_test_backend.erl @@ -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),