Mir

Merge lp:~alan-griffiths/mir/remove-force_requests_to_complete into lp:mir

Proposed by Alan Griffiths
Status: Work in progress
Proposed branch: lp:~alan-griffiths/mir/remove-force_requests_to_complete
Merge into: lp:mir
Prerequisite: lp:~alan-griffiths/mir/SwitchingBundle-controls-completion-of-client_acquire-without-blocking
Diff against target: 1020 lines (+76/-217)
34 files modified
examples/demo-inprocess-surface-client/inprocess_egl_client.cpp (+0/-2)
include/server/mir/compositor/buffer_stream.h (+0/-1)
include/server/mir/default_server_configuration.h (+0/-1)
include/server/mir/frontend/surface.h (+0/-2)
include/server/mir/shell/session.h (+0/-2)
include/test/mir_test_doubles/stub_buffer_stream.h (+0/-4)
include/test/mir_test_doubles/stub_session.h (+0/-3)
include/test/mir_test_doubles/stub_shell_session.h (+0/-3)
src/server/compositor/buffer_bundle.h (+0/-1)
src/server/compositor/buffer_stream_surfaces.cpp (+0/-6)
src/server/compositor/buffer_stream_surfaces.h (+0/-1)
src/server/compositor/switching_bundle.cpp (+0/-9)
src/server/compositor/switching_bundle.h (+0/-1)
src/server/frontend/default_configuration.cpp (+0/-4)
src/server/frontend/published_socket_connector.cpp (+1/-10)
src/server/frontend/published_socket_connector.h (+0/-3)
src/server/frontend/session_mediator.cpp (+9/-5)
src/server/frontend/session_mediator.h (+2/-1)
src/server/scene/application_session.cpp (+0/-9)
src/server/scene/application_session.h (+0/-2)
src/server/scene/basic_surface.cpp (+0/-5)
src/server/scene/basic_surface.h (+0/-1)
src/server/scene/default_configuration.cpp (+0/-13)
src/server/scene/surface_impl.cpp (+0/-5)
src/server/scene/surface_impl.h (+0/-2)
tests/integration-tests/compositor/test_buffer_stream.cpp (+0/-2)
tests/integration-tests/test_swapinterval.cpp (+0/-1)
tests/mir_test_doubles/test_protobuf_socket_server.cpp (+0/-1)
tests/unit-tests/compositor/test_buffer_stream.cpp (+0/-21)
tests/unit-tests/compositor/test_switching_bundle.cpp (+0/-4)
tests/unit-tests/frontend/test_published_socket_connector.cpp (+0/-17)
tests/unit-tests/frontend/test_session_mediator.cpp (+64/-64)
tests/unit-tests/scene/test_surface.cpp (+0/-10)
tests/unit-tests/scene/test_surface_stack.cpp (+0/-1)
To merge this branch: bzr merge lp:~alan-griffiths/mir/remove-force_requests_to_complete
Reviewer Review Type Date Requested Status
Mir development team Pending
Review via email: mp+205173@code.launchpad.net

Commit message

Strip out all the force_requests_to_complete() code that became obsolete

Description of the change

Strip out all the force_requests_to_complete() code that became obsolete with lp:~alan-griffiths/mir/SwitchingBundle-controls-completion-of-client_acquire-without-blocking

To post a comment you must log in.

Unmerged revisions

1372. By Alan Griffiths

Try extending lifetime of session mediator until callback processed

1371. By Alan Griffiths

merge lp:~alan-griffiths/mir/SwitchingBundle-controls-completion-of-client_acquire-without-blocking

1370. By Alan Griffiths

Strip out all the force_requests_to_complete() code that became obsolete with lp:~alan-griffiths/mir/SwitchingBundle-controls-completion-of-client_acquire-without-blocking

1369. By Alan Griffiths

merge lp:~alan-griffiths/mir/SwitchingBundle-controls-completion-of-client_acquire-without-blocking

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'examples/demo-inprocess-surface-client/inprocess_egl_client.cpp'
2--- examples/demo-inprocess-surface-client/inprocess_egl_client.cpp 2014-01-13 06:12:33 +0000
3+++ examples/demo-inprocess-surface-client/inprocess_egl_client.cpp 2014-02-06 14:45:58 +0000
4@@ -69,8 +69,6 @@
5 {
6 terminate = true;
7 auto session = focus_controller->focussed_application().lock();
8- if (session)
9- session->force_requests_to_complete();
10 client_thread.join();
11 }
12
13
14=== modified file 'include/server/mir/compositor/buffer_stream.h'
15--- include/server/mir/compositor/buffer_stream.h 2014-02-06 14:45:58 +0000
16+++ include/server/mir/compositor/buffer_stream.h 2014-02-06 14:45:58 +0000
17@@ -49,7 +49,6 @@
18 virtual geometry::Size stream_size() = 0;
19 virtual void resize(geometry::Size const& size) = 0;
20 virtual void allow_framedropping(bool) = 0;
21- virtual void force_requests_to_complete() = 0;
22 };
23
24 }
25
26=== modified file 'include/server/mir/default_server_configuration.h'
27--- include/server/mir/default_server_configuration.h 2014-01-29 18:02:33 +0000
28+++ include/server/mir/default_server_configuration.h 2014-02-06 14:45:58 +0000
29@@ -313,7 +313,6 @@
30 std::shared_ptr<scene::SessionManager> the_session_manager();
31 std::shared_ptr<scene::SurfaceBuilder> the_surface_builder();
32 std::shared_ptr<scene::SurfaceController> the_surface_controller();
33- std::function<void()> force_threads_to_unblock_callback();
34 };
35 }
36
37
38=== modified file 'include/server/mir/frontend/surface.h'
39--- include/server/mir/frontend/surface.h 2014-02-06 14:45:58 +0000
40+++ include/server/mir/frontend/surface.h 2014-02-06 14:45:58 +0000
41@@ -51,8 +51,6 @@
42
43 virtual ~Surface() {}
44
45- virtual void force_requests_to_complete() = 0;
46-
47 virtual geometry::Size size() const = 0;
48 virtual MirPixelFormat pixel_format() const = 0;
49
50
51=== modified file 'include/server/mir/shell/session.h'
52--- include/server/mir/shell/session.h 2014-01-13 06:12:33 +0000
53+++ include/server/mir/shell/session.h 2014-02-06 14:45:58 +0000
54@@ -33,8 +33,6 @@
55 {
56 public:
57 virtual std::string name() const = 0;
58- virtual void force_requests_to_complete() = 0;
59-
60 virtual void take_snapshot(SnapshotCallback const& snapshot_taken) = 0;
61 virtual std::shared_ptr<Surface> default_surface() const = 0;
62 virtual void set_lifecycle_state(MirLifecycleState state) = 0;
63
64=== modified file 'include/test/mir_test_doubles/stub_buffer_stream.h'
65--- include/test/mir_test_doubles/stub_buffer_stream.h 2014-02-06 14:45:58 +0000
66+++ include/test/mir_test_doubles/stub_buffer_stream.h 2014-02-06 14:45:58 +0000
67@@ -64,10 +64,6 @@
68 {
69 }
70
71- void force_requests_to_complete() override
72- {
73- }
74-
75 void allow_framedropping(bool) override
76 {
77 }
78
79=== modified file 'include/test/mir_test_doubles/stub_session.h'
80--- include/test/mir_test_doubles/stub_session.h 2013-08-28 03:41:48 +0000
81+++ include/test/mir_test_doubles/stub_session.h 2014-02-06 14:45:58 +0000
82@@ -45,9 +45,6 @@
83 {
84 return std::string();
85 }
86- void force_requests_to_complete()
87- {
88- }
89 void hide()
90 {
91 }
92
93=== modified file 'include/test/mir_test_doubles/stub_shell_session.h'
94--- include/test/mir_test_doubles/stub_shell_session.h 2014-01-13 06:12:33 +0000
95+++ include/test/mir_test_doubles/stub_shell_session.h 2014-02-06 14:45:58 +0000
96@@ -45,9 +45,6 @@
97 {
98 return std::string();
99 }
100- void force_requests_to_complete() override
101- {
102- }
103 void hide() override
104 {
105 }
106
107=== modified file 'src/server/compositor/buffer_bundle.h'
108--- src/server/compositor/buffer_bundle.h 2014-02-06 14:45:58 +0000
109+++ src/server/compositor/buffer_bundle.h 2014-02-06 14:45:58 +0000
110@@ -44,7 +44,6 @@
111
112 virtual graphics::BufferProperties properties() const = 0;
113 virtual void allow_framedropping(bool dropping_allowed) = 0;
114- virtual void force_requests_to_complete() = 0;
115 virtual void resize(const geometry::Size &newsize) = 0;
116 protected:
117 BufferBundle() = default;
118
119=== modified file 'src/server/compositor/buffer_stream_surfaces.cpp'
120--- src/server/compositor/buffer_stream_surfaces.cpp 2014-02-06 14:45:58 +0000
121+++ src/server/compositor/buffer_stream_surfaces.cpp 2014-02-06 14:45:58 +0000
122@@ -34,7 +34,6 @@
123
124 mc::BufferStreamSurfaces::~BufferStreamSurfaces()
125 {
126- force_requests_to_complete();
127 }
128
129 std::shared_ptr<mg::Buffer> mc::BufferStreamSurfaces::lock_compositor_buffer(
130@@ -74,11 +73,6 @@
131 buffer_bundle->resize(size);
132 }
133
134-void mc::BufferStreamSurfaces::force_requests_to_complete()
135-{
136- buffer_bundle->force_requests_to_complete();
137-}
138-
139 void mc::BufferStreamSurfaces::allow_framedropping(bool allow)
140 {
141 buffer_bundle->allow_framedropping(allow);
142
143=== modified file 'src/server/compositor/buffer_stream_surfaces.h'
144--- src/server/compositor/buffer_stream_surfaces.h 2014-02-06 14:45:58 +0000
145+++ src/server/compositor/buffer_stream_surfaces.h 2014-02-06 14:45:58 +0000
146@@ -49,7 +49,6 @@
147 geometry::Size stream_size() override;
148 void resize(geometry::Size const& size) override;
149 void allow_framedropping(bool) override;
150- void force_requests_to_complete() override;
151
152 protected:
153 BufferStreamSurfaces(const BufferStreamSurfaces&) = delete;
154
155=== modified file 'src/server/compositor/switching_bundle.cpp'
156--- src/server/compositor/switching_bundle.cpp 2014-02-06 14:45:58 +0000
157+++ src/server/compositor/switching_bundle.cpp 2014-02-06 14:45:58 +0000
158@@ -398,15 +398,6 @@
159 cond.notify_all();
160 }
161
162-void mc::SwitchingBundle::force_requests_to_complete()
163-{
164- std::unique_lock<std::mutex> lock(guard);
165- client_acquire_todo = nullptr;
166- drop_frames(nready);
167- force_drop = nbuffers + 1;
168- cond.notify_all();
169-}
170-
171 void mc::SwitchingBundle::allow_framedropping(bool allow_dropping)
172 {
173 std::unique_lock<std::mutex> lock(guard);
174
175=== modified file 'src/server/compositor/switching_bundle.h'
176--- src/server/compositor/switching_bundle.h 2014-02-06 14:45:58 +0000
177+++ src/server/compositor/switching_bundle.h 2014-02-06 14:45:58 +0000
178@@ -56,7 +56,6 @@
179 void compositor_release(std::shared_ptr<graphics::Buffer> const& released_buffer);
180 std::shared_ptr<graphics::Buffer> snapshot_acquire();
181 void snapshot_release(std::shared_ptr<graphics::Buffer> const& released_buffer);
182- void force_requests_to_complete();
183 void allow_framedropping(bool dropping_allowed);
184 bool framedropping_allowed() const;
185
186
187=== modified file 'src/server/frontend/default_configuration.cpp'
188--- src/server/frontend/default_configuration.cpp 2014-01-30 13:27:59 +0000
189+++ src/server/frontend/default_configuration.cpp 2014-02-06 14:45:58 +0000
190@@ -114,14 +114,11 @@
191 {
192 auto const threads = the_options()->get<int>(frontend_threads_opt);
193
194- auto const& force_threads_to_unblock = force_threads_to_unblock_callback();
195-
196 if (the_options()->is_set(no_server_socket_opt))
197 {
198 return std::make_shared<mf::BasicConnector>(
199 the_session_creator(),
200 threads,
201- force_threads_to_unblock,
202 the_connector_report());
203 }
204 else
205@@ -130,7 +127,6 @@
206 the_socket_file(),
207 the_session_creator(),
208 threads,
209- force_threads_to_unblock,
210 the_connector_report());
211 }
212 });
213
214=== modified file 'src/server/frontend/published_socket_connector.cpp'
215--- src/server/frontend/published_socket_connector.cpp 2014-01-22 17:05:48 +0000
216+++ src/server/frontend/published_socket_connector.cpp 2014-02-06 14:45:58 +0000
217@@ -35,9 +35,8 @@
218 const std::string& socket_file,
219 std::shared_ptr<SessionCreator> const& session_creator,
220 int threads,
221- std::function<void()> const& force_threads_to_unblock,
222 std::shared_ptr<ConnectorReport> const& report)
223-: BasicConnector(session_creator, threads, force_threads_to_unblock, report),
224+: BasicConnector(session_creator, threads, report),
225 socket_file(socket_file),
226 acceptor(io_service, socket_file)
227 {
228@@ -83,12 +82,10 @@
229 mf::BasicConnector::BasicConnector(
230 std::shared_ptr<SessionCreator> const& session_creator,
231 int threads,
232- std::function<void()> const& force_threads_to_unblock,
233 std::shared_ptr<ConnectorReport> const& report)
234 : work(io_service),
235 report(report),
236 io_service_threads(threads),
237- force_threads_to_unblock(force_threads_to_unblock),
238 session_creator{session_creator}
239 {
240 }
241@@ -123,12 +120,6 @@
242 /* Stop processing new requests */
243 io_service.stop();
244
245- /*
246- * Ensure that any pending requests will complete (i.e., that they
247- * will not block indefinitely waiting for a resource from the server)
248- */
249- force_threads_to_unblock();
250-
251 report->stopping_threads(io_service_threads.size());
252
253 /* Wait for all io processing threads to finish */
254
255=== modified file 'src/server/frontend/published_socket_connector.h'
256--- src/server/frontend/published_socket_connector.h 2014-01-22 17:05:48 +0000
257+++ src/server/frontend/published_socket_connector.h 2014-02-06 14:45:58 +0000
258@@ -50,7 +50,6 @@
259 explicit BasicConnector(
260 std::shared_ptr<SessionCreator> const& session_creator,
261 int threads,
262- std::function<void()> const& force_threads_to_unblock,
263 std::shared_ptr<ConnectorReport> const& report);
264 ~BasicConnector() noexcept;
265 void start() override;
266@@ -67,7 +66,6 @@
267
268 private:
269 std::vector<std::thread> io_service_threads;
270- std::function<void()> const force_threads_to_unblock;
271 std::shared_ptr<SessionCreator> const session_creator;
272 };
273
274@@ -79,7 +77,6 @@
275 const std::string& socket_file,
276 std::shared_ptr<SessionCreator> const& session_creator,
277 int threads,
278- std::function<void()> const& force_threads_to_unblock,
279 std::shared_ptr<ConnectorReport> const& report);
280 ~PublishedSocketConnector() noexcept;
281
282
283=== modified file 'src/server/frontend/session_mediator.cpp'
284--- src/server/frontend/session_mediator.cpp 2014-02-06 14:45:58 +0000
285+++ src/server/frontend/session_mediator.cpp 2014-02-06 14:45:58 +0000
286@@ -174,20 +174,22 @@
287 if (surface->supports_input())
288 response->add_fd(surface->client_input_fd());
289
290+ auto const self = shared_from_this();
291+
292 advance_buffer(surf_id, *surface,
293- [lock, this, response, done, session](graphics::Buffer* client_buffer, bool need_full_ipc)
294+ [lock, self, response, done, session](graphics::Buffer* client_buffer, bool need_full_ipc)
295 {
296 lock->unlock();
297
298 auto buffer = response->mutable_buffer();
299- pack_protobuf_buffer(*buffer, client_buffer, need_full_ipc);
300+ self->pack_protobuf_buffer(*buffer, client_buffer, need_full_ipc);
301
302 // TODO: NOTE: We use the ordering here to ensure the shell acts on the surface after the surface ID is sent over the wire.
303 // This guarantees that notifications such as, gained focus, etc, can be correctly interpreted by the client.
304 // To achieve this order we rely on done->Run() sending messages synchronously. As documented in mfd::SocketMessenger::send.
305 // this will require additional synchronization if mfd::SocketMessenger::send changes.
306 done->Run();
307- shell->handle_surface_created(session);
308+ self->shell->handle_surface_created(session);
309 });
310 }
311
312@@ -216,12 +218,14 @@
313
314 auto surface = session->get_surface(surf_id);
315
316+ auto const self = shared_from_this();
317+
318 advance_buffer(surf_id, *surface,
319- [lock, this, response, done, session](graphics::Buffer* client_buffer, bool need_full_ipc)
320+ [lock, self, response, done, session](graphics::Buffer* client_buffer, bool need_full_ipc)
321 {
322 lock->unlock();
323
324- pack_protobuf_buffer(*response, client_buffer, need_full_ipc);
325+ self->pack_protobuf_buffer(*response, client_buffer, need_full_ipc);
326
327 done->Run();
328 });
329
330=== modified file 'src/server/frontend/session_mediator.h'
331--- src/server/frontend/session_mediator.h 2014-02-06 14:45:58 +0000
332+++ src/server/frontend/session_mediator.h 2014-02-06 14:45:58 +0000
333@@ -56,7 +56,8 @@
334 class Screencast;
335
336 // SessionMediator relays requests from the client process into the server.
337-class SessionMediator : public mir::protobuf::DisplayServer
338+class SessionMediator : public mir::protobuf::DisplayServer,
339+ public std::enable_shared_from_this<SessionMediator>
340 {
341 public:
342 SessionMediator(
343
344=== modified file 'src/server/scene/application_session.cpp'
345--- src/server/scene/application_session.cpp 2014-01-13 06:12:33 +0000
346+++ src/server/scene/application_session.cpp 2014-02-06 14:45:58 +0000
347@@ -125,15 +125,6 @@
348 return session_name;
349 }
350
351-void ms::ApplicationSession::force_requests_to_complete()
352-{
353- std::unique_lock<std::mutex> lock(surfaces_mutex);
354- for (auto& id_s : surfaces)
355- {
356- id_s.second->force_requests_to_complete();
357- }
358-}
359-
360 void ms::ApplicationSession::hide()
361 {
362 std::unique_lock<std::mutex> lock(surfaces_mutex);
363
364=== modified file 'src/server/scene/application_session.h'
365--- src/server/scene/application_session.h 2014-01-13 06:12:33 +0000
366+++ src/server/scene/application_session.h 2014-02-06 14:45:58 +0000
367@@ -61,8 +61,6 @@
368
369 std::string name() const;
370
371- void force_requests_to_complete();
372-
373 void hide();
374 void show();
375
376
377=== modified file 'src/server/scene/basic_surface.cpp'
378--- src/server/scene/basic_surface.cpp 2014-02-06 14:45:58 +0000
379+++ src/server/scene/basic_surface.cpp 2014-02-06 14:45:58 +0000
380@@ -49,11 +49,6 @@
381 report->surface_created(this);
382 }
383
384-void ms::BasicSurface::force_requests_to_complete()
385-{
386- surface_buffer_stream->force_requests_to_complete();
387-}
388-
389 ms::BasicSurface::~BasicSurface()
390 {
391 report->surface_deleted(this);
392
393=== modified file 'src/server/scene/basic_surface.h'
394--- src/server/scene/basic_surface.h 2014-02-06 14:45:58 +0000
395+++ src/server/scene/basic_surface.h 2014-02-06 14:45:58 +0000
396@@ -74,7 +74,6 @@
397
398 virtual std::shared_ptr<graphics::Buffer> snapshot_buffer() const;
399 virtual void swap_buffers(graphics::Buffer* old_buffer, std::function<void(graphics::Buffer* new_buffer)> complete);
400- virtual void force_requests_to_complete();
401
402 virtual bool supports_input() const;
403 virtual int client_input_fd() const;
404
405=== modified file 'src/server/scene/default_configuration.cpp'
406--- src/server/scene/default_configuration.cpp 2014-01-29 15:20:07 +0000
407+++ src/server/scene/default_configuration.cpp 2014-02-06 14:45:58 +0000
408@@ -205,19 +205,6 @@
409 return the_mediating_display_changer();
410 }
411
412-std::function<void()>
413-mir::DefaultServerConfiguration::force_threads_to_unblock_callback()
414-{
415- auto shell_sessions = the_session_container();
416- return [shell_sessions]
417- {
418- shell_sessions->for_each([](std::shared_ptr<msh::Session> const& session)
419- {
420- session->force_requests_to_complete();
421- });
422- };
423-}
424-
425 std::shared_ptr<mf::EventSink>
426 mir::DefaultServerConfiguration::the_global_event_sink()
427 {
428
429=== modified file 'src/server/scene/surface_impl.cpp'
430--- src/server/scene/surface_impl.cpp 2014-02-06 14:45:58 +0000
431+++ src/server/scene/surface_impl.cpp 2014-02-06 14:45:58 +0000
432@@ -73,11 +73,6 @@
433 surface->set_hidden(false);
434 }
435
436-void ms::SurfaceImpl::force_requests_to_complete()
437-{
438- surface->force_requests_to_complete();
439-}
440-
441 mir::geometry::Size ms::SurfaceImpl::size() const
442 {
443 return surface->size();
444
445=== modified file 'src/server/scene/surface_impl.h'
446--- src/server/scene/surface_impl.h 2014-02-06 14:45:58 +0000
447+++ src/server/scene/surface_impl.h 2014-02-06 14:45:58 +0000
448@@ -57,8 +57,6 @@
449 virtual void hide();
450 virtual void show();
451
452- virtual void force_requests_to_complete();
453-
454 virtual std::string name() const;
455
456 virtual void move_to(geometry::Point const& top_left);
457
458=== modified file 'tests/integration-tests/compositor/test_buffer_stream.cpp'
459--- tests/integration-tests/compositor/test_buffer_stream.cpp 2014-02-06 14:45:58 +0000
460+++ tests/integration-tests/compositor/test_buffer_stream.cpp 2014-02-06 14:45:58 +0000
461@@ -326,8 +326,6 @@
462
463 done = true;
464
465- buffer_stream.force_requests_to_complete();
466-
467 compositor.join();
468
469 for (auto &s : snapshotters)
470
471=== modified file 'tests/integration-tests/test_swapinterval.cpp'
472--- tests/integration-tests/test_swapinterval.cpp 2014-02-06 14:45:58 +0000
473+++ tests/integration-tests/test_swapinterval.cpp 2014-02-06 14:45:58 +0000
474@@ -70,7 +70,6 @@
475
476 geom::Size stream_size() override { return geom::Size{}; }
477 void resize(geom::Size const&) override {}
478- void force_requests_to_complete() override {}
479 void allow_framedropping(bool) override
480 {
481 while (write(render_operations_fd, "a", 1) != 1) continue;
482
483=== modified file 'tests/mir_test_doubles/test_protobuf_socket_server.cpp'
484--- tests/mir_test_doubles/test_protobuf_socket_server.cpp 2014-01-22 15:54:11 +0000
485+++ tests/mir_test_doubles/test_protobuf_socket_server.cpp 2014-02-06 14:45:58 +0000
486@@ -42,7 +42,6 @@
487 std::make_shared<mtd::StubSessionAuthorizer>(),
488 std::make_shared<mf::NullMessageProcessorReport>()),
489 10,
490- []{},
491 report);
492 }
493 }
494
495=== modified file 'tests/unit-tests/compositor/test_buffer_stream.cpp'
496--- tests/unit-tests/compositor/test_buffer_stream.cpp 2014-02-06 14:45:58 +0000
497+++ tests/unit-tests/compositor/test_buffer_stream.cpp 2014-02-06 14:45:58 +0000
498@@ -39,10 +39,6 @@
499 {
500 mock_buffer = std::make_shared<mtd::StubBuffer>();
501 mock_bundle = std::make_shared<mtd::MockBufferBundle>();
502-
503- // Two of the tests care about this, the rest should not...
504- EXPECT_CALL(*mock_bundle, force_requests_to_complete())
505- .Times(::testing::AnyNumber());
506 }
507
508 std::shared_ptr<mtd::StubBuffer> mock_buffer;
509@@ -75,23 +71,6 @@
510 EXPECT_EQ(format, returned_pf);
511 }
512
513-TEST_F(BufferStreamTest, force_requests_to_complete)
514-{
515- EXPECT_CALL(*mock_bundle, force_requests_to_complete())
516- .Times(2); // Once explcit, once on destruction
517-
518- mc::BufferStreamSurfaces buffer_stream(mock_bundle);
519- buffer_stream.force_requests_to_complete();
520-}
521-
522-TEST_F(BufferStreamTest, requests_are_completed_before_destruction)
523-{
524- EXPECT_CALL(*mock_bundle, force_requests_to_complete())
525- .Times(1);
526-
527- mc::BufferStreamSurfaces buffer_stream(mock_bundle);
528-}
529-
530 TEST_F(BufferStreamTest, get_buffer_for_compositor_handles_resources)
531 {
532 using namespace testing;
533
534=== modified file 'tests/unit-tests/compositor/test_switching_bundle.cpp'
535--- tests/unit-tests/compositor/test_switching_bundle.cpp 2014-02-06 14:45:58 +0000
536+++ tests/unit-tests/compositor/test_switching_bundle.cpp 2014-02-06 14:45:58 +0000
537@@ -293,8 +293,6 @@
538 unsigned long frameno = 0;
539 const int N = 100;
540
541- bundle.force_requests_to_complete();
542-
543 std::shared_ptr<mg::Buffer> buf[N];
544 for (int i = 0; i < N; i++)
545 buf[i] = bundle.compositor_acquire(++frameno);
546@@ -713,7 +711,6 @@
547 * unblock clients. The latter only temporarily unblock clients.
548 * But that requires interface changes all over the place...
549 */
550- bundle.force_requests_to_complete();
551 client.join();
552 }
553 }
554@@ -729,7 +726,6 @@
555 bundle.allow_framedropping(false);
556
557 std::thread client(client_thread, std::ref(bundle), nbuffers);
558- bundle.force_requests_to_complete();
559 client.join();
560
561 EXPECT_FALSE(bundle.framedropping_allowed());
562
563=== modified file 'tests/unit-tests/frontend/test_published_socket_connector.cpp'
564--- tests/unit-tests/frontend/test_published_socket_connector.cpp 2014-01-22 15:54:11 +0000
565+++ tests/unit-tests/frontend/test_published_socket_connector.cpp 2014-02-06 14:45:58 +0000
566@@ -342,27 +342,11 @@
567 EXPECT_EQ(magic.magic(), stub_server_tool->drm_magic);
568 }
569
570-namespace
571-{
572-
573-class MockForceRequests
574-{
575-public:
576- MOCK_METHOD0(force_requests_to_complete, void());
577-};
578-
579-}
580-
581 TEST_F(PublishedSocketConnector, forces_requests_to_complete_when_stopping)
582 {
583- MockForceRequests mock_force_requests;
584 auto stub_server_tool = std::make_shared<mt::StubServerTool>();
585 auto ipc_factory = std::make_shared<mtd::StubIpcFactory>(*stub_server_tool);
586
587- /* Once for the explicit stop() and once when the communicator is destroyed */
588- EXPECT_CALL(mock_force_requests, force_requests_to_complete())
589- .Times(2);
590-
591 auto comms = std::make_shared<mf::PublishedSocketConnector>(
592 "./test_socket1",
593 std::make_shared<mf::ProtobufSessionCreator>(
594@@ -370,7 +354,6 @@
595 std::make_shared<mtd::StubSessionAuthorizer>(),
596 std::make_shared<mf::NullMessageProcessorReport>()),
597 10,
598- std::bind(&MockForceRequests::force_requests_to_complete, &mock_force_requests),
599 std::make_shared<mf::NullConnectorReport>());
600
601 comms->start();
602
603=== modified file 'tests/unit-tests/frontend/test_session_mediator.cpp'
604--- tests/unit-tests/frontend/test_session_mediator.cpp 2014-02-06 14:45:58 +0000
605+++ tests/unit-tests/frontend/test_session_mediator.cpp 2014-02-06 14:45:58 +0000
606@@ -206,10 +206,10 @@
607 report{std::make_shared<mf::NullSessionMediatorReport>()},
608 resource_cache{std::make_shared<mf::ResourceCache>()},
609 stub_screencast{std::make_shared<StubScreencast>()},
610- mediator{shell, graphics_platform, graphics_changer,
611+ mediator{std::make_shared<mf::SessionMediator>(shell, graphics_platform, graphics_changer,
612 surface_pixel_formats, report,
613 std::make_shared<mtd::NullEventSink>(),
614- resource_cache, stub_screencast},
615+ resource_cache, stub_screencast)},
616 stubbed_session{std::make_shared<StubbedSession>()},
617 null_callback{google::protobuf::NewPermanentCallback(google::protobuf::DoNothing)}
618 {
619@@ -227,7 +227,7 @@
620 std::shared_ptr<mf::SessionMediatorReport> const report;
621 std::shared_ptr<mf::ResourceCache> const resource_cache;
622 std::shared_ptr<StubScreencast> const stub_screencast;
623- mf::SessionMediator mediator;
624+ std::shared_ptr<mf::SessionMediator> const mediator;
625 std::shared_ptr<StubbedSession> const stubbed_session;
626
627 std::unique_ptr<google::protobuf::Closure> null_callback;
628@@ -243,8 +243,8 @@
629
630 EXPECT_CALL(*shell, close_session(_)).Times(1);
631
632- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
633- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
634+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
635+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
636 }
637
638 TEST_F(SessionMediatorTest, calling_methods_before_connect_throws)
639@@ -253,31 +253,31 @@
640 mp::SurfaceParameters request;
641 mp::Surface response;
642
643- mediator.create_surface(nullptr, &request, &response, null_callback.get());
644+ mediator->create_surface(nullptr, &request, &response, null_callback.get());
645 }, std::logic_error);
646
647 EXPECT_THROW({
648 mp::SurfaceId request;
649 mp::Buffer response;
650
651- mediator.next_buffer(nullptr, &request, &response, null_callback.get());
652+ mediator->next_buffer(nullptr, &request, &response, null_callback.get());
653 }, std::logic_error);
654
655 EXPECT_THROW({
656 mp::SurfaceId request;
657
658- mediator.release_surface(nullptr, &request, nullptr, null_callback.get());
659+ mediator->release_surface(nullptr, &request, nullptr, null_callback.get());
660 }, std::logic_error);
661
662 EXPECT_THROW({
663 mp::DRMMagic request;
664 mp::DRMAuthMagicStatus response;
665
666- mediator.drm_auth_magic(nullptr, &request, &response, null_callback.get());
667+ mediator->drm_auth_magic(nullptr, &request, &response, null_callback.get());
668 }, std::logic_error);
669
670 EXPECT_THROW({
671- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
672+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
673 }, std::logic_error);
674 }
675
676@@ -286,23 +286,23 @@
677 mp::ConnectParameters connect_parameters;
678 mp::Connection connection;
679
680- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
681+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
682
683 {
684 mp::SurfaceParameters request;
685 mp::Surface surface_response;
686
687- mediator.create_surface(nullptr, &request, &surface_response, null_callback.get());
688+ mediator->create_surface(nullptr, &request, &surface_response, null_callback.get());
689
690 mp::SurfaceId surface = surface_response.id();
691 mp::Buffer buffer_response;
692
693- mediator.next_buffer(nullptr, &surface, &buffer_response, null_callback.get());
694+ mediator->next_buffer(nullptr, &surface, &buffer_response, null_callback.get());
695
696- mediator.release_surface(nullptr, &surface, nullptr, null_callback.get());
697+ mediator->release_surface(nullptr, &surface, nullptr, null_callback.get());
698 }
699
700- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
701+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
702 }
703
704 TEST_F(SessionMediatorTest, calling_methods_after_disconnect_throws)
705@@ -310,39 +310,39 @@
706 mp::ConnectParameters connect_parameters;
707 mp::Connection connection;
708
709- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
710+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
711
712- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
713+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
714
715 EXPECT_THROW({
716 mp::SurfaceParameters surface_parameters;
717 mp::Surface surface;
718
719- mediator.create_surface(nullptr, &surface_parameters, &surface, null_callback.get());
720+ mediator->create_surface(nullptr, &surface_parameters, &surface, null_callback.get());
721 }, std::logic_error);
722
723 EXPECT_THROW({
724 mp::SurfaceId request;
725 mp::Buffer response;
726
727- mediator.next_buffer(nullptr, &request, &response, null_callback.get());
728+ mediator->next_buffer(nullptr, &request, &response, null_callback.get());
729 }, std::logic_error);
730
731 EXPECT_THROW({
732 mp::SurfaceId request;
733
734- mediator.release_surface(nullptr, &request, nullptr, null_callback.get());
735+ mediator->release_surface(nullptr, &request, nullptr, null_callback.get());
736 }, std::logic_error);
737
738 EXPECT_THROW({
739 mp::DRMMagic request;
740 mp::DRMAuthMagicStatus response;
741
742- mediator.drm_auth_magic(nullptr, &request, &response, null_callback.get());
743+ mediator->drm_auth_magic(nullptr, &request, &response, null_callback.get());
744 }, std::logic_error);
745
746 EXPECT_THROW({
747- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
748+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
749 }, std::logic_error);
750 }
751
752@@ -351,11 +351,11 @@
753 mp::ConnectParameters connect_parameters;
754 mp::Connection connection;
755
756- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
757-
758- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
759-
760- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
761+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
762+
763+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
764+
765+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
766 }
767
768 TEST_F(SessionMediatorTest, connect_packs_display_configuration)
769@@ -369,7 +369,7 @@
770 EXPECT_CALL(*mock_display, active_configuration())
771 .Times(1)
772 .WillOnce(Return(mt::fake_shared(config)));
773- mf::SessionMediator mediator(
774+ auto const mediator = std::make_shared<mf::SessionMediator>(
775 shell, graphics_platform, mock_display,
776 surface_pixel_formats, report,
777 std::make_shared<mtd::NullEventSink>(),
778@@ -382,7 +382,7 @@
779 connection.clear_display_output();
780 connection.clear_display_configuration();
781
782- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
783+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
784
785 EXPECT_THAT(connection.display_configuration(),
786 mt::DisplayConfigMatches(std::cref(config)));
787@@ -393,17 +393,17 @@
788 mp::ConnectParameters connect_parameters;
789 mp::Connection connection;
790
791- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
792+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
793
794 {
795 mp::SurfaceParameters request;
796 mp::Surface response;
797
798- mediator.create_surface(nullptr, &request, &response, null_callback.get());
799+ mediator->create_surface(nullptr, &request, &response, null_callback.get());
800 EXPECT_EQ(StubbedSession::testing_client_input_fd, response.fd(0));
801 }
802
803- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
804+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
805 }
806
807 TEST_F(SessionMediatorTest, no_input_channel_is_nonfatal)
808@@ -416,16 +416,16 @@
809 EXPECT_CALL(*stubbed_session->mock_surface, client_input_fd())
810 .Times(0);
811
812- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
813+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
814
815 {
816 mp::SurfaceParameters request;
817 mp::Surface response;
818
819- mediator.create_surface(nullptr, &request, &response, null_callback.get());
820+ mediator->create_surface(nullptr, &request, &response, null_callback.get());
821 }
822
823- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
824+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
825 }
826
827 TEST_F(SessionMediatorTest, session_only_sends_needed_buffers)
828@@ -435,7 +435,7 @@
829 mp::ConnectParameters connect_parameters;
830 mp::Connection connection;
831
832- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
833+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
834
835 {
836 EXPECT_CALL(*stubbed_session->mock_buffer, id())
837@@ -456,14 +456,14 @@
838 .Times(2);
839
840 mp::SurfaceParameters surface_request;
841- mediator.create_surface(nullptr, &surface_request, &surface_response, null_callback.get());
842+ mediator->create_surface(nullptr, &surface_request, &surface_response, null_callback.get());
843 buffer_request = surface_response.id();
844- mediator.next_buffer(nullptr, &buffer_request, &buffer_response[0], null_callback.get());
845- mediator.next_buffer(nullptr, &buffer_request, &buffer_response[1], null_callback.get());
846- mediator.next_buffer(nullptr, &buffer_request, &buffer_response[2], null_callback.get());
847+ mediator->next_buffer(nullptr, &buffer_request, &buffer_response[0], null_callback.get());
848+ mediator->next_buffer(nullptr, &buffer_request, &buffer_response[1], null_callback.get());
849+ mediator->next_buffer(nullptr, &buffer_request, &buffer_response[2], null_callback.get());
850 }
851
852- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
853+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
854 }
855
856 TEST_F(SessionMediatorTest, session_with_multiple_surfaces_only_sends_needed_buffers)
857@@ -473,7 +473,7 @@
858 mp::ConnectParameters connect_parameters;
859 mp::Connection connection;
860
861- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
862+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
863
864 {
865 // AFAICS these values are stubs to set up the test condition,
866@@ -504,19 +504,19 @@
867 .Times(4);
868
869 mp::SurfaceParameters surface_request;
870- mediator.create_surface(nullptr, &surface_request, &surface_response[0], null_callback.get());
871- mediator.create_surface(nullptr, &surface_request, &surface_response[1], null_callback.get());
872+ mediator->create_surface(nullptr, &surface_request, &surface_response[0], null_callback.get());
873+ mediator->create_surface(nullptr, &surface_request, &surface_response[1], null_callback.get());
874 buffer_request[0] = surface_response[0].id();
875 buffer_request[1] = surface_response[1].id();
876- mediator.next_buffer(nullptr, &buffer_request[0], &buffer_response[0], null_callback.get());
877- mediator.next_buffer(nullptr, &buffer_request[1], &buffer_response[1], null_callback.get());
878- mediator.next_buffer(nullptr, &buffer_request[0], &buffer_response[2], null_callback.get());
879- mediator.next_buffer(nullptr, &buffer_request[1], &buffer_response[3], null_callback.get());
880- mediator.next_buffer(nullptr, &buffer_request[0], &buffer_response[4], null_callback.get());
881- mediator.next_buffer(nullptr, &buffer_request[1], &buffer_response[5], null_callback.get());
882+ mediator->next_buffer(nullptr, &buffer_request[0], &buffer_response[0], null_callback.get());
883+ mediator->next_buffer(nullptr, &buffer_request[1], &buffer_response[1], null_callback.get());
884+ mediator->next_buffer(nullptr, &buffer_request[0], &buffer_response[2], null_callback.get());
885+ mediator->next_buffer(nullptr, &buffer_request[1], &buffer_response[3], null_callback.get());
886+ mediator->next_buffer(nullptr, &buffer_request[0], &buffer_response[4], null_callback.get());
887+ mediator->next_buffer(nullptr, &buffer_request[1], &buffer_response[5], null_callback.get());
888 }
889
890- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
891+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
892 }
893
894 TEST_F(SessionMediatorTest, buffer_resource_for_surface_unaffected_by_other_surfaces)
895@@ -527,7 +527,7 @@
896 mp::ConnectParameters connect_parameters;
897 mp::Connection connection;
898
899- mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
900+ mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
901 mp::SurfaceParameters surface_request;
902 mp::Surface surface_response;
903
904@@ -539,28 +539,28 @@
905 EXPECT_CALL(*stubbed_session->mock_surface, swap_buffers(_, _))
906 .WillOnce(InvokeArgument<1>(&buffer));
907
908- mediator.create_surface(nullptr, &surface_request, &surface_response, null_callback.get());
909+ mediator->create_surface(nullptr, &surface_request, &surface_response, null_callback.get());
910 mp::SurfaceId our_surface{surface_response.id()};
911
912 Mock::VerifyAndClearExpectations(stubbed_session->mock_surface.get());
913
914 /* Creating a new surface should not affect our surfaces' buffers */
915 EXPECT_CALL(*stubbed_session->mock_surface, swap_buffers(_, _)).Times(0);
916- mediator.create_surface(nullptr, &surface_request, &surface_response, null_callback.get());
917+ mediator->create_surface(nullptr, &surface_request, &surface_response, null_callback.get());
918
919 mp::SurfaceId new_surface{surface_response.id()};
920 mp::Buffer buffer_response;
921
922 /* Getting the next buffer of new surface should not affect our surfaces' buffers */
923- mediator.next_buffer(nullptr, &new_surface, &buffer_response, null_callback.get());
924+ mediator->next_buffer(nullptr, &new_surface, &buffer_response, null_callback.get());
925
926 Mock::VerifyAndClearExpectations(stubbed_session->mock_surface.get());
927
928 /* Getting the next buffer of our surface should post the original */
929 EXPECT_CALL(*stubbed_session->mock_surface, swap_buffers(Eq(&buffer), _)).Times(1);
930
931- mediator.next_buffer(nullptr, &our_surface, &buffer_response, null_callback.get());
932- mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
933+ mediator->next_buffer(nullptr, &our_surface, &buffer_response, null_callback.get());
934+ mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
935 }
936
937 TEST_F(SessionMediatorTest, display_config_request)
938@@ -601,13 +601,13 @@
939 .InSequence(seq)
940 .WillOnce(Return(mt::fake_shared(stub_display_config)));
941
942- mf::SessionMediator session_mediator{
943+ auto const session_mediator = std::make_shared<mf::SessionMediator>(
944 shell, graphics_platform, mock_display_selector,
945 surface_pixel_formats, report,
946 std::make_shared<mtd::NullEventSink>(), resource_cache,
947- std::make_shared<mtd::NullScreencast>()};
948+ std::make_shared<mtd::NullScreencast>());
949
950- session_mediator.connect(nullptr, &connect_parameters, &connection, null_callback.get());
951+ session_mediator->connect(nullptr, &connect_parameters, &connection, null_callback.get());
952
953 mp::DisplayConfiguration configuration_response;
954 mp::DisplayConfiguration configuration;
955@@ -631,12 +631,12 @@
956 disp1->set_power_mode(static_cast<uint32_t>(mir_power_mode_off));
957 disp1->set_orientation(mir_orientation_inverted);
958
959- session_mediator.configure_display(nullptr, &configuration,
960+ session_mediator->configure_display(nullptr, &configuration,
961 &configuration_response, null_callback.get());
962
963 EXPECT_THAT(configuration_response, mt::DisplayConfigMatches(std::cref(stub_display_config)));
964
965- session_mediator.disconnect(nullptr, nullptr, nullptr, null_callback.get());
966+ session_mediator->disconnect(nullptr, nullptr, nullptr, null_callback.get());
967 }
968
969 TEST_F(SessionMediatorTest, fully_packs_buffer_for_create_screencast)
970@@ -649,7 +649,7 @@
971
972 EXPECT_CALL(*graphics_platform, fill_ipc_package(_, &stub_buffer));
973
974- mediator.create_screencast(nullptr, &screencast_parameters,
975+ mediator->create_screencast(nullptr, &screencast_parameters,
976 &screencast, null_callback.get());
977
978 EXPECT_EQ(stub_buffer.id().as_uint32_t(),
979@@ -667,7 +667,7 @@
980 EXPECT_CALL(*graphics_platform, fill_ipc_package(_, &stub_buffer))
981 .Times(0);
982
983- mediator.screencast_buffer(nullptr, &screencast_id,
984+ mediator->screencast_buffer(nullptr, &screencast_id,
985 &protobuf_buffer, null_callback.get());
986
987 EXPECT_EQ(stub_buffer.id().as_uint32_t(),
988
989=== modified file 'tests/unit-tests/scene/test_surface.cpp'
990--- tests/unit-tests/scene/test_surface.cpp 2014-02-06 14:45:58 +0000
991+++ tests/unit-tests/scene/test_surface.cpp 2014-02-06 14:45:58 +0000
992@@ -377,16 +377,6 @@
993 EXPECT_FLOAT_EQ(alpha, compositing_criteria->alpha());
994 }
995
996-TEST_F(SurfaceCreation, test_surface_force_requests_to_complete)
997-{
998- using namespace testing;
999-
1000- EXPECT_CALL(*mock_buffer_stream, force_requests_to_complete()).Times(Exactly(1));
1001-
1002- ms::BasicSurface surf(stub_data, mock_buffer_stream, std::shared_ptr<mi::InputChannel>(), report);
1003- surf.force_requests_to_complete();
1004-}
1005-
1006 TEST_F(SurfaceCreation, test_surface_allow_framedropping)
1007 {
1008 using namespace testing;
1009
1010=== modified file 'tests/unit-tests/scene/test_surface_stack.cpp'
1011--- tests/unit-tests/scene/test_surface_stack.cpp 2014-02-06 14:45:58 +0000
1012+++ tests/unit-tests/scene/test_surface_stack.cpp 2014-02-06 14:45:58 +0000
1013@@ -75,7 +75,6 @@
1014 virtual std::shared_ptr<mg::Buffer> snapshot_acquire(){ return std::shared_ptr<mg::Buffer>(); };
1015 virtual void snapshot_release(std::shared_ptr<mg::Buffer> const&){}
1016 virtual void force_client_abort() {}
1017- void force_requests_to_complete() {}
1018 virtual void allow_framedropping(bool) {}
1019 virtual mg::BufferProperties properties() const { return mg::BufferProperties{}; };
1020 void resize(const geom::Size &) override {}

Subscribers

People subscribed via source and target branches