[PATCH core-updates-frozen] gnu: glib: Skip ‘testfilemonitor’ test.
(address . guix-patches@gnu.org)(name . Thiago Jung Bauermann)(address . bauermann@kolabnow.com)
On powerpc64le-linux, it fails approximately 2 out of 3 times. On x86_64 it
also fails every now and then, at least on glib’s CI.
* gnu/packages/patches/glib-testfilemonitor-Skip-if-we-are-avoiding-flaky-tests.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Add new patch.
* gnu/packages/glib.scm: Use it.
---
Hello,
Since glib was recently updated on core-updates frozen, it stopped building
on powerpc64le-linux because of this test failure. I noticed the issue while
testing `guix pull` from the branch and the pull failed due to this problem.
It turns out Debian has a patch addressing exactly this, so let’s use it
too.
Unfortunately, `guix pull` still fails on powerpc64le-linux because the Guix
package recently started to depend on MariaDB, which unfortunately I t think
never built successfuly on this platform due to testsuite failures.
gnu/local.mk | 1 +
gnu/packages/glib.scm | 3 +-
...-Skip-if-we-are-avoiding-flaky-tests.patch | 111 ++++++++++++++++++
3 files changed, 114 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/glib-testfilemonitor-Skip-if-we-are-avoiding-flaky-tests.patch
Toggle diff (143 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index dfb9e50b7369..e4d66c833643 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1124,6 +1124,7 @@ dist_patch_DATA = \
%D%/packages/patches/glib-appinfo-watch.patch \
%D%/packages/patches/glib-networking-gnutls-binding.patch \
%D%/packages/patches/glib-skip-failing-test.patch \
+ %D%/packages/patches/glib-testfilemonitor-Skip-if-we-are-avoiding-flaky-tests.patch \
%D%/packages/patches/glibc-CVE-2018-11236.patch \
%D%/packages/patches/glibc-CVE-2018-11237.patch \
%D%/packages/patches/glibc-CVE-2019-7309.patch \
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 6373fd0da9d1..9fc46b2101b1 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -190,7 +190,8 @@ shared NFS home directories.")
(base32 "0f1iprj7v0b5wn9njj39dkl25g6filfs7i4ybk20jq821k1a7qg7"))
(patches
(search-patches "glib-appinfo-watch.patch"
- "glib-skip-failing-test.patch"))
+ "glib-skip-failing-test.patch"
+ "glib-testfilemonitor-Skip-if-we-are-avoiding-flaky-tests.patch"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/patches/glib-testfilemonitor-Skip-if-we-are-avoiding-flaky-tests.patch b/gnu/packages/patches/glib-testfilemonitor-Skip-if-we-are-avoiding-flaky-tests.patch
new file mode 100644
index 000000000000..3feaa75bd0e7
--- /dev/null
+++ b/gnu/packages/patches/glib-testfilemonitor-Skip-if-we-are-avoiding-flaky-tests.patch
@@ -0,0 +1,111 @@
+On powerpc64le-linux, testfilemonitor fails approximately 2 out of 3 times.
+Patch obtained from:
+
+https://sources.debian.org/patches/glib2.0/2.66.8-1/debian/testfilemonitor-Skip-if-we-are-avoiding-flaky-tests.patch/
+
+From: Simon McVittie <smcv@debian.org>
+Date: Tue, 25 Feb 2020 10:45:07 +0000
+Subject: testfilemonitor: Skip if we are avoiding flaky tests
+
+See https://gitlab.gnome.org/GNOME/glib/issues/1634
+
+Signed-off-by: Simon McVittie <smcv@debian.org>
+Forwarded: no
+---
+ gio/tests/testfilemonitor.c | 34 +++++++++++++++++++++++++++++++++-
+ 1 file changed, 33 insertions(+), 1 deletion(-)
+
+diff --git a/gio/tests/testfilemonitor.c b/gio/tests/testfilemonitor.c
+index b74dc2b..79b5776 100644
+--- a/gio/tests/testfilemonitor.c
++++ b/gio/tests/testfilemonitor.c
+@@ -21,6 +21,12 @@ setup (Fixture *fixture,
+ gchar *path = NULL;
+ GError *local_error = NULL;
+
++ if (g_getenv ("DEB_ALLOW_FLAKY_TESTS") == NULL)
++ {
++ g_test_skip ("https://gitlab.gnome.org/GNOME/glib/issues/1634");
++ return;
++ }
++
+ path = g_dir_make_tmp ("gio-test-testfilemonitor_XXXXXX", &local_error);
+ g_assert_no_error (local_error);
+
+@@ -37,7 +43,9 @@ teardown (Fixture *fixture,
+ {
+ GError *local_error = NULL;
+
+- g_file_delete (fixture->tmp_dir, NULL, &local_error);
++ if (fixture->tmp_dir != NULL)
++ g_file_delete (fixture->tmp_dir, NULL, &local_error);
++
+ g_assert_no_error (local_error);
+ g_clear_object (&fixture->tmp_dir);
+ }
+@@ -360,6 +368,10 @@ test_atomic_replace (Fixture *fixture,
+ GError *error = NULL;
+ TestData data;
+
++ /* respect g_test_skip() during setup() */
++ if (g_test_failed ())
++ return;
++
+ data.step = 0;
+ data.events = NULL;
+
+@@ -465,6 +477,10 @@ test_file_changes (Fixture *fixture,
+ GError *error = NULL;
+ TestData data;
+
++ /* respect g_test_skip() during setup() */
++ if (g_test_failed ())
++ return;
++
+ data.step = 0;
+ data.events = NULL;
+
+@@ -582,6 +598,10 @@ test_dir_monitor (Fixture *fixture,
+ GError *error = NULL;
+ TestData data;
+
++ /* respect g_test_skip() during setup() */
++ if (g_test_failed ())
++ return;
++
+ data.step = 0;
+ data.events = NULL;
+
+@@ -679,6 +699,10 @@ test_dir_non_existent (Fixture *fixture,
+ TestData data;
+ GError *error = NULL;
+
++ /* respect g_test_skip() during setup() */
++ if (g_test_failed ())
++ return;
++
+ data.step = 0;
+ data.events = NULL;
+
+@@ -788,6 +812,10 @@ test_cross_dir_moves (Fixture *fixture,
+ GError *error = NULL;
+ TestData data[2];
+
++ /* respect g_test_skip() during setup() */
++ if (g_test_failed ())
++ return;
++
+ data[0].step = 0;
+ data[0].events = NULL;
+
+@@ -957,6 +985,10 @@ test_file_hard_links (Fixture *fixture,
+ GError *error = NULL;
+ TestData data;
+
++ /* respect g_test_skip() during setup() */
++ if (g_test_failed ())
++ return;
++
+ g_test_bug ("755721");
+
+ #ifdef HAVE_LINK