27ce84962a
Previously, we were waiting up to 300ms for the signal, then proceeding anyway. However, 300ms is not necessarily long enough to wait on an autobuilder that might be heavily loaded, particularly if it's a non-x86 with different performance characteristics. Conversely, if mutter responds to the D-Bus signal from the mock sensor before we have connected to the signal, then we cannot expect to receive the signal - it was already emitted, but we missed it. In this case, we need to avoid waiting. One remaining use of wait_for_orientation_changes() that would previously always have timed out was in meta_test_orientation_manager_has_accelerometer(), which does not actually expect to see an orientation-changed signal. Make this wait for the accelerometer to be detected instead. Resolves: https://gitlab.gnome.org/GNOME/mutter/-/issues/1967 Bug-Debian: https://bugs.debian.org/995929 Signed-off-by: Simon McVittie <smcv@debian.org> Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2049>
37 lines
1.5 KiB
C
37 lines
1.5 KiB
C
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
/*
|
|
* Copyright (C) 2020 Canonical, Ltd.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* Author: Marco Trevisan <marco.trevisan@canonical.com>
|
|
*/
|
|
|
|
#ifndef ORIENTATION_MANAGER_UNIT_TESTS_H
|
|
#define ORIENTATION_MANAGER_UNIT_TESTS_H
|
|
|
|
#include "backends/meta-orientation-manager.h"
|
|
|
|
void init_orientation_manager_tests (void);
|
|
|
|
void wait_for_orientation (MetaOrientationManager *orientation_manager,
|
|
MetaOrientation orientation,
|
|
unsigned int *times_signalled_out);
|
|
void wait_for_possible_orientation_change (MetaOrientationManager *orientation_manager,
|
|
unsigned int *times_signalled_out);
|
|
|
|
const char * orientation_to_string (MetaOrientation orientation);
|
|
|
|
#endif /* ORIENTATION_MANAGER_UNIT_TESTS_H */
|