diff options
Diffstat (limited to 'src/couch_log/test/eunit/couch_log_writer_syslog_test.erl')
-rw-r--r-- | src/couch_log/test/eunit/couch_log_writer_syslog_test.erl | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/couch_log/test/eunit/couch_log_writer_syslog_test.erl b/src/couch_log/test/eunit/couch_log_writer_syslog_test.erl index 5a3f89520..19d2826ec 100644 --- a/src/couch_log/test/eunit/couch_log_writer_syslog_test.erl +++ b/src/couch_log/test/eunit/couch_log_writer_syslog_test.erl @@ -31,6 +31,12 @@ couch_log_writer_syslog_test_() -> [{gen_udp, [unstick]}], fun check_udp_send/0 ) + end, + fun() -> + couch_log_test_util:with_meck( + [{gen_udp, [unstick]}], + fun check_format/0 + ) end ]}. @@ -81,6 +87,40 @@ check_udp_send() -> ?assert(meck:called(gen_udp, close, 1)), ?assert(meck:validate(gen_udp)). +check_format() -> + meck:expect(gen_udp, open, 1, {ok, socket}), + meck:expect(gen_udp, send, 4, ok), + meck:expect(gen_udp, close, fun(socket) -> ok end), + config:set("log", "syslog_host", "localhost"), + config:set("log", "syslog_enterprise_number", "12345"), + try + Entry = #log_entry{ + level = report, + pid = list_to_pid("<0.1.0>"), + msg = ["[", "foo=1", "]"], + msg_id = "msg_id", + time_stamp = "time_stamp", + type = report123 + }, + {ok, St} = ?WRITER:init(), + {ok, NewSt} = ?WRITER:write(Entry, St), + ok = ?WRITER:terminate(stop, NewSt) + after + config:delete("log", "syslog_host") + end, + + ?assert(meck:called(gen_udp, open, 1)), + Packet = lists:flatten(meck:capture(first, gen_udp, send, '_', 4)), + [SeverityAndVsn, TS, _Host, AppId, Pid, MsgId, _ | Rest] = string:split(Packet, " ", all), + ?assertEqual("<150>1", SeverityAndVsn), + ?assertEqual("time_stamp", TS), + ?assertEqual("couchdb", AppId), + ?assertEqual("msg_id", MsgId), + ?assert(is_pid(catch list_to_pid(Pid))), + ?assertEqual("[report123-DB@12345 foo=1]\n", string:join(Rest, " ")), + ?assert(meck:called(gen_udp, close, 1)), + ?assert(meck:validate(gen_udp)). + facility_test() -> Names = [ "kern", |