Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Side by Side Diff: mojo/public/cpp/utility/tests/run_loop_unittest.cc

Issue 668663006: Standardize usage of virtual/override/final in mojo/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/public/cpp/utility/run_loop.h" 5 #include "mojo/public/cpp/utility/run_loop.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "mojo/public/cpp/system/core.h" 9 #include "mojo/public/cpp/system/core.h"
10 #include "mojo/public/cpp/test_support/test_utils.h" 10 #include "mojo/public/cpp/test_support/test_utils.h"
11 #include "mojo/public/cpp/utility/run_loop_handler.h" 11 #include "mojo/public/cpp/utility/run_loop_handler.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 namespace mojo { 14 namespace mojo {
15 namespace { 15 namespace {
16 16
17 class TestRunLoopHandler : public RunLoopHandler { 17 class TestRunLoopHandler : public RunLoopHandler {
18 public: 18 public:
19 TestRunLoopHandler() 19 TestRunLoopHandler()
20 : ready_count_(0), 20 : ready_count_(0),
21 error_count_(0), 21 error_count_(0),
22 last_error_result_(MOJO_RESULT_OK) { 22 last_error_result_(MOJO_RESULT_OK) {
23 } 23 }
24 virtual ~TestRunLoopHandler() {} 24 ~TestRunLoopHandler() override {}
25 25
26 void clear_ready_count() { ready_count_ = 0; } 26 void clear_ready_count() { ready_count_ = 0; }
27 int ready_count() const { return ready_count_; } 27 int ready_count() const { return ready_count_; }
28 28
29 void clear_error_count() { error_count_ = 0; } 29 void clear_error_count() { error_count_ = 0; }
30 int error_count() const { return error_count_; } 30 int error_count() const { return error_count_; }
31 31
32 MojoResult last_error_result() const { return last_error_result_; } 32 MojoResult last_error_result() const { return last_error_result_; }
33 33
34 // RunLoopHandler: 34 // RunLoopHandler:
35 virtual void OnHandleReady(const Handle& handle) override { ready_count_++; } 35 void OnHandleReady(const Handle& handle) override { ready_count_++; }
36 virtual void OnHandleError(const Handle& handle, MojoResult result) override { 36 void OnHandleError(const Handle& handle, MojoResult result) override {
37 error_count_++; 37 error_count_++;
38 last_error_result_ = result; 38 last_error_result_ = result;
39 } 39 }
40 40
41 private: 41 private:
42 int ready_count_; 42 int ready_count_;
43 int error_count_; 43 int error_count_;
44 MojoResult last_error_result_; 44 MojoResult last_error_result_;
45 45
46 MOJO_DISALLOW_COPY_AND_ASSIGN(TestRunLoopHandler); 46 MOJO_DISALLOW_COPY_AND_ASSIGN(TestRunLoopHandler);
(...skipping 19 matching lines...) Expand all
66 // Trivial test to verify Run() with no added handles returns. 66 // Trivial test to verify Run() with no added handles returns.
67 TEST_F(RunLoopTest, ExitsWithNoHandles) { 67 TEST_F(RunLoopTest, ExitsWithNoHandles) {
68 RunLoop run_loop; 68 RunLoop run_loop;
69 run_loop.Run(); 69 run_loop.Run();
70 } 70 }
71 71
72 class RemoveOnReadyRunLoopHandler : public TestRunLoopHandler { 72 class RemoveOnReadyRunLoopHandler : public TestRunLoopHandler {
73 public: 73 public:
74 RemoveOnReadyRunLoopHandler() : run_loop_(NULL) { 74 RemoveOnReadyRunLoopHandler() : run_loop_(NULL) {
75 } 75 }
76 virtual ~RemoveOnReadyRunLoopHandler() {} 76 ~RemoveOnReadyRunLoopHandler() override {}
77 77
78 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; } 78 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; }
79 79
80 // RunLoopHandler: 80 // RunLoopHandler:
81 virtual void OnHandleReady(const Handle& handle) override { 81 void OnHandleReady(const Handle& handle) override {
82 run_loop_->RemoveHandler(handle); 82 run_loop_->RemoveHandler(handle);
83 TestRunLoopHandler::OnHandleReady(handle); 83 TestRunLoopHandler::OnHandleReady(handle);
84 } 84 }
85 85
86 private: 86 private:
87 RunLoop* run_loop_; 87 RunLoop* run_loop_;
88 88
89 MOJO_DISALLOW_COPY_AND_ASSIGN(RemoveOnReadyRunLoopHandler); 89 MOJO_DISALLOW_COPY_AND_ASSIGN(RemoveOnReadyRunLoopHandler);
90 }; 90 };
91 91
(...skipping 10 matching lines...) Expand all
102 run_loop.Run(); 102 run_loop.Run();
103 EXPECT_EQ(1, handler.ready_count()); 103 EXPECT_EQ(1, handler.ready_count());
104 EXPECT_EQ(0, handler.error_count()); 104 EXPECT_EQ(0, handler.error_count());
105 EXPECT_FALSE(run_loop.HasHandler(test_pipe.handle0.get())); 105 EXPECT_FALSE(run_loop.HasHandler(test_pipe.handle0.get()));
106 } 106 }
107 107
108 class QuitOnReadyRunLoopHandler : public TestRunLoopHandler { 108 class QuitOnReadyRunLoopHandler : public TestRunLoopHandler {
109 public: 109 public:
110 QuitOnReadyRunLoopHandler() : run_loop_(NULL) { 110 QuitOnReadyRunLoopHandler() : run_loop_(NULL) {
111 } 111 }
112 virtual ~QuitOnReadyRunLoopHandler() {} 112 ~QuitOnReadyRunLoopHandler() override {}
113 113
114 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; } 114 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; }
115 115
116 // RunLoopHandler: 116 // RunLoopHandler:
117 virtual void OnHandleReady(const Handle& handle) override { 117 void OnHandleReady(const Handle& handle) override {
118 run_loop_->Quit(); 118 run_loop_->Quit();
119 TestRunLoopHandler::OnHandleReady(handle); 119 TestRunLoopHandler::OnHandleReady(handle);
120 } 120 }
121 121
122 private: 122 private:
123 RunLoop* run_loop_; 123 RunLoop* run_loop_;
124 124
125 MOJO_DISALLOW_COPY_AND_ASSIGN(QuitOnReadyRunLoopHandler); 125 MOJO_DISALLOW_COPY_AND_ASSIGN(QuitOnReadyRunLoopHandler);
126 }; 126 };
127 127
(...skipping 10 matching lines...) Expand all
138 run_loop.Run(); 138 run_loop.Run();
139 EXPECT_EQ(1, handler.ready_count()); 139 EXPECT_EQ(1, handler.ready_count());
140 EXPECT_EQ(0, handler.error_count()); 140 EXPECT_EQ(0, handler.error_count());
141 EXPECT_TRUE(run_loop.HasHandler(test_pipe.handle0.get())); 141 EXPECT_TRUE(run_loop.HasHandler(test_pipe.handle0.get()));
142 } 142 }
143 143
144 class QuitOnErrorRunLoopHandler : public TestRunLoopHandler { 144 class QuitOnErrorRunLoopHandler : public TestRunLoopHandler {
145 public: 145 public:
146 QuitOnErrorRunLoopHandler() : run_loop_(NULL) { 146 QuitOnErrorRunLoopHandler() : run_loop_(NULL) {
147 } 147 }
148 virtual ~QuitOnErrorRunLoopHandler() {} 148 ~QuitOnErrorRunLoopHandler() override {}
149 149
150 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; } 150 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; }
151 151
152 // RunLoopHandler: 152 // RunLoopHandler:
153 virtual void OnHandleError(const Handle& handle, MojoResult result) override { 153 void OnHandleError(const Handle& handle, MojoResult result) override {
154 run_loop_->Quit(); 154 run_loop_->Quit();
155 TestRunLoopHandler::OnHandleError(handle, result); 155 TestRunLoopHandler::OnHandleError(handle, result);
156 } 156 }
157 157
158 private: 158 private:
159 RunLoop* run_loop_; 159 RunLoop* run_loop_;
160 160
161 MOJO_DISALLOW_COPY_AND_ASSIGN(QuitOnErrorRunLoopHandler); 161 MOJO_DISALLOW_COPY_AND_ASSIGN(QuitOnErrorRunLoopHandler);
162 }; 162 };
163 163
(...skipping 25 matching lines...) Expand all
189 MOJO_DEADLINE_INDEFINITE); 189 MOJO_DEADLINE_INDEFINITE);
190 } 190 }
191 EXPECT_EQ(1, handler.error_count()); 191 EXPECT_EQ(1, handler.error_count());
192 EXPECT_EQ(MOJO_RESULT_ABORTED, handler.last_error_result()); 192 EXPECT_EQ(MOJO_RESULT_ABORTED, handler.last_error_result());
193 } 193 }
194 194
195 class RemoveManyRunLoopHandler : public TestRunLoopHandler { 195 class RemoveManyRunLoopHandler : public TestRunLoopHandler {
196 public: 196 public:
197 RemoveManyRunLoopHandler() : run_loop_(NULL) { 197 RemoveManyRunLoopHandler() : run_loop_(NULL) {
198 } 198 }
199 virtual ~RemoveManyRunLoopHandler() {} 199 ~RemoveManyRunLoopHandler() override {}
200 200
201 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; } 201 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; }
202 void add_handle(const Handle& handle) { handles_.push_back(handle); } 202 void add_handle(const Handle& handle) { handles_.push_back(handle); }
203 203
204 // RunLoopHandler: 204 // RunLoopHandler:
205 virtual void OnHandleError(const Handle& handle, MojoResult result) override { 205 void OnHandleError(const Handle& handle, MojoResult result) override {
206 for (size_t i = 0; i < handles_.size(); i++) 206 for (size_t i = 0; i < handles_.size(); i++)
207 run_loop_->RemoveHandler(handles_[i]); 207 run_loop_->RemoveHandler(handles_[i]);
208 TestRunLoopHandler::OnHandleError(handle, result); 208 TestRunLoopHandler::OnHandleError(handle, result);
209 } 209 }
210 210
211 private: 211 private:
212 std::vector<Handle> handles_; 212 std::vector<Handle> handles_;
213 RunLoop* run_loop_; 213 RunLoop* run_loop_;
214 214
215 MOJO_DISALLOW_COPY_AND_ASSIGN(RemoveManyRunLoopHandler); 215 MOJO_DISALLOW_COPY_AND_ASSIGN(RemoveManyRunLoopHandler);
(...skipping 25 matching lines...) Expand all
241 EXPECT_EQ(1, odd_handler.error_count()); 241 EXPECT_EQ(1, odd_handler.error_count());
242 EXPECT_EQ(1, even_handler.error_count()); 242 EXPECT_EQ(1, even_handler.error_count());
243 EXPECT_EQ(MOJO_RESULT_ABORTED, odd_handler.last_error_result()); 243 EXPECT_EQ(MOJO_RESULT_ABORTED, odd_handler.last_error_result());
244 EXPECT_EQ(MOJO_RESULT_ABORTED, even_handler.last_error_result()); 244 EXPECT_EQ(MOJO_RESULT_ABORTED, even_handler.last_error_result());
245 } 245 }
246 246
247 class AddHandlerOnErrorHandler : public TestRunLoopHandler { 247 class AddHandlerOnErrorHandler : public TestRunLoopHandler {
248 public: 248 public:
249 AddHandlerOnErrorHandler() : run_loop_(NULL) { 249 AddHandlerOnErrorHandler() : run_loop_(NULL) {
250 } 250 }
251 virtual ~AddHandlerOnErrorHandler() {} 251 ~AddHandlerOnErrorHandler() override {}
252 252
253 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; } 253 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; }
254 254
255 // RunLoopHandler: 255 // RunLoopHandler:
256 virtual void OnHandleError(const Handle& handle, MojoResult result) override { 256 void OnHandleError(const Handle& handle, MojoResult result) override {
257 run_loop_->AddHandler(this, handle, 257 run_loop_->AddHandler(this, handle,
258 MOJO_HANDLE_SIGNAL_READABLE, 258 MOJO_HANDLE_SIGNAL_READABLE,
259 MOJO_DEADLINE_INDEFINITE); 259 MOJO_DEADLINE_INDEFINITE);
260 TestRunLoopHandler::OnHandleError(handle, result); 260 TestRunLoopHandler::OnHandleError(handle, result);
261 } 261 }
262 262
263 private: 263 private:
264 RunLoop* run_loop_; 264 RunLoop* run_loop_;
265 265
266 MOJO_DISALLOW_COPY_AND_ASSIGN(AddHandlerOnErrorHandler); 266 MOJO_DISALLOW_COPY_AND_ASSIGN(AddHandlerOnErrorHandler);
(...skipping 27 matching lines...) Expand all
294 public: 294 public:
295 static const size_t kDepthLimit; 295 static const size_t kDepthLimit;
296 static const char kSignalMagic; 296 static const char kSignalMagic;
297 297
298 NestingRunLoopHandler() 298 NestingRunLoopHandler()
299 : run_loop_(NULL), 299 : run_loop_(NULL),
300 pipe_(NULL), 300 pipe_(NULL),
301 depth_(0), 301 depth_(0),
302 reached_depth_limit_(false) {} 302 reached_depth_limit_(false) {}
303 303
304 virtual ~NestingRunLoopHandler() {} 304 ~NestingRunLoopHandler() override {}
305 305
306 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; } 306 void set_run_loop(RunLoop* run_loop) { run_loop_ = run_loop; }
307 void set_pipe(MessagePipe* pipe) { pipe_ = pipe; } 307 void set_pipe(MessagePipe* pipe) { pipe_ = pipe; }
308 bool reached_depth_limit() const { return reached_depth_limit_; } 308 bool reached_depth_limit() const { return reached_depth_limit_; }
309 309
310 // RunLoopHandler: 310 // RunLoopHandler:
311 virtual void OnHandleReady(const Handle& handle) override { 311 void OnHandleReady(const Handle& handle) override {
312 TestRunLoopHandler::OnHandleReady(handle); 312 TestRunLoopHandler::OnHandleReady(handle);
313 EXPECT_EQ(handle.value(), pipe_->handle0.get().value()); 313 EXPECT_EQ(handle.value(), pipe_->handle0.get().value());
314 314
315 ReadSignal(); 315 ReadSignal();
316 size_t current_depth = ++depth_; 316 size_t current_depth = ++depth_;
317 if (current_depth < kDepthLimit) { 317 if (current_depth < kDepthLimit) {
318 WriteSignal(); 318 WriteSignal();
319 run_loop_->Run(); 319 run_loop_->Run();
320 if (current_depth == kDepthLimit - 1) { 320 if (current_depth == kDepthLimit - 1) {
321 // The topmost loop Quit()-ed, so its parent takes back the 321 // The topmost loop Quit()-ed, so its parent takes back the
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 run_loop.AddHandler(&handler, 422 run_loop.AddHandler(&handler,
423 test_pipe.handle0.get(), 423 test_pipe.handle0.get(),
424 MOJO_HANDLE_SIGNAL_READABLE, 424 MOJO_HANDLE_SIGNAL_READABLE,
425 MOJO_DEADLINE_INDEFINITE); 425 MOJO_DEADLINE_INDEFINITE);
426 run_loop.PostDelayedTask(Closure(QuittingTask(&run_loop)), 0); 426 run_loop.PostDelayedTask(Closure(QuittingTask(&run_loop)), 0);
427 run_loop.Run(); 427 run_loop.Run();
428 } 428 }
429 429
430 } // namespace 430 } // namespace
431 } // namespace mojo 431 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/cpp/utility/tests/mutex_unittest.cc ('k') | mojo/public/cpp/utility/tests/thread_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698