OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 #ifndef CC_TEST_LAYER_TREE_TEST_H_ | 5 #ifndef CC_TEST_LAYER_TREE_TEST_H_ |
6 #define CC_TEST_LAYER_TREE_TEST_H_ | 6 #define CC_TEST_LAYER_TREE_TEST_H_ |
7 | 7 |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/threading/thread.h" | 9 #include "base/threading/thread.h" |
10 #include "cc/animation/animation_delegate.h" | 10 #include "cc/animation/animation_delegate.h" |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; | 215 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; |
216 scoped_ptr<base::Thread> impl_thread_; | 216 scoped_ptr<base::Thread> impl_thread_; |
217 base::CancelableClosure timeout_; | 217 base::CancelableClosure timeout_; |
218 scoped_refptr<TestContextProvider> compositor_contexts_; | 218 scoped_refptr<TestContextProvider> compositor_contexts_; |
219 base::WeakPtr<LayerTreeTest> main_thread_weak_ptr_; | 219 base::WeakPtr<LayerTreeTest> main_thread_weak_ptr_; |
220 base::WeakPtrFactory<LayerTreeTest> weak_factory_; | 220 base::WeakPtrFactory<LayerTreeTest> weak_factory_; |
221 }; | 221 }; |
222 | 222 |
223 } // namespace cc | 223 } // namespace cc |
224 | 224 |
225 #define SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 225 #define SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
226 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DirectRenderer) { \ | 226 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DirectRenderer_MainThreadPaint) { \ |
227 RunTest(false, false, false); \ | 227 RunTest(false, false, false); \ |
228 } \ | 228 } \ |
| 229 class SingleThreadDirectNoImplNeedsSemicolon##TEST_FIXTURE_NAME {} |
| 230 |
| 231 #define SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
| 232 SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
| 233 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DirectRenderer_ImplSidePaint) { \ |
| 234 RunTest(false, false, true); \ |
| 235 } \ |
229 class SingleThreadDirectNeedsSemicolon##TEST_FIXTURE_NAME {} | 236 class SingleThreadDirectNeedsSemicolon##TEST_FIXTURE_NAME {} |
230 | 237 |
231 #define SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 238 #define SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
232 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DelegatingRenderer) { \ | 239 TEST_F(TEST_FIXTURE_NAME, \ |
233 RunTest(false, true, false); \ | 240 RunSingleThread_DelegatingRenderer_MainThreadPaint) { \ |
234 } \ | 241 RunTest(false, true, false); \ |
| 242 } \ |
| 243 class SingleThreadDelegatingNoImplNeedsSemicolon##TEST_FIXTURE_NAME {} |
| 244 |
| 245 #define SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
| 246 SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
| 247 TEST_F(TEST_FIXTURE_NAME, \ |
| 248 RunSingleThread_DelegatingRenderer_ImplSidePaint) { \ |
| 249 RunTest(false, true, true); \ |
| 250 } \ |
235 class SingleThreadDelegatingNeedsSemicolon##TEST_FIXTURE_NAME {} | 251 class SingleThreadDelegatingNeedsSemicolon##TEST_FIXTURE_NAME {} |
236 | 252 |
237 #define SINGLE_THREAD_TEST_F(TEST_FIXTURE_NAME) \ | 253 #define SINGLE_THREAD_TEST_F(TEST_FIXTURE_NAME) \ |
238 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 254 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
239 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) | 255 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) |
240 | 256 |
| 257 #define SINGLE_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
| 258 SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
| 259 SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) |
| 260 |
241 #define MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ | 261 #define MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
242 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_MainThreadPaint) { \ | 262 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_MainThreadPaint) { \ |
243 RunTest(true, false, false); \ | 263 RunTest(true, false, false); \ |
244 } | 264 } \ |
| 265 class MultiThreadDirectNoImplNeedsSemicolon##TEST_FIXTURE_NAME {} |
245 | 266 |
246 #define MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 267 #define MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
247 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ | 268 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
248 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_ImplSidePaint) { \ | 269 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_ImplSidePaint) { \ |
249 RunTest(true, false, true); \ | 270 RunTest(true, false, true); \ |
250 } \ | 271 } \ |
251 class MultiThreadDirectNeedsSemicolon##TEST_FIXTURE_NAME {} | 272 class MultiThreadDirectNeedsSemicolon##TEST_FIXTURE_NAME {} |
252 | 273 |
253 #define MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ | 274 #define MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
254 TEST_F(TEST_FIXTURE_NAME, \ | 275 TEST_F(TEST_FIXTURE_NAME, \ |
255 RunMultiThread_DelegatingRenderer_MainThreadPaint) { \ | 276 RunMultiThread_DelegatingRenderer_MainThreadPaint) { \ |
256 RunTest(true, true, false); \ | 277 RunTest(true, true, false); \ |
257 } | 278 } \ |
| 279 class MultiThreadDelegatingNoImplNeedsSemicolon##TEST_FIXTURE_NAME {} |
258 | 280 |
259 #define MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 281 #define MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
260 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) TEST_F( \ | 282 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
261 TEST_FIXTURE_NAME, RunMultiThread_DelegatingRenderer_ImplSidePaint) { \ | 283 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DelegatingRenderer_ImplSidePaint) { \ |
262 RunTest(true, true, true); \ | 284 RunTest(true, true, true); \ |
263 } \ | 285 } \ |
264 class MultiThreadDelegatingNeedsSemicolon##TEST_FIXTURE_NAME {} | 286 class MultiThreadDelegatingNeedsSemicolon##TEST_FIXTURE_NAME {} |
265 | 287 |
266 #define MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ | 288 #define MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
267 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ | 289 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
268 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) | 290 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) |
269 | 291 |
270 #define MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \ | 292 #define MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \ |
271 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 293 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
272 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) | 294 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) |
273 | 295 |
274 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F( \ | 296 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F( \ |
275 TEST_FIXTURE_NAME) \ | 297 TEST_FIXTURE_NAME) \ |
276 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 298 SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
277 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) | 299 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) |
278 | 300 |
279 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 301 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
280 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 302 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
281 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) | 303 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) |
282 | 304 |
283 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F( \ | 305 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F( \ |
284 TEST_FIXTURE_NAME) \ | 306 TEST_FIXTURE_NAME) \ |
285 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 307 SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
286 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) | 308 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) |
287 | 309 |
288 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 310 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
289 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 311 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
290 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) | 312 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) |
291 | 313 |
292 #define SINGLE_AND_MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ | 314 #define SINGLE_AND_MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
293 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ | 315 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
294 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) | 316 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) |
295 | 317 |
296 #define SINGLE_AND_MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \ | 318 #define SINGLE_AND_MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \ |
297 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 319 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
298 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) | 320 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) |
299 | 321 |
| 322 // Some tests want to control when notify ready for activation occurs, |
| 323 // but this is not supported in the single-threaded case. |
| 324 #define SINGLE_AND_MULTI_THREAD_BLOCKNOTIFY_TEST_F(TEST_FIXTURE_NAME) \ |
| 325 SINGLE_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
| 326 MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) |
| 327 |
300 #endif // CC_TEST_LAYER_TREE_TEST_H_ | 328 #endif // CC_TEST_LAYER_TREE_TEST_H_ |
OLD | NEW |