From a055308668d007cdd6795ab42b8530efa2e49a95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Thu, 28 Apr 2022 11:37:59 +0100 Subject: [PATCH] tests: don't set G_DEBUG=fatal-warnings on macOS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On macOS when BROKEN_POLL is set in GLib, our tests will periodically trigger a warning: (process:50880): GLib-WARNING **: 02:54:15.272: poll(2) failed due to: Bad file descriptor. Our code is inherantly racy, calling g_source_destroy which removes the FD from the event thread poll asynchronously but we close the FD immediately after g_source_destroy returns. With poll() this results in POLLNVAL which we're ignoring, but with select() it generates the BADF error on macOS. We need to ignore the warnings on macOS to avoid abort()ing our test programs. Closes: https://gitlab.com/libvirt/libvirt/-/issues/303 Reviewed-by: Peter Krempa Signed-off-by: Daniel P. Berrangé --- build-aux/syntax-check.mk | 2 +- tests/meson.build | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk index a6e3ada300..66ebc3e066 100644 --- a/build-aux/syntax-check.mk +++ b/build-aux/syntax-check.mk @@ -1712,7 +1712,7 @@ exclude_file_name_regexp--sc_prohibit_backslash_alignment = \ ^build-aux/syntax-check\.mk$$ exclude_file_name_regexp--sc_prohibit_select = \ - ^build-aux/syntax-check\.mk|src/util/vireventglibwatch\.c$$ + ^build-aux/syntax-check\.mk|src/util/vireventglibwatch\.c|tests/meson\.build$$ exclude_file_name_regexp--sc_prohibit_config_h_in_headers = \ ^config\.h$$ diff --git a/tests/meson.build b/tests/meson.build index fd78d8a2fd..08d2ae67cb 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -39,9 +39,24 @@ tests_env = [ 'abs_top_srcdir=@0@'.format(meson.source_root()), 'LC_ALL=C', 'LIBVIRT_AUTOSTART=0', - 'G_DEBUG=fatal-warnings', ] + +# On macOS when BROKEN_POLL is set for GLib, our tests will +# periodically trigger a warning: +# +# (process:50880): GLib-WARNING **: 02:54:15.272: poll(2) failed due to: Bad file descriptor. +# +# Our code is inherantly racy, calling g_source_destroy which +# removes the FD from the event thread poll asynchronously +# but we close the FD immediately after g_source_destroy returns. +# +# With poll() this results in POLLNVAL, but with select() it +# generates the BADF error on macOS +if host_machine.system() != 'darwin' + tests_env += ['G_DEBUG=fatal-warnings'] +endif + if use_expensive_tests tests_env += 'VIR_TEST_EXPENSIVE=1' else