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

Side by Side Diff: device/sensors/data_fetcher_shared_memory_base_unittest.cc

Issue 2845763002: Remove DeviceLightEvent implementation (Closed)
Patch Set: same as previous patch Created 3 years, 7 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 "device/sensors/data_fetcher_shared_memory_base.h" 5 #include "device/sensors/data_fetcher_shared_memory_base.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/process/process_handle.h" 9 #include "base/process/process_handle.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
11 #include "base/synchronization/waitable_event.h" 11 #include "base/synchronization/waitable_event.h"
12 #include "base/threading/thread.h" 12 #include "base/threading/thread.h"
13 #include "device/sensors/public/cpp/device_light_hardware_buffer.h"
14 #include "device/sensors/public/cpp/device_motion_hardware_buffer.h" 13 #include "device/sensors/public/cpp/device_motion_hardware_buffer.h"
15 #include "device/sensors/public/cpp/device_orientation_hardware_buffer.h" 14 #include "device/sensors/public/cpp/device_orientation_hardware_buffer.h"
16 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
17 16
18 namespace device { 17 namespace device {
19 18
20 namespace { 19 namespace {
21 20
22 class FakeDataFetcher : public DataFetcherSharedMemoryBase { 21 class FakeDataFetcher : public DataFetcherSharedMemoryBase {
23 public: 22 public:
24 FakeDataFetcher() 23 FakeDataFetcher()
25 : start_light_(base::WaitableEvent::ResetPolicy::AUTOMATIC, 24 : start_motion_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
26 base::WaitableEvent::InitialState::NOT_SIGNALED),
27 start_motion_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
28 base::WaitableEvent::InitialState::NOT_SIGNALED), 25 base::WaitableEvent::InitialState::NOT_SIGNALED),
29 start_orientation_(base::WaitableEvent::ResetPolicy::AUTOMATIC, 26 start_orientation_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
30 base::WaitableEvent::InitialState::NOT_SIGNALED), 27 base::WaitableEvent::InitialState::NOT_SIGNALED),
31 start_orientation_absolute_( 28 start_orientation_absolute_(
32 base::WaitableEvent::ResetPolicy::AUTOMATIC, 29 base::WaitableEvent::ResetPolicy::AUTOMATIC,
33 base::WaitableEvent::InitialState::NOT_SIGNALED), 30 base::WaitableEvent::InitialState::NOT_SIGNALED),
34 stop_light_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
35 base::WaitableEvent::InitialState::NOT_SIGNALED),
36 stop_motion_(base::WaitableEvent::ResetPolicy::AUTOMATIC, 31 stop_motion_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
37 base::WaitableEvent::InitialState::NOT_SIGNALED), 32 base::WaitableEvent::InitialState::NOT_SIGNALED),
38 stop_orientation_(base::WaitableEvent::ResetPolicy::AUTOMATIC, 33 stop_orientation_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
39 base::WaitableEvent::InitialState::NOT_SIGNALED), 34 base::WaitableEvent::InitialState::NOT_SIGNALED),
40 stop_orientation_absolute_( 35 stop_orientation_absolute_(
41 base::WaitableEvent::ResetPolicy::AUTOMATIC, 36 base::WaitableEvent::ResetPolicy::AUTOMATIC,
42 base::WaitableEvent::InitialState::NOT_SIGNALED), 37 base::WaitableEvent::InitialState::NOT_SIGNALED),
43 updated_light_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
44 base::WaitableEvent::InitialState::NOT_SIGNALED),
45 updated_motion_(base::WaitableEvent::ResetPolicy::AUTOMATIC, 38 updated_motion_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
46 base::WaitableEvent::InitialState::NOT_SIGNALED), 39 base::WaitableEvent::InitialState::NOT_SIGNALED),
47 updated_orientation_(base::WaitableEvent::ResetPolicy::AUTOMATIC, 40 updated_orientation_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
48 base::WaitableEvent::InitialState::NOT_SIGNALED), 41 base::WaitableEvent::InitialState::NOT_SIGNALED),
49 updated_orientation_absolute_( 42 updated_orientation_absolute_(
50 base::WaitableEvent::ResetPolicy::AUTOMATIC, 43 base::WaitableEvent::ResetPolicy::AUTOMATIC,
51 base::WaitableEvent::InitialState::NOT_SIGNALED), 44 base::WaitableEvent::InitialState::NOT_SIGNALED),
52 light_buffer_(nullptr),
53 motion_buffer_(nullptr), 45 motion_buffer_(nullptr),
54 orientation_buffer_(nullptr), 46 orientation_buffer_(nullptr),
55 orientation_absolute_buffer_(nullptr) {} 47 orientation_absolute_buffer_(nullptr) {}
56 ~FakeDataFetcher() override { Shutdown(); } 48 ~FakeDataFetcher() override { Shutdown(); }
57 49
58 bool Init(ConsumerType consumer_type, void* buffer) { 50 bool Init(ConsumerType consumer_type, void* buffer) {
59 EXPECT_TRUE(buffer); 51 EXPECT_TRUE(buffer);
60 52
61 switch (consumer_type) { 53 switch (consumer_type) {
62 case CONSUMER_TYPE_MOTION: 54 case CONSUMER_TYPE_MOTION:
63 motion_buffer_ = static_cast<DeviceMotionHardwareBuffer*>(buffer); 55 motion_buffer_ = static_cast<DeviceMotionHardwareBuffer*>(buffer);
64 break; 56 break;
65 case CONSUMER_TYPE_ORIENTATION: 57 case CONSUMER_TYPE_ORIENTATION:
66 orientation_buffer_ = 58 orientation_buffer_ =
67 static_cast<DeviceOrientationHardwareBuffer*>(buffer); 59 static_cast<DeviceOrientationHardwareBuffer*>(buffer);
68 break; 60 break;
69 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: 61 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE:
70 orientation_absolute_buffer_ = 62 orientation_absolute_buffer_ =
71 static_cast<DeviceOrientationHardwareBuffer*>(buffer); 63 static_cast<DeviceOrientationHardwareBuffer*>(buffer);
72 break; 64 break;
73 case CONSUMER_TYPE_LIGHT:
74 light_buffer_ = static_cast<DeviceLightHardwareBuffer*>(buffer);
75 break;
76 default: 65 default:
77 return false; 66 return false;
78 } 67 }
79 return true; 68 return true;
80 } 69 }
81 70
82 void UpdateLight() {
83 DeviceLightHardwareBuffer* buffer = GetLightBuffer();
84 ASSERT_TRUE(buffer);
85 buffer->seqlock.WriteBegin();
86 buffer->data.value = 100;
87 buffer->seqlock.WriteEnd();
88 updated_light_.Signal();
89 }
90
91 void UpdateMotion() { 71 void UpdateMotion() {
92 DeviceMotionHardwareBuffer* buffer = GetMotionBuffer(); 72 DeviceMotionHardwareBuffer* buffer = GetMotionBuffer();
93 ASSERT_TRUE(buffer); 73 ASSERT_TRUE(buffer);
94 buffer->seqlock.WriteBegin(); 74 buffer->seqlock.WriteBegin();
95 buffer->data.interval = kDeviceSensorIntervalMicroseconds / 1000.; 75 buffer->data.interval = kDeviceSensorIntervalMicroseconds / 1000.;
96 buffer->seqlock.WriteEnd(); 76 buffer->seqlock.WriteEnd();
97 updated_motion_.Signal(); 77 updated_motion_.Signal();
98 } 78 }
99 79
100 void UpdateOrientation() { 80 void UpdateOrientation() {
101 DeviceOrientationHardwareBuffer* buffer = GetOrientationBuffer(); 81 DeviceOrientationHardwareBuffer* buffer = GetOrientationBuffer();
102 ASSERT_TRUE(buffer); 82 ASSERT_TRUE(buffer);
103 buffer->seqlock.WriteBegin(); 83 buffer->seqlock.WriteBegin();
104 buffer->data.alpha = 1; 84 buffer->data.alpha = 1;
105 buffer->seqlock.WriteEnd(); 85 buffer->seqlock.WriteEnd();
106 updated_orientation_.Signal(); 86 updated_orientation_.Signal();
107 } 87 }
108 88
109 void UpdateOrientationAbsolute() { 89 void UpdateOrientationAbsolute() {
110 DeviceOrientationHardwareBuffer* buffer = GetOrientationAbsoluteBuffer(); 90 DeviceOrientationHardwareBuffer* buffer = GetOrientationAbsoluteBuffer();
111 ASSERT_TRUE(buffer); 91 ASSERT_TRUE(buffer);
112 buffer->seqlock.WriteBegin(); 92 buffer->seqlock.WriteBegin();
113 buffer->data.alpha = 1; 93 buffer->data.alpha = 1;
114 buffer->data.absolute = true; 94 buffer->data.absolute = true;
115 buffer->seqlock.WriteEnd(); 95 buffer->seqlock.WriteEnd();
116 updated_orientation_absolute_.Signal(); 96 updated_orientation_absolute_.Signal();
117 } 97 }
118 98
119 DeviceLightHardwareBuffer* GetLightBuffer() const { return light_buffer_; }
120
121 DeviceMotionHardwareBuffer* GetMotionBuffer() const { return motion_buffer_; } 99 DeviceMotionHardwareBuffer* GetMotionBuffer() const { return motion_buffer_; }
122 100
123 DeviceOrientationHardwareBuffer* GetOrientationBuffer() const { 101 DeviceOrientationHardwareBuffer* GetOrientationBuffer() const {
124 return orientation_buffer_; 102 return orientation_buffer_;
125 } 103 }
126 104
127 DeviceOrientationHardwareBuffer* GetOrientationAbsoluteBuffer() const { 105 DeviceOrientationHardwareBuffer* GetOrientationAbsoluteBuffer() const {
128 return orientation_absolute_buffer_; 106 return orientation_absolute_buffer_;
129 } 107 }
130 108
131 void WaitForStart(ConsumerType consumer_type) { 109 void WaitForStart(ConsumerType consumer_type) {
132 switch (consumer_type) { 110 switch (consumer_type) {
133 case CONSUMER_TYPE_MOTION: 111 case CONSUMER_TYPE_MOTION:
134 start_motion_.Wait(); 112 start_motion_.Wait();
135 break; 113 break;
136 case CONSUMER_TYPE_ORIENTATION: 114 case CONSUMER_TYPE_ORIENTATION:
137 start_orientation_.Wait(); 115 start_orientation_.Wait();
138 break; 116 break;
139 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: 117 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE:
140 start_orientation_absolute_.Wait(); 118 start_orientation_absolute_.Wait();
141 break; 119 break;
142 case CONSUMER_TYPE_LIGHT:
143 start_light_.Wait();
144 break;
145 } 120 }
146 } 121 }
147 122
148 void WaitForStop(ConsumerType consumer_type) { 123 void WaitForStop(ConsumerType consumer_type) {
149 switch (consumer_type) { 124 switch (consumer_type) {
150 case CONSUMER_TYPE_MOTION: 125 case CONSUMER_TYPE_MOTION:
151 stop_motion_.Wait(); 126 stop_motion_.Wait();
152 break; 127 break;
153 case CONSUMER_TYPE_ORIENTATION: 128 case CONSUMER_TYPE_ORIENTATION:
154 stop_orientation_.Wait(); 129 stop_orientation_.Wait();
155 break; 130 break;
156 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: 131 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE:
157 stop_orientation_absolute_.Wait(); 132 stop_orientation_absolute_.Wait();
158 break; 133 break;
159 case CONSUMER_TYPE_LIGHT:
160 stop_light_.Wait();
161 break;
162 } 134 }
163 } 135 }
164 136
165 void WaitForUpdate(ConsumerType consumer_type) { 137 void WaitForUpdate(ConsumerType consumer_type) {
166 switch (consumer_type) { 138 switch (consumer_type) {
167 case CONSUMER_TYPE_MOTION: 139 case CONSUMER_TYPE_MOTION:
168 updated_motion_.Wait(); 140 updated_motion_.Wait();
169 break; 141 break;
170 case CONSUMER_TYPE_ORIENTATION: 142 case CONSUMER_TYPE_ORIENTATION:
171 updated_orientation_.Wait(); 143 updated_orientation_.Wait();
172 break; 144 break;
173 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: 145 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE:
174 updated_orientation_absolute_.Wait(); 146 updated_orientation_absolute_.Wait();
175 break; 147 break;
176 case CONSUMER_TYPE_LIGHT:
177 updated_light_.Wait();
178 break;
179 } 148 }
180 } 149 }
181 150
182 protected: 151 protected:
183 base::WaitableEvent start_light_;
184 base::WaitableEvent start_motion_; 152 base::WaitableEvent start_motion_;
185 base::WaitableEvent start_orientation_; 153 base::WaitableEvent start_orientation_;
186 base::WaitableEvent start_orientation_absolute_; 154 base::WaitableEvent start_orientation_absolute_;
187 base::WaitableEvent stop_light_;
188 base::WaitableEvent stop_motion_; 155 base::WaitableEvent stop_motion_;
189 base::WaitableEvent stop_orientation_; 156 base::WaitableEvent stop_orientation_;
190 base::WaitableEvent stop_orientation_absolute_; 157 base::WaitableEvent stop_orientation_absolute_;
191 base::WaitableEvent updated_light_;
192 base::WaitableEvent updated_motion_; 158 base::WaitableEvent updated_motion_;
193 base::WaitableEvent updated_orientation_; 159 base::WaitableEvent updated_orientation_;
194 base::WaitableEvent updated_orientation_absolute_; 160 base::WaitableEvent updated_orientation_absolute_;
195 161
196 private: 162 private:
197 DeviceLightHardwareBuffer* light_buffer_;
198 DeviceMotionHardwareBuffer* motion_buffer_; 163 DeviceMotionHardwareBuffer* motion_buffer_;
199 DeviceOrientationHardwareBuffer* orientation_buffer_; 164 DeviceOrientationHardwareBuffer* orientation_buffer_;
200 DeviceOrientationHardwareBuffer* orientation_absolute_buffer_; 165 DeviceOrientationHardwareBuffer* orientation_absolute_buffer_;
201 166
202 DISALLOW_COPY_AND_ASSIGN(FakeDataFetcher); 167 DISALLOW_COPY_AND_ASSIGN(FakeDataFetcher);
203 }; 168 };
204 169
205 class FakeNonPollingDataFetcher : public FakeDataFetcher { 170 class FakeNonPollingDataFetcher : public FakeDataFetcher {
206 public: 171 public:
207 FakeNonPollingDataFetcher() : update_(true) {} 172 FakeNonPollingDataFetcher() : update_(true) {}
(...skipping 10 matching lines...) Expand all
218 case CONSUMER_TYPE_ORIENTATION: 183 case CONSUMER_TYPE_ORIENTATION:
219 if (update_) 184 if (update_)
220 UpdateOrientation(); 185 UpdateOrientation();
221 start_orientation_.Signal(); 186 start_orientation_.Signal();
222 break; 187 break;
223 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: 188 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE:
224 if (update_) 189 if (update_)
225 UpdateOrientationAbsolute(); 190 UpdateOrientationAbsolute();
226 start_orientation_absolute_.Signal(); 191 start_orientation_absolute_.Signal();
227 break; 192 break;
228 case CONSUMER_TYPE_LIGHT:
229 if (update_)
230 UpdateLight();
231 start_light_.Signal();
232 break;
233 default: 193 default:
234 return false; 194 return false;
235 } 195 }
236 return true; 196 return true;
237 } 197 }
238 198
239 bool Stop(ConsumerType consumer_type) override { 199 bool Stop(ConsumerType consumer_type) override {
240 switch (consumer_type) { 200 switch (consumer_type) {
241 case CONSUMER_TYPE_MOTION: 201 case CONSUMER_TYPE_MOTION:
242 stop_motion_.Signal(); 202 stop_motion_.Signal();
243 break; 203 break;
244 case CONSUMER_TYPE_ORIENTATION: 204 case CONSUMER_TYPE_ORIENTATION:
245 stop_orientation_.Signal(); 205 stop_orientation_.Signal();
246 break; 206 break;
247 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: 207 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE:
248 stop_orientation_absolute_.Signal(); 208 stop_orientation_absolute_.Signal();
249 break; 209 break;
250 case CONSUMER_TYPE_LIGHT:
251 stop_light_.Signal();
252 break;
253 default: 210 default:
254 return false; 211 return false;
255 } 212 }
256 return true; 213 return true;
257 } 214 }
258 215
259 void Fetch(unsigned consumer_bitmask) override { 216 void Fetch(unsigned consumer_bitmask) override {
260 FAIL() << "fetch should not be called, " 217 FAIL() << "fetch should not be called, "
261 << "because this is a non-polling fetcher"; 218 << "because this is a non-polling fetcher";
262 } 219 }
(...skipping 20 matching lines...) Expand all
283 switch (consumer_type) { 240 switch (consumer_type) {
284 case CONSUMER_TYPE_MOTION: 241 case CONSUMER_TYPE_MOTION:
285 start_motion_.Signal(); 242 start_motion_.Signal();
286 break; 243 break;
287 case CONSUMER_TYPE_ORIENTATION: 244 case CONSUMER_TYPE_ORIENTATION:
288 start_orientation_.Signal(); 245 start_orientation_.Signal();
289 break; 246 break;
290 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: 247 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE:
291 start_orientation_absolute_.Signal(); 248 start_orientation_absolute_.Signal();
292 break; 249 break;
293 case CONSUMER_TYPE_LIGHT:
294 start_light_.Signal();
295 break;
296 default: 250 default:
297 return false; 251 return false;
298 } 252 }
299 return true; 253 return true;
300 } 254 }
301 255
302 bool Stop(ConsumerType consumer_type) override { 256 bool Stop(ConsumerType consumer_type) override {
303 EXPECT_TRUE( 257 EXPECT_TRUE(
304 GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread()); 258 GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread());
305 259
306 switch (consumer_type) { 260 switch (consumer_type) {
307 case CONSUMER_TYPE_MOTION: 261 case CONSUMER_TYPE_MOTION:
308 stop_motion_.Signal(); 262 stop_motion_.Signal();
309 break; 263 break;
310 case CONSUMER_TYPE_ORIENTATION: 264 case CONSUMER_TYPE_ORIENTATION:
311 stop_orientation_.Signal(); 265 stop_orientation_.Signal();
312 break; 266 break;
313 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: 267 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE:
314 stop_orientation_absolute_.Signal(); 268 stop_orientation_absolute_.Signal();
315 break; 269 break;
316 case CONSUMER_TYPE_LIGHT:
317 stop_light_.Signal();
318 break;
319 default: 270 default:
320 return false; 271 return false;
321 } 272 }
322 return true; 273 return true;
323 } 274 }
324 275
325 void Fetch(unsigned consumer_bitmask) override { 276 void Fetch(unsigned consumer_bitmask) override {
326 EXPECT_TRUE( 277 EXPECT_TRUE(
327 GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread()); 278 GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread());
328 EXPECT_TRUE(consumer_bitmask & CONSUMER_TYPE_ORIENTATION || 279 EXPECT_TRUE(consumer_bitmask & CONSUMER_TYPE_ORIENTATION ||
329 consumer_bitmask & CONSUMER_TYPE_ORIENTATION_ABSOLUTE || 280 consumer_bitmask & CONSUMER_TYPE_ORIENTATION_ABSOLUTE ||
330 consumer_bitmask & CONSUMER_TYPE_MOTION || 281 consumer_bitmask & CONSUMER_TYPE_MOTION);
331 consumer_bitmask & CONSUMER_TYPE_LIGHT);
332 282
333 if (consumer_bitmask & CONSUMER_TYPE_ORIENTATION) 283 if (consumer_bitmask & CONSUMER_TYPE_ORIENTATION)
334 UpdateOrientation(); 284 UpdateOrientation();
335 if (consumer_bitmask & CONSUMER_TYPE_ORIENTATION_ABSOLUTE) 285 if (consumer_bitmask & CONSUMER_TYPE_ORIENTATION_ABSOLUTE)
336 UpdateOrientationAbsolute(); 286 UpdateOrientationAbsolute();
337 if (consumer_bitmask & CONSUMER_TYPE_MOTION) 287 if (consumer_bitmask & CONSUMER_TYPE_MOTION)
338 UpdateMotion(); 288 UpdateMotion();
339 if (consumer_bitmask & CONSUMER_TYPE_LIGHT)
340 UpdateLight();
341 } 289 }
342 290
343 FetcherType GetType() const override { return FETCHER_TYPE_POLLING_CALLBACK; } 291 FetcherType GetType() const override { return FETCHER_TYPE_POLLING_CALLBACK; }
344 292
345 private: 293 private:
346 DISALLOW_COPY_AND_ASSIGN(FakePollingDataFetcher); 294 DISALLOW_COPY_AND_ASSIGN(FakePollingDataFetcher);
347 }; 295 };
348 296
349 class FakeZeroDelayPollingDataFetcher : public FakeDataFetcher { 297 class FakeZeroDelayPollingDataFetcher : public FakeDataFetcher {
350 public: 298 public:
351 FakeZeroDelayPollingDataFetcher() {} 299 FakeZeroDelayPollingDataFetcher() {}
352 ~FakeZeroDelayPollingDataFetcher() override {} 300 ~FakeZeroDelayPollingDataFetcher() override {}
353 301
354 bool Start(ConsumerType consumer_type, void* buffer) override { 302 bool Start(ConsumerType consumer_type, void* buffer) override {
355 EXPECT_TRUE( 303 EXPECT_TRUE(
356 GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread()); 304 GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread());
357 305
358 Init(consumer_type, buffer); 306 Init(consumer_type, buffer);
359 switch (consumer_type) { 307 switch (consumer_type) {
360 case CONSUMER_TYPE_MOTION: 308 case CONSUMER_TYPE_MOTION:
361 start_motion_.Signal(); 309 start_motion_.Signal();
362 break; 310 break;
363 case CONSUMER_TYPE_ORIENTATION: 311 case CONSUMER_TYPE_ORIENTATION:
364 start_orientation_.Signal(); 312 start_orientation_.Signal();
365 break; 313 break;
366 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: 314 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE:
367 start_orientation_absolute_.Signal(); 315 start_orientation_absolute_.Signal();
368 break; 316 break;
369 case CONSUMER_TYPE_LIGHT:
370 start_light_.Signal();
371 break;
372 default: 317 default:
373 return false; 318 return false;
374 } 319 }
375 return true; 320 return true;
376 } 321 }
377 322
378 bool Stop(ConsumerType consumer_type) override { 323 bool Stop(ConsumerType consumer_type) override {
379 EXPECT_TRUE( 324 EXPECT_TRUE(
380 GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread()); 325 GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread());
381 326
382 switch (consumer_type) { 327 switch (consumer_type) {
383 case CONSUMER_TYPE_MOTION: 328 case CONSUMER_TYPE_MOTION:
384 stop_motion_.Signal(); 329 stop_motion_.Signal();
385 break; 330 break;
386 case CONSUMER_TYPE_ORIENTATION: 331 case CONSUMER_TYPE_ORIENTATION:
387 stop_orientation_.Signal(); 332 stop_orientation_.Signal();
388 break; 333 break;
389 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: 334 case CONSUMER_TYPE_ORIENTATION_ABSOLUTE:
390 stop_orientation_absolute_.Signal(); 335 stop_orientation_absolute_.Signal();
391 break; 336 break;
392 case CONSUMER_TYPE_LIGHT:
393 stop_light_.Signal();
394 break;
395 default: 337 default:
396 return false; 338 return false;
397 } 339 }
398 return true; 340 return true;
399 } 341 }
400 342
401 void Fetch(unsigned consumer_bitmask) override { 343 void Fetch(unsigned consumer_bitmask) override {
402 FAIL() << "fetch should not be called"; 344 FAIL() << "fetch should not be called";
403 } 345 }
404 346
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 CONSUMER_TYPE_ORIENTATION_ABSOLUTE)); 393 CONSUMER_TYPE_ORIENTATION_ABSOLUTE));
452 fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); 394 fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION_ABSOLUTE);
453 395
454 EXPECT_EQ(1, fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.alpha); 396 EXPECT_EQ(1, fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.alpha);
455 EXPECT_TRUE(fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.absolute); 397 EXPECT_TRUE(fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.absolute);
456 398
457 fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); 399 fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION_ABSOLUTE);
458 fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); 400 fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION_ABSOLUTE);
459 } 401 }
460 402
461 TEST(DataFetcherSharedMemoryBaseTest, DoesStartLight) {
462 FakeNonPollingDataFetcher fake_data_fetcher;
463 EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_DEFAULT,
464 fake_data_fetcher.GetType());
465
466 EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_LIGHT));
467 fake_data_fetcher.WaitForStart(CONSUMER_TYPE_LIGHT);
468
469 EXPECT_EQ(100, fake_data_fetcher.GetLightBuffer()->data.value);
470
471 fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_LIGHT);
472 fake_data_fetcher.WaitForStop(CONSUMER_TYPE_LIGHT);
473 }
474
475 TEST(DataFetcherSharedMemoryBaseTest, DoesPollMotion) { 403 TEST(DataFetcherSharedMemoryBaseTest, DoesPollMotion) {
476 FakePollingDataFetcher fake_data_fetcher; 404 FakePollingDataFetcher fake_data_fetcher;
477 EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK, 405 EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK,
478 fake_data_fetcher.GetType()); 406 fake_data_fetcher.GetType());
479 407
480 EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_MOTION)); 408 EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_MOTION));
481 fake_data_fetcher.WaitForStart(CONSUMER_TYPE_MOTION); 409 fake_data_fetcher.WaitForStart(CONSUMER_TYPE_MOTION);
482 fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_MOTION); 410 fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_MOTION);
483 411
484 EXPECT_EQ(kDeviceSensorIntervalMicroseconds / 1000., 412 EXPECT_EQ(kDeviceSensorIntervalMicroseconds / 1000.,
(...skipping 29 matching lines...) Expand all
514 fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); 442 fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION_ABSOLUTE);
515 fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); 443 fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_ORIENTATION_ABSOLUTE);
516 444
517 EXPECT_EQ(1, fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.alpha); 445 EXPECT_EQ(1, fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.alpha);
518 EXPECT_TRUE(fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.absolute); 446 EXPECT_TRUE(fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.absolute);
519 447
520 fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); 448 fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION_ABSOLUTE);
521 fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); 449 fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION_ABSOLUTE);
522 } 450 }
523 451
524 TEST(DataFetcherSharedMemoryBaseTest, DoesPollLight) {
525 FakePollingDataFetcher fake_data_fetcher;
526 EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK,
527 fake_data_fetcher.GetType());
528
529 EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_LIGHT));
530 fake_data_fetcher.WaitForStart(CONSUMER_TYPE_LIGHT);
531 fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_LIGHT);
532
533 EXPECT_EQ(100, fake_data_fetcher.GetLightBuffer()->data.value);
534
535 fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_LIGHT);
536 fake_data_fetcher.WaitForStop(CONSUMER_TYPE_LIGHT);
537 }
538
539 TEST(DataFetcherSharedMemoryBaseTest, DoesPollMotionAndOrientation) { 452 TEST(DataFetcherSharedMemoryBaseTest, DoesPollMotionAndOrientation) {
540 FakePollingDataFetcher fake_data_fetcher; 453 FakePollingDataFetcher fake_data_fetcher;
541 EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK, 454 EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK,
542 fake_data_fetcher.GetType()); 455 fake_data_fetcher.GetType());
543 456
544 EXPECT_TRUE( 457 EXPECT_TRUE(
545 fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_ORIENTATION)); 458 fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_ORIENTATION));
546 mojo::ScopedSharedBufferHandle handle_orientation = 459 mojo::ScopedSharedBufferHandle handle_orientation =
547 fake_data_fetcher.GetSharedMemoryHandle(CONSUMER_TYPE_ORIENTATION); 460 fake_data_fetcher.GetSharedMemoryHandle(CONSUMER_TYPE_ORIENTATION);
548 EXPECT_TRUE(handle_orientation.is_valid()); 461 EXPECT_TRUE(handle_orientation.is_valid());
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_ORIENTATION)); 513 fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_ORIENTATION));
601 fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION); 514 fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION);
602 EXPECT_EQ(0, fake_data_fetcher.GetOrientationBuffer()->data.alpha); 515 EXPECT_EQ(0, fake_data_fetcher.GetOrientationBuffer()->data.alpha);
603 fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION); 516 fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION);
604 fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION); 517 fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION);
605 } 518 }
606 519
607 } // namespace 520 } // namespace
608 521
609 } // namespace device 522 } // namespace device
OLDNEW
« no previous file with comments | « device/sensors/data_fetcher_shared_memory_base.cc ('k') | device/sensors/data_fetcher_shared_memory_chromeos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698