Merge lp://qastaging/~afrantzis/mir/fix-or-workaround-1523621 into lp://qastaging/mir
Status: | Merged |
---|---|
Approved by: | Daniel van Vugt |
Approved revision: | no longer in the source branch. |
Merged at revision: | 3769 |
Proposed branch: | lp://qastaging/~afrantzis/mir/fix-or-workaround-1523621 |
Merge into: | lp://qastaging/mir |
Diff against target: |
166 lines (+44/-33) 1 file modified
tests/acceptance-tests/test_nested_mir.cpp (+44/-33) |
To merge this branch: | bzr merge lp://qastaging/~afrantzis/mir/fix-or-workaround-1523621 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alan Griffiths | Approve | ||
Cemil Azizoglu (community) | Approve | ||
Mir CI Bot | continuous-integration | Approve | |
Review via email: mp+308388@code.qastaging.launchpad.net |
Commit message
tests: Ensure client surface is in a steady state in tests using a nested setup (LP: #1523621)
Description of the change
tests: Ensure client surface is in a steady state in tests using a nested setup
Due to the many layers of asynchronous processing when using a nested setup, it's difficult to guarantee that the client surface will be in a steady state (visible, focused, ready for input etc) when we need it to. We work around this issue by using an implicit test to check for a steady state: we start sending input events from the device, and wait until we start receiving them on the client side. We have already employed this tactic in test_nested_
Note: Very rarely the new code fails, i.e., we never get input events while waiting for the steady state. This is not related to the test itself, but indicates a race somewhere in our infrastructure. In my testing the failure rate is at least two orders of magnitude lower than the current state of the code, so I think it's worth it over what we have now.
PASSED: Continuous integration, rev:3764 /mir-jenkins. ubuntu. com/job/ mir-ci/ 1974/ /mir-jenkins. ubuntu. com/job/ build-mir/ 2522 /mir-jenkins. ubuntu. com/job/ build-0- fetch/2585 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 2577 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 2577 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= yakkety/ 2577 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= yakkety/ 2551 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= yakkety/ 2551/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 2551 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 2551/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= yakkety/ 2551 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= yakkety/ 2551/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 2551 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 2551/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 2551 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 2551/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 2551 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 2551/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 1974/rebuild
https:/