Mir

Merge lp:~mir-team/mir/fix-1555708 into lp:mir

Proposed by Kevin DuBois
Status: Merged
Approved by: Chris Halse Rogers
Approved revision: no longer in the source branch.
Merged at revision: 3384
Proposed branch: lp:~mir-team/mir/fix-1555708
Merge into: lp:mir
Diff against target: 33 lines (+17/-1)
1 file modified
tests/acceptance-tests/test_client_input.cpp (+17/-1)
To merge this branch: bzr merge lp:~mir-team/mir/fix-1555708
Reviewer Review Type Date Requested Status
Chris Halse Rogers Approve
Cemil Azizoglu (community) Approve
Mir CI Bot continuous-integration Approve
Review via email: mp+288700@code.launchpad.net

Commit message

fix CI problem in lp: #1555708 by polling for the expected config. The client here had knowledge most clients wouldn't have, which is the the actual configuration given to the server.

Description of the change

fix CI problem in lp: #1555708 by polling for the expected config. The client here had knowledge most clients wouldn't have, which is the the actual configuration given to the server.

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

PASSED: Continuous integration, rev:3384
https://mir-jenkins.ubuntu.com/job/mir-ci/541/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/415
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/445
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/437
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/437
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/424
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/424/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/424
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/424/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/424
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/424/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/424
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/424/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/424
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/424/artifact/output/*zip*/output.zip

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

review: Approve (continuous-integration)
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

ok

review: Approve
Revision history for this message
Chris Halse Rogers (raof) wrote :

This seems like a fine minimal fix for the test, but leaves behind an actual client-visible race.

If this test did not have privileged knowledge about the expected input state, how would it work?

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/acceptance-tests/test_client_input.cpp'
2--- tests/acceptance-tests/test_client_input.cpp 2016-03-08 20:43:41 +0000
3+++ tests/acceptance-tests/test_client_input.cpp 2016-03-10 20:28:59 +0000
4@@ -772,12 +772,28 @@
5 return one_of_the_devices_matched;
6 }
7
8+//Poll for the expected config to fix lp: #1555708. Client can't expect synchronization
9+//with the server on the input config.
10 TEST_F(TestClientInput, client_input_config_request_receives_all_attached_devices)
11 {
12 auto con = mir_connect_sync(new_connection().c_str(), first.c_str());
13 auto config = mir_connection_create_input_config(con);
14+ int limit = 10;
15+ int num_devices = 0;
16+ int expected_devices = 3;
17+
18+ for(auto i = 0; i < limit; i++)
19+ {
20+ num_devices = mir_input_config_device_count(config);
21+ if (num_devices == expected_devices)
22+ break;
23+
24+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
25+ mir_input_config_destroy(config);
26+ config = mir_connection_create_input_config(con);
27+ }
28
29- EXPECT_THAT(mir_input_config_device_count(config), Eq(3));
30+ ASSERT_THAT(mir_input_config_device_count(config), Eq(expected_devices));
31
32 EXPECT_THAT(config, ADeviceMatches(keyboard_name, keyboard_unique_id, mir_input_device_capability_keyboard));
33 EXPECT_THAT(config, ADeviceMatches(mouse_name, mouse_unique_id, mir_input_device_capability_pointer));

Subscribers

People subscribed via source and target branches