瀏覽代碼

More tests

pull/4/head
Andrew Thompson 14 年之前
父節點
當前提交
b65e005ebe
共有 1 個檔案被更改,包括 27 行新增3 行删除
  1. +27
    -3
      test/lager_test_backend.erl

+ 27
- 3
test/lager_test_backend.erl 查看文件

@ -21,7 +21,7 @@
-export([init/1, handle_call/2, handle_event/2, handle_info/2, terminate/2, -export([init/1, handle_call/2, handle_event/2, handle_info/2, terminate/2,
code_change/3]). code_change/3]).
-record(state, {level, buffer}).
-record(state, {level, buffer, ignored}).
-compile([{parse_transform, lager_transform}]). -compile([{parse_transform, lager_transform}]).
-ifdef(TEST). -ifdef(TEST).
@ -29,10 +29,12 @@
-endif. -endif.
init([Level]) -> init([Level]) ->
{ok, #state{level=lager_util:level_to_num(Level), buffer=[]}}.
{ok, #state{level=lager_util:level_to_num(Level), buffer=[], ignored=[]}}.
handle_call(count, #state{buffer=Buffer} = State) -> handle_call(count, #state{buffer=Buffer} = State) ->
{ok, length(Buffer), State}; {ok, length(Buffer), State};
handle_call(count_ignored, #state{ignored=Ignored} = State) ->
{ok, length(Ignored), State};
handle_call(pop, #state{buffer=Buffer} = State) -> handle_call(pop, #state{buffer=Buffer} = State) ->
case Buffer of case Buffer of
[] -> [] ->
@ -50,6 +52,8 @@ handle_call(_Request, State) ->
handle_event({log, Level, Time, Message}, #state{level=LogLevel, handle_event({log, Level, Time, Message}, #state{level=LogLevel,
buffer=Buffer} = State) when Level >= LogLevel -> buffer=Buffer} = State) when Level >= LogLevel ->
{ok, State#state{buffer=Buffer ++ [{Level, Time, Message}]}}; {ok, State#state{buffer=Buffer ++ [{Level, Time, Message}]}};
handle_event({log, Level, Time, Message}, #state{ignored=Ignored} = State) ->
{ok, State#state{ignored=Ignored ++ [ignored]}};
handle_event(_Event, State) -> handle_event(_Event, State) ->
{ok, State}. {ok, State}.
@ -70,6 +74,9 @@ pop() ->
count() -> count() ->
gen_event:call(lager_event, lager_test_backend, count). gen_event:call(lager_event, lager_test_backend, count).
count_ignored() ->
gen_event:call(lager_event, lager_test_backend, count_ignored).
lager_test_() -> lager_test_() ->
{foreach, {foreach,
fun setup/0, fun setup/0,
@ -105,7 +112,6 @@ lager_test_() ->
ok ok
end end
}, },
{"test logging works from inside a begin/end block", {"test logging works from inside a begin/end block",
fun() -> fun() ->
?assertEqual(0, count()), ?assertEqual(0, count()),
@ -140,6 +146,24 @@ lager_test_() ->
?assertEqual(100, count()), ?assertEqual(100, count()),
ok ok
end end
},
{"log messages below the threshold are ignored",
fun() ->
?assertEqual(0, count()),
lager:debug("this message will be ignored"),
?assertEqual(0, count()),
?assertEqual(0, count_ignored()),
lager_mochiglobal:put(loglevel, 0),
lager:debug("this message should be ignored"),
?assertEqual(0, count()),
?assertEqual(1, count_ignored()),
lager:set_loglevel(lager_test_backend, debug),
lager:debug("this message should be logged"),
?assertEqual(1, count()),
?assertEqual(1, count_ignored()),
?assertEqual(debug, lager:get_loglevel(lager_test_backend)),
ok
end
} }
] ]
}. }.

Loading…
取消
儲存