mutter/patches/workarounds/Mark-several-additional-tests-as-flaky.patch

156 lines
5.2 KiB
Diff
Raw Normal View History

2024-08-13 17:22:25 +02:00
From: Simon McVittie <smcv@debian.org>
Date: Wed, 13 Dec 2023 10:34:02 +0000
Subject: Mark several additional tests as flaky
Most of these have never been reliable on Debian buildds, especially
on ARM, so having them fail is not a regression. They usually succeed
after a few retries, but that's time-consuming and unsuitable to be a
QA gate.
Signed-off-by: Simon McVittie <smcv@debian.org>
Forwarded: no
---
src/tests/clutter/conform/gesture.c | 24 ++++++++++++++++++++++++
src/tests/clutter/conform/grab.c | 6 ++++++
src/tests/meson.build | 31 ++++++++++++++++++++++++++++---
3 files changed, 58 insertions(+), 3 deletions(-)
diff --git a/src/tests/clutter/conform/gesture.c b/src/tests/clutter/conform/gesture.c
index 7d259f6..e732c1d 100644
--- a/src/tests/clutter/conform/gesture.c
+++ b/src/tests/clutter/conform/gesture.c
@@ -135,6 +135,12 @@ gesture_state_machine_move_to_waiting (void)
ClutterGesture *gesture = CLUTTER_GESTURE (g_object_new (TEST_TYPE_GESTURE, NULL));
gboolean was_updated;
+ if (g_getenv ("DEB_ALLOW_FLAKY_TESTS") == NULL)
+ {
+ g_test_skip ("https://gitlab.gnome.org/GNOME/mutter/-/issues/3521");
+ return;
+ }
+
virtual_pointer = clutter_seat_create_virtual_device (seat, CLUTTER_POINTER_DEVICE);
now_us = g_get_monotonic_time ();
@@ -196,6 +202,12 @@ gesture_state_machine_move_to_cancelled_while_possible (void)
gboolean was_updated;
ClutterGestureState gesture_state_change;
+ if (g_getenv ("DEB_ALLOW_FLAKY_TESTS") == NULL)
+ {
+ g_test_skip ("https://gitlab.gnome.org/GNOME/mutter/-/issues/3521");
+ return;
+ }
+
virtual_pointer = clutter_seat_create_virtual_device (seat, CLUTTER_POINTER_DEVICE);
now_us = g_get_monotonic_time ();
@@ -244,6 +256,12 @@ gesture_state_machine_move_to_cancelled_on_sequence_cancel (void)
gboolean was_updated;
ClutterGestureState gesture_state_change;
+ if (g_getenv ("DEB_ALLOW_FLAKY_TESTS") == NULL)
+ {
+ g_test_skip ("https://gitlab.gnome.org/GNOME/mutter/-/issues/3521");
+ return;
+ }
+
virtual_pointer = clutter_seat_create_virtual_device (seat, CLUTTER_POINTER_DEVICE);
now_us = g_get_monotonic_time ();
@@ -302,6 +320,12 @@ gesture_multiple_mouse_buttons (void)
ClutterGesture *gesture = CLUTTER_GESTURE (g_object_new (TEST_TYPE_GESTURE, NULL));
gboolean was_updated;
+ if (g_getenv ("DEB_ALLOW_FLAKY_TESTS") == NULL)
+ {
+ g_test_skip ("https://gitlab.gnome.org/GNOME/mutter/-/issues/3521");
+ return;
+ }
+
virtual_pointer = clutter_seat_create_virtual_device (seat, CLUTTER_POINTER_DEVICE);
now_us = g_get_monotonic_time ();
diff --git a/src/tests/clutter/conform/grab.c b/src/tests/clutter/conform/grab.c
index c62eea6..4ba11f4 100644
--- a/src/tests/clutter/conform/grab.c
+++ b/src/tests/clutter/conform/grab.c
@@ -620,6 +620,12 @@ grab_input_only (void)
ClutterSeat *seat;
g_autoptr (ClutterVirtualInputDevice) pointer = NULL;
+ if (g_getenv ("DEB_ALLOW_FLAKY_TESTS") == NULL)
+ {
+ g_test_skip ("https://gitlab.gnome.org/GNOME/mutter/-/issues/3205");
+ return;
+ }
+
seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
pointer = clutter_seat_create_virtual_device (seat, CLUTTER_POINTER_DEVICE);
diff --git a/src/tests/meson.build b/src/tests/meson.build
index b98cfd4..a972096 100644
--- a/src/tests/meson.build
+++ b/src/tests/meson.build
@@ -389,6 +389,7 @@ if have_native_tests
'name': 'input-capture',
'suite': 'backends/native',
'sources': [ 'input-capture-tests.c' ],
+ 'flaky': true,
},
{
'name': 'thread',
@@ -680,8 +681,14 @@ if have_native_tests
test_depends = [ default_plugin ] + test_case.get('depends', [])
+ extra_suites = []
+
+ if test_case.get('flaky', false)
+ extra_suites += 'flaky'
+ endif
+
test(test_case['name'], test_executable,
- suite: ['core', 'mutter/' + test_case['suite']],
+ suite: ['core', 'mutter/' + test_case['suite']] + extra_suites,
env: test_env,
depends: test_depends,
is_parallel: false,
@@ -735,8 +742,26 @@ stacking_tests = [
]
foreach stacking_test: stacking_tests
+ extra_suites = []
+ flaky = false
+
+ if {
+ 'closed-transient-only-take-focus-parents': true,
+ # https://gitlab.gnome.org/GNOME/mutter/-/issues/3050
+ 'fullscreen-maximize': true,
+ 'minimized': true,
+ # https://gitlab.gnome.org/GNOME/mutter/-/issues/2509, https://bugs.debian.org/1050022
+ 'restore-size': true,
+ # https://gitlab.gnome.org/GNOME/mutter/-/issues/3051
+ 'unfullscreen-strut-change': true,
+ 'unmaximize-new-size': true,
+ }.get(stacking_test, false)
+ extra_suites += 'flaky'
+ flaky = true
+ endif
+
test(stacking_test, test_runner,
- suite: ['core', 'mutter/stacking'],
+ suite: ['core', 'mutter/stacking'] + extra_suites,
env: test_env,
args: [
files('stacking' / stacking_test + '.metatest'),
@@ -745,7 +770,7 @@ foreach stacking_test: stacking_tests
timeout: 60,
)
- if have_installed_tests
+ if have_installed_tests and not flaky
installed_tests_cdata = configuration_data()
installed_tests_cdata.set('apiversion', libmutter_api_version)
installed_tests_cdata.set('libexecdir', libexecdir)