浏览代码

Add tests for stopping traces gh#267

pull/306/head
Mark Allen 9 年前
父节点
当前提交
0fb72d7744
共有 1 个文件被更改,包括 66 次插入0 次删除
  1. +66
    -0
      test/lager_test_backend.erl

+ 66
- 0
test/lager_test_backend.erl 查看文件

@ -536,6 +536,39 @@ lager_test_() ->
ok ok
end end
}, },
{"stopped trace stops and removes its event handler - default sink (gh#267)",
fun() ->
Sink = ?DEFAULT_SINK,
StartHandlers = gen_event:which_handlers(Sink),
{_, T0} = lager_config:get({Sink, loglevel}),
StartGlobal = lager_config:global_get(handlers),
?assertEqual([], T0),
{ok, TestTrace1} = lager:trace_file("/tmp/test", [{a,b}]),
MidHandlers = gen_event:which_handlers(Sink),
{ok, TestTrace2} = lager:trace_file("/tmp/test", [{c,d}]),
MidHandlers = gen_event:which_handlers(Sink),
?assertEqual(length(StartHandlers)+1, length(MidHandlers)),
MidGlobal = lager_config:global_get(handlers),
?assertEqual(length(StartGlobal)+1, length(MidGlobal)),
{_, T1} = lager_config:get({Sink, loglevel}),
?assertEqual(2, length(T1)),
ok = lager:stop_trace(TestTrace1),
{_, T2} = lager_config:get({Sink, loglevel}),
?assertEqual(1, length(T2)),
?assertEqual(length(StartHandlers)+1, length(
gen_event:which_handlers(Sink))),
?assertEqual(length(StartGlobal)+1, length(lager_config:global_get(handlers))),
ok = lager:stop_trace(TestTrace2),
EndHandlers = gen_event:which_handlers(?DEFAULT_SINK),
EndGlobal = lager_config:global_get(handlers),
{_, T3} = lager_config:get({Sink, loglevel}),
?assertEqual([], T3),
?assertEqual(StartHandlers, EndHandlers),
?assertEqual(StartGlobal, EndGlobal),
ok
end
},
{"record printing works", {"record printing works",
fun() -> fun() ->
print_state(), print_state(),
@ -691,6 +724,39 @@ extra_sinks_test_() ->
ok ok
end end
}, },
{"stopped trace stops and removes its event handler - test sink (gh#267)",
fun() ->
Sink = ?TEST_SINK_EVENT,
StartHandlers = gen_event:which_handlers(Sink),
{_, T0} = lager_config:get({Sink, loglevel}),
StartGlobal = lager_config:global_get(handlers),
?assertEqual([], T0),
{ok, TestTrace1} = lager:trace_file("/tmp/test", [{sink, Sink}, {a,b}]),
MidHandlers = gen_event:which_handlers(Sink),
{ok, TestTrace2} = lager:trace_file("/tmp/test", [{sink, Sink}, {c,d}]),
MidHandlers = gen_event:which_handlers(Sink),
?assertEqual(length(StartHandlers)+1, length(MidHandlers)),
MidGlobal = lager_config:global_get(handlers),
?assertEqual(length(StartGlobal)+1, length(MidGlobal)),
{_, T1} = lager_config:get({Sink, loglevel}),
?assertEqual(2, length(T1)),
ok = lager:stop_trace(TestTrace1),
{_, T2} = lager_config:get({Sink, loglevel}),
?assertEqual(1, length(T2)),
?assertEqual(length(StartHandlers)+1, length(
gen_event:which_handlers(Sink))),
?assertEqual(length(StartGlobal)+1, length(lager_config:global_get(handlers))),
ok = lager:stop_trace(TestTrace2),
EndHandlers = gen_event:which_handlers(Sink),
EndGlobal = lager_config:global_get(handlers),
{_, T3} = lager_config:get({Sink, loglevel}),
?assertEqual([], T3),
?assertEqual(StartHandlers, EndHandlers),
?assertEqual(StartGlobal, EndGlobal),
ok
end
},
{"log messages below the threshold are ignored", {"log messages below the threshold are ignored",
fun() -> fun() ->
?assertEqual(0, count(?TEST_SINK_EVENT)), ?assertEqual(0, count(?TEST_SINK_EVENT)),

正在加载...
取消
保存