From: Simon McVittie 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 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)