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 | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/gio/tests/testfilemonitor.c b/gio/tests/testfilemonitor.c
index 018e49f..e83d8ff 100644
--- a/gio/tests/testfilemonitor.c
+++ b/gio/tests/testfilemonitor.c
@@ -32,6 +32,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);
 
@@ -48,7 +54,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);
 }
@@ -379,6 +387,10 @@ test_atomic_replace (Fixture       *fixture,
   if (skip_win32 ())
     return;
 
+  /* respect g_test_skip() during setup() */
+  if (g_test_failed ())
+    return;
+
   data.step = 0;
   data.events = NULL;
 
@@ -487,6 +499,10 @@ test_file_changes (Fixture       *fixture,
   if (skip_win32 ())
     return;
 
+  /* respect g_test_skip() during setup() */
+  if (g_test_failed ())
+    return;
+
   data.step = 0;
   data.events = NULL;
 
@@ -607,6 +623,10 @@ test_dir_monitor (Fixture       *fixture,
   if (skip_win32 ())
     return;
 
+  /* respect g_test_skip() during setup() */
+  if (g_test_failed ())
+    return;
+
   data.step = 0;
   data.events = NULL;
 
@@ -707,6 +727,10 @@ test_dir_non_existent (Fixture       *fixture,
   if (skip_win32 ())
     return;
 
+  /* respect g_test_skip() during setup() */
+  if (g_test_failed ())
+    return;
+
   data.step = 0;
   data.events = NULL;
 
@@ -819,6 +843,10 @@ test_cross_dir_moves (Fixture       *fixture,
   if (skip_win32 ())
     return;
 
+  /* respect g_test_skip() during setup() */
+  if (g_test_failed ())
+    return;
+
   data[0].step = 0;
   data[0].events = NULL;
 
@@ -988,6 +1016,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 ("https://bugzilla.gnome.org/show_bug.cgi?id=755721");
 
   if (skip_win32 ())
@@ -1047,6 +1079,10 @@ test_finalize_in_callback (Fixture       *fixture,
   GFile *file = NULL;
   guint i;
 
+  /* respect g_test_skip() during setup() */
+  if (g_test_failed ())
+     return;
+
   g_test_summary ("Test that finalization of a GFileMonitor in one of its "
                   "callbacks doesn’t cause a deadlock.");
   g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/1941");
