File 0222-erts-Do-not-print-verbose-error-log-messages-in-test.patch of Package erlang

From 7dbdd9d7da4a1895a557ac650d0530c6411f118b Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Mon, 10 Jan 2022 11:07:59 +0100
Subject: [PATCH 2/2] erts: Do not print verbose error log messages in test

We add a logger filter that removes the verbose error log
messages from the driver_SUITE. The log messages will still
be in the html logs, they just wont be printed to stdout.
---
 erts/emulator/sys/common/erl_check_io.c |  8 ++------
 erts/emulator/test/driver_SUITE.erl     | 17 ++++++++++++++++-
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/erts/emulator/sys/common/erl_check_io.c b/erts/emulator/sys/common/erl_check_io.c
index e5aa36251d..2106b34dd4 100644
--- a/erts/emulator/sys/common/erl_check_io.c
+++ b/erts/emulator/sys/common/erl_check_io.c
@@ -2955,12 +2955,8 @@ erts_check_io_debug(ErtsCheckIoDebugInfo *ciodip)
     erts_dsprintf(dsbufp, "internal fds=%d\n", counters.internal_fds);
 #endif
     erts_dsprintf(dsbufp, "---------------------------------------------------------\n");
-    if (counters.num_errors > 0)
-        erts_send_error_to_logger_nogl(dsbufp);
-    else {
-        erts_free(ERTS_ALC_T_LOGGER_DSBUF, (void *) dsbufp->str);
-        erts_free(ERTS_ALC_T_LOGGER_DSBUF, (void *) dsbufp);
-    }
+
+    erts_send_error_to_logger_nogl(dsbufp);
 #ifdef ERTS_SYS_CONTINOUS_FD_NUMBERS
     erts_free(ERTS_ALC_T_TMP, (void *) counters.epep);
 #endif
diff --git a/erts/emulator/test/driver_SUITE.erl b/erts/emulator/test/driver_SUITE.erl
index 4fb177a116..40973625c2 100644
--- a/erts/emulator/test/driver_SUITE.erl
+++ b/erts/emulator/test/driver_SUITE.erl
@@ -123,7 +123,7 @@
 -define(heap_binary_size, 64).
 
 suite() ->
-    [{ct_hooks,[ts_install_cth]},
+    [{ct_hooks,[cth_log_redirect,ts_install_cth]},
      {timetrap, {minutes, 1}}].
 
 all() -> %% Keep a_test first and z_test last...
@@ -171,9 +171,24 @@ groups() ->
        ioq_exit_timeout_async]}].
 
 init_per_suite(Config) ->
+    logger:add_handler_filter(default,
+      checkio_filter,
+      {fun F(#{ msg := {string,Str}} = Log, _State) ->
+               case re:run(Str,"(fds in pollset)|(Bad value on output port)") of
+                   {match,_} ->
+                       stop;
+                   _ ->
+                       Log
+               end;
+           F(#{ msg := {Fmt,Args}} = Log, State) when not is_atom(Fmt) ->
+               F(Log#{ msg := {string,io_lib:format(Fmt,Args)}}, State);
+           F(Log, _State) ->
+               Log
+       end, undefined}),
     Config.
 
 end_per_suite(_Config) ->
+    logger:remove_handler_filter(default, checkio_filter),
     catch erts_debug:set_internal_state(available_internal_state, false).
 
 init_per_group(poll_thread, Config) ->
-- 
2.31.1

openSUSE Build Service is sponsored by