Mir

Merge lp:~alan-griffiths/mir/fix-1655293 into lp:mir

Proposed by Alan Griffiths
Status: Merged
Approved by: Andreas Pokorny
Approved revision: no longer in the source branch.
Merged at revision: 3918
Proposed branch: lp:~alan-griffiths/mir/fix-1655293
Merge into: lp:mir
Diff against target: 80 lines (+11/-9)
1 file modified
tests/acceptance-tests/test_surface_raise.cpp (+11/-9)
To merge this branch: bzr merge lp:~alan-griffiths/mir/fix-1655293
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve
Cemil Azizoglu (community) Approve
Andreas Pokorny (community) Approve
Review via email: mp+314420@code.launchpad.net

Commit message

Fix racy setup for RaiseSurfaces test fixture

Description of the change

Fix racy setup for RaiseSurfaces test fixture

the second surface to get focus before the test body. Add a spinwait for this in SetUp() and remove the (intermittently failing) expectation in the test.

IMO the test still doesn't make sense (as we try to raise a surface that already has focus), but let's address the CI failure first.

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3917
https://mir-jenkins.ubuntu.com/job/mir-ci/2610/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3392/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/3459
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/3451
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/3451
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/3451
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3421
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3421/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3421
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3421/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3421
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3421/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3421
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3421/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3421
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3421/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3421/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2610/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

lp:1646375

At least I didn't get lp:314420 ;)

Pushing a no-change commit to rebuild

Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

It should raise the other surface - toying with that showed that the test would fail then (attempting to raise surface1), although logs indicate that the server processed the request accordingly.

review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3918
https://mir-jenkins.ubuntu.com/job/mir-ci/2612/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3394/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/3461
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/3453
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/3453
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/3453
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3423
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3423/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3423
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3423/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3423/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3423
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3423/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3423
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3423/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3423
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3423/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2612/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

lgtm

review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Autolanding.
More details in the following jenkins job:
https://mir-jenkins.ubuntu.com/job/mir-autolanding/922/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3396/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/971/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/3463
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/3455
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/3455
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/3455
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3425
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3425/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3425/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3425
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3425/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3425
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3425/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3425
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3425/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3425
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3425/artifact/output/*zip*/output.zip

review: Needs Fixing (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

lp:1646375 again, can probably re-TA

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3919
https://mir-jenkins.ubuntu.com/job/mir-ci/2616/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3400/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/3467
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/3459
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/3459
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/3459
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3429
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3429/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3429/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3429
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3429/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3429/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3429
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3429/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3429/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2616/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/acceptance-tests/test_surface_raise.cpp'
2--- tests/acceptance-tests/test_surface_raise.cpp 2017-01-09 20:01:45 +0000
3+++ tests/acceptance-tests/test_surface_raise.cpp 2017-01-10 17:24:04 +0000
4@@ -39,6 +39,7 @@
5 namespace mt = mir::test;
6 namespace mi = mir::input;
7 namespace mis = mir::input::synthesis;
8+using namespace testing;
9
10 namespace
11 {
12@@ -52,10 +53,8 @@
13 {
14 ConnectedClientHeadlessServer::SetUp();
15
16- surface1 = mtf::make_any_surface(connection);
17+ surface1 = mtf::make_any_surface(connection);
18 mir_window_set_event_handler(surface1, &cookie_capturing_callback, this);
19- mir_buffer_stream_swap_buffers_sync(
20- mir_window_get_buffer_stream(surface1));
21
22 surface2 = mtf::make_any_surface(connection);
23
24@@ -69,6 +68,8 @@
25 mir_window_spec_release(spec);
26
27 mir_buffer_stream_swap_buffers_sync(
28+ mir_window_get_buffer_stream(surface1));
29+ mir_buffer_stream_swap_buffers_sync(
30 mir_window_get_buffer_stream(surface2));
31
32 bool surface_fullscreen = mt::spin_wait_for_condition_or_timeout(
33@@ -77,13 +78,15 @@
34 return mir_surface_get_state(surface1) == mir_surface_state_fullscreen &&
35 mir_surface_get_state(surface2) == mir_surface_state_fullscreen;
36 },
37- std::chrono::seconds{max_wait});
38+ max_wait);
39
40 ready_to_accept_events.wait_for(max_wait);
41 if (!ready_to_accept_events.raised())
42 BOOST_THROW_EXCEPTION(std::runtime_error("Timeout waiting for surface to become focused and exposed"));
43
44- EXPECT_TRUE(surface_fullscreen);
45+ ASSERT_TRUE(surface_fullscreen);
46+ ASSERT_TRUE(mt::spin_wait_for_condition_or_timeout([this]
47+ { return mir_surface_get_focus(surface2) == mir_surface_focused; }, max_wait));
48 }
49
50 MirSurface* surface1;
51@@ -165,7 +168,7 @@
52 std::lock_guard<std::mutex> lk(raise_surfaces->mutex);
53 return raise_surfaces->event_count >= n;
54 },
55- std::chrono::seconds{max_wait});
56+ max_wait);
57
58 EXPECT_TRUE(all_events);
59 return all_events;
60@@ -179,7 +182,7 @@
61 {
62 return mir_surface_get_focus(surface) == mir_surface_focused;
63 },
64- std::chrono::seconds{max_wait});
65+ max_wait);
66
67 return surface_becomes_focused;
68 }
69@@ -195,10 +198,9 @@
70 {
71 std::lock_guard<std::mutex> lk(mutex);
72 ASSERT_FALSE(out_cookies.empty());
73- EXPECT_EQ(mir_surface_get_focus(surface2), mir_surface_focused);
74
75 MirCookie const* cookie = mir_cookie_from_buffer(out_cookies.back().data(), out_cookies.back().size());
76- attempt_focus(surface2, cookie);
77+ EXPECT_TRUE(attempt_focus(surface2, cookie));
78
79 mir_cookie_release(cookie);
80 }

Subscribers

People subscribed via source and target branches