1: -module(syslogger_SUITE). 2: 3: -export([all/0, 4: init_per_suite/1, 5: end_per_suite/1, 6: init_per_testcase/2, 7: end_per_testcase/2]). 8: 9: -export([syslogger_is_used_to_log/1]). 10: 11: -include_lib("common_test/include/ct.hrl"). 12: -include_lib("eunit/include/eunit.hrl"). 13: 14: -define(HANDLER_ID, sys_log). 15: -define(IDENT, "mongooseim"). 16: -define(FACILITY, local0). 17: 18: all() -> 19: [syslogger_is_used_to_log 20: ]. 21: 22: init_per_suite(Config) -> 23: LoggerConfig = logger:get_primary_config(), 24: case logger:compare_levels(info, maps:get(level, LoggerConfig)) of 25: lt -> logger:set_primary_config(level, info); 26: _ -> ok 27: end, 28: 29: setup_meck(), 30: ok = mongoose_logger_running(), 31: 32: [{logger_primary_config, LoggerConfig} | Config]. 33: 34: end_per_suite(Config) -> 35: logger:remove_handler(?HANDLER_ID), 36: logger:set_primary_config(?config(logger_primary_config, Config)), 37: 38: unload_meck(), 39: ok. 40: 41: init_per_testcase(_TC, Config) -> 42: meck:reset(syslogger), 43: Config. 44: 45: end_per_testcase(_TC, _Config) -> 46: ok. 47: 48: %% 49: %% Tests 50: %% 51: syslogger_is_used_to_log(_Config) -> 52: logger:log(error, "Something for syslogger"), 53: 54: ?assert(meck:validate(syslogger)), 55: ok = meck:wait(syslogger, log, [#{level => error, 56: msg => {string, "Something for syslogger"}, 57: meta => '_'}, 58: #{id => ?HANDLER_ID, ident => ?IDENT, facility => ?FACILITY}], 59: timer:seconds(1)). 60: 61: %% 62: %% Helpers 63: %% 64: 65: setup_meck() -> 66: meck:new(syslogger, [no_link]), 67: meck:expect(syslogger, adding_handler, 68: fun(C) -> 69: {ok, C} 70: end), 71: meck:expect(syslogger, log, 72: fun(_LogEvent, _Config) -> 73: ok 74: end). 75: 76: mongoose_logger_running() -> 77: HandlerID = ?HANDLER_ID, 78: HandlerModule = syslogger, 79: HandlerConfig = #{level => info, 80: formatter => {logger_formatter, #{single_line => true}}, 81: config => {log_opts, [cons, pid, perror]}, 82: ident => ?IDENT, 83: facility => ?FACILITY}, 84: ok = logger:add_handler(HandlerID, HandlerModule, HandlerConfig). 85: 86: unload_meck() -> 87: meck:unload(syslogger).