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