Merge lp:~ted/ubuntu-app-launch/libertine-service-name into lp:ubuntu-app-launch

Proposed by Ted Gould
Status: Merged
Approved by: Ted Gould
Approved revision: 308
Merged at revision: 312
Proposed branch: lp:~ted/ubuntu-app-launch/libertine-service-name
Merge into: lp:ubuntu-app-launch
Diff against target: 136 lines (+34/-16)
4 files modified
tests/libertine-service.h (+28/-13)
tests/libual-cpp-test.cc (+2/-1)
tests/libual-test.cc (+2/-1)
tests/list-apps.cpp (+2/-1)
To merge this branch: bzr merge lp:~ted/ubuntu-app-launch/libertine-service-name
Reviewer Review Type Date Requested Status
Pete Woods (community) Approve
unity-api-1-bot continuous-integration Needs Fixing
Review via email: mp+321460@code.launchpad.net

Commit message

Wait with a timeout for the libertine service to start

To post a comment you must log in.
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :

FAILED: Continuous integration, rev:308
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/284/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build/1893/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1900
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1682
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1682/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1682
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1682/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1682
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1682/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1682
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1682/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1682/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1682
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1682/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/284/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Pete Woods (pete-woods) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/libertine-service.h'
2--- tests/libertine-service.h 2017-03-13 21:13:13 +0000
3+++ tests/libertine-service.h 2017-03-30 15:09:42 +0000
4@@ -24,8 +24,10 @@
5 class LibertineService
6 {
7 private:
8- DbusTestProcess* process = nullptr;
9- DbusTestTask* wait = nullptr;
10+ DbusTestProcess *process = nullptr;
11+ std::string uniquename{};
12+ std::once_flag uniqueflag;
13+ guint namewatcher;
14
15 public:
16 LibertineService()
17@@ -39,33 +41,46 @@
18 dbus_test_task_set_name(DBUS_TEST_TASK(process), "libertine");
19 dbus_test_task_set_return(DBUS_TEST_TASK(process), DBUS_TEST_TASK_RETURN_IGNORE);
20 dbus_test_task_set_wait_finished(DBUS_TEST_TASK(process), FALSE);
21-
22- wait = dbus_test_task_new();
23- dbus_test_task_set_wait_for(wait, "com.canonical.libertine.Service");
24- dbus_test_task_set_name(wait, "lib-wait");
25 }
26
27 ~LibertineService()
28 {
29 g_debug("Destroying the Libertined Task");
30 g_clear_object(&process);
31- g_clear_object(&wait);
32- }
33
34- DbusTestTask* waitTask()
35- {
36- return wait;
37+ if (namewatcher)
38+ {
39+ g_bus_unwatch_name(namewatcher);
40+ }
41 }
42
43 operator std::shared_ptr<DbusTestTask>()
44 {
45 std::shared_ptr<DbusTestTask> retval(DBUS_TEST_TASK(g_object_ref(process)),
46- [](DbusTestTask* process) { g_clear_object(&process); });
47+ [](DbusTestTask *process) { g_clear_object(&process); });
48 return retval;
49 }
50
51- operator DbusTestTask*()
52+ operator DbusTestTask *()
53 {
54 return DBUS_TEST_TASK(process);
55 }
56+
57+ const std::string &getUniqueName()
58+ {
59+ std::call_once(uniqueflag, [this]() {
60+ namewatcher = g_bus_watch_name(
61+ G_BUS_TYPE_SESSION, "com.canonical.libertine.Service", G_BUS_NAME_WATCHER_FLAGS_NONE,
62+ [](GDBusConnection *con, const gchar *name, const gchar *name_owner, gpointer user_data) {
63+ auto pthis = static_cast<LibertineService *>(user_data);
64+ pthis->uniquename = name_owner;
65+ },
66+ [](GDBusConnection *con, const gchar *name, gpointer user_data) {
67+ auto pthis = static_cast<LibertineService *>(user_data);
68+ pthis->uniquename.clear();
69+ },
70+ this, nullptr);
71+ });
72+ return uniquename;
73+ }
74 };
75
76=== modified file 'tests/libual-cpp-test.cc'
77--- tests/libual-cpp-test.cc 2017-03-20 15:17:02 +0000
78+++ tests/libual-cpp-test.cc 2017-03-30 15:09:42 +0000
79@@ -181,7 +181,6 @@
80 /* Add in Libertine */
81 libertine = std::make_shared<LibertineService>();
82 dbus_test_service_add_task(service, *libertine);
83- dbus_test_service_add_task(service, libertine->waitTask());
84
85 dbus_test_service_start_tasks(service);
86
87@@ -189,6 +188,8 @@
88 g_dbus_connection_set_exit_on_close(bus, FALSE);
89 g_object_add_weak_pointer(G_OBJECT(bus), (gpointer*)&bus);
90
91+ ASSERT_EVENTUALLY_FUNC_EQ(false, std::function<bool()>{[&] { return libertine->getUniqueName().empty(); }});
92+
93 registry = std::make_shared<ubuntu::app_launch::Registry>();
94
95 manager = std::make_shared<ManagerMock>();
96
97=== modified file 'tests/libual-test.cc'
98--- tests/libual-test.cc 2017-03-20 15:21:13 +0000
99+++ tests/libual-test.cc 2017-03-30 15:09:42 +0000
100@@ -124,7 +124,6 @@
101 /* Add in Libertine */
102 libertine = std::make_shared<LibertineService>();
103 dbus_test_service_add_task(service, *libertine);
104- dbus_test_service_add_task(service, libertine->waitTask());
105
106 dbus_test_service_start_tasks(service);
107
108@@ -132,6 +131,8 @@
109 g_dbus_connection_set_exit_on_close(bus, FALSE);
110 g_object_add_weak_pointer(G_OBJECT(bus), (gpointer *)&bus);
111
112+ ASSERT_EVENTUALLY_FUNC_EQ(false, std::function<bool()>{[&] { return libertine->getUniqueName().empty(); }});
113+
114 ASSERT_TRUE(ubuntu_app_launch_observer_add_app_focus(focus_cb, this));
115 ASSERT_TRUE(ubuntu_app_launch_observer_add_app_resume(resume_cb, this));
116 }
117
118=== modified file 'tests/list-apps.cpp'
119--- tests/list-apps.cpp 2017-03-14 21:41:39 +0000
120+++ tests/list-apps.cpp 2017-03-30 15:09:42 +0000
121@@ -59,13 +59,14 @@
122
123 libertine = std::make_shared<LibertineService>();
124 dbus_test_service_add_task(service, *libertine);
125- dbus_test_service_add_task(service, libertine->waitTask());
126
127 dbus_test_service_start_tasks(service);
128
129 bus = g_bus_get_sync(G_BUS_TYPE_SESSION, nullptr, nullptr);
130 g_dbus_connection_set_exit_on_close(bus, FALSE);
131 g_object_add_weak_pointer(G_OBJECT(bus), (gpointer*)&bus);
132+
133+ ASSERT_EVENTUALLY_FUNC_EQ(false, std::function<bool()>{[&] { return libertine->getUniqueName().empty(); }});
134 }
135
136 virtual void TearDown()

Subscribers

People subscribed via source and target branches