Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
6511-Check-for-logger-error-events.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 6511-Check-for-logger-error-events.patch of Package erlang
From a2a418277f31c2999adf0673a66c202a9130feb6 Mon Sep 17 00:00:00 2001 From: Raimo Niskanen <raimo@erlang.org> Date: Thu, 10 Aug 2023 10:33:14 +0200 Subject: [PATCH] Check for logger error events --- lib/inets/test/httpd_SUITE.erl | 68 ++++++++++++++++++++++++++++++---- 1 file changed, 61 insertions(+), 7 deletions(-) diff --git a/lib/inets/test/httpd_SUITE.erl b/lib/inets/test/httpd_SUITE.erl index 1df6251d41..7e94c7af60 100644 --- a/lib/inets/test/httpd_SUITE.erl +++ b/lib/inets/test/httpd_SUITE.erl @@ -1590,6 +1590,7 @@ disturbing_1_0(Config) when is_list(Config) -> disturbing([{http_version, "HTTP/1.0"} | Config]). disturbing(Config) when is_list(Config)-> + LogWatcher = start_log_watcher(), Server = proplists:get_value(server_pid, Config), Version = proplists:get_value(http_version, Config), Host = proplists:get_value(host, Config), @@ -1606,12 +1607,13 @@ disturbing(Config) when is_list(Config)-> Close = list_to_atom((typestr(Type)) ++ "_closed"), receive {Close, Socket} -> - ok; - Msg -> - ct:fail({{expected, {Close, Socket}}, {got, Msg}}) - end, - inets_test_lib:close(Type, Socket), - [{server_name, "httpd_disturbing_" ++ Version}] = httpd:info(Server, [server_name]). + inets_test_lib:close(Type, Socket), + [{server_name, "httpd_disturbing_" ++ Version}] = + httpd:info(Server, [server_name]), + [] = stop_log_watcher(LogWatcher), + [] = inets_test_lib:flush(), + ok + end. %%------------------------------------------------------------------------- non_disturbing_1_1(Config) when is_list(Config) -> non_disturbing([{http_version, "HTTP/1.1"} | Config]). @@ -1671,7 +1673,6 @@ reload_config_file(Config) when is_list(Config) -> ok = file:write_file(HttpdConf, NewConfig), ok = httpd:reload_config(HttpdConf, non_disturbing), "httpd_test_new" = proplists:get_value(server_name, httpd:info(Server)). - %%------------------------------------------------------------------------- mime_types_format(Config) when is_list(Config) -> DataDir = proplists:get_value(data_dir, Config), @@ -2645,3 +2646,56 @@ peer(Config) -> _ -> "false" end. + +start_log_watcher() -> + Spawner = self(), + EventDest = erlang:alias(), + HandlerId = ?MODULE, + _ = + spawn( + fun () -> + MonAlias = + monitor(process, Spawner, [{alias,reply_demonitor}]), + EventDest ! {started,EventDest,MonAlias}, + receive + {stop,MonAlias} -> + _ = logger:remove_handler(HandlerId), + EventDest ! {stopped,EventDest}, + ok; + {'DOWN',MonAlias,_,_,_} -> + _ = logger:remove_handler(HandlerId), + ok + end + end), + receive + {started,EventDest,Watcher} -> + Config = #{ config => EventDest }, + ok = logger:add_handler(HandlerId, ?MODULE, Config), + {EventDest,Watcher} + end. + +stop_log_watcher({EventDest,Watcher}) -> + Watcher ! {stop,Watcher}, + receive + {stopped,EventDest} -> + true = unalias(EventDest), + stop_log_watcher_collect(EventDest) + end. +%% +stop_log_watcher_collect(EventDest) -> + receive + {event,EventDest,Event} -> + [Event | stop_log_watcher_collect(EventDest)] + after 0 -> + [] + end. + +log(#{level := Level} = Event, #{ config := EventDest }) -> + %% Pass on events of level 'error' or worse + case logger:compare_levels(Level, error) of + lt -> + ok; + _ -> + EventDest ! {event,EventDest,Event}, + ok + end. -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor