瀏覽代碼

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,
code_change/3]).
-record(state, {level, buffer}).
-record(state, {level, buffer, ignored}).
-compile([{parse_transform, lager_transform}]).
-ifdef(TEST).
@ -29,10 +29,12 @@
-endif.
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) ->
{ok, length(Buffer), State};
handle_call(count_ignored, #state{ignored=Ignored} = State) ->
{ok, length(Ignored), State};
handle_call(pop, #state{buffer=Buffer} = State) ->
case Buffer of
[] ->
@ -50,6 +52,8 @@ handle_call(_Request, State) ->
handle_event({log, Level, Time, Message}, #state{level=LogLevel,
buffer=Buffer} = State) when Level >= LogLevel ->
{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) ->
{ok, State}.
@ -70,6 +74,9 @@ pop() ->
count() ->
gen_event:call(lager_event, lager_test_backend, count).
count_ignored() ->
gen_event:call(lager_event, lager_test_backend, count_ignored).
lager_test_() ->
{foreach,
fun setup/0,
@ -105,7 +112,6 @@ lager_test_() ->
ok
end
},
{"test logging works from inside a begin/end block",
fun() ->
?assertEqual(0, count()),
@ -140,6 +146,24 @@ lager_test_() ->
?assertEqual(100, count()),
ok
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…
取消
儲存