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" |
11 #include "cc/trees/layer_tree_host.h" | 11 #include "cc/trees/layer_tree_host.h" |
12 #include "cc/trees/layer_tree_host_impl.h" | 12 #include "cc/trees/layer_tree_host_impl.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
14 | 14 |
15 namespace Webkit { class WebGraphicsContext3D; } | 15 namespace Webkit { |
| 16 class WebGraphicsContext3D; |
| 17 } |
16 | 18 |
17 namespace cc { | 19 namespace cc { |
18 class FakeLayerTreeHostClient; | 20 class FakeLayerTreeHostClient; |
19 class FakeOutputSurface; | 21 class FakeOutputSurface; |
20 class LayerImpl; | 22 class LayerImpl; |
21 class LayerTreeHost; | 23 class LayerTreeHost; |
22 class LayerTreeHostClient; | 24 class LayerTreeHostClient; |
23 class LayerTreeHostImpl; | 25 class LayerTreeHostImpl; |
24 class TestContextProvider; | 26 class TestContextProvider; |
| 27 class TestWebGraphicsContext3D; |
25 | 28 |
26 // Used by test stubs to notify the test when something interesting happens. | 29 // Used by test stubs to notify the test when something interesting happens. |
27 class TestHooks : public AnimationDelegate { | 30 class TestHooks : public AnimationDelegate { |
28 public: | 31 public: |
29 TestHooks(); | 32 TestHooks(); |
30 virtual ~TestHooks(); | 33 virtual ~TestHooks(); |
31 | 34 |
32 void ReadSettings(const LayerTreeSettings& settings); | 35 void ReadSettings(const LayerTreeSettings& settings); |
33 | 36 |
34 virtual void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl, | 37 virtual void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl, |
35 const BeginFrameArgs& args) {} | 38 const BeginFrameArgs& args) {} |
36 virtual void DidBeginImplFrameOnThread(LayerTreeHostImpl* host_impl, | 39 virtual void DidBeginImplFrameOnThread(LayerTreeHostImpl* host_impl, |
37 const BeginFrameArgs& args) {} | 40 const BeginFrameArgs& args) {} |
38 virtual void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, | 41 virtual void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, |
39 bool did_handle) {} | 42 bool did_handle) {} |
40 virtual void BeginCommitOnThread(LayerTreeHostImpl* host_impl) {} | 43 virtual void BeginCommitOnThread(LayerTreeHostImpl* host_impl) {} |
41 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) {} | 44 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) {} |
42 virtual void WillActivateTreeOnThread(LayerTreeHostImpl* host_impl) {} | 45 virtual void WillActivateTreeOnThread(LayerTreeHostImpl* host_impl) {} |
43 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) {} | 46 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) {} |
44 virtual void InitializedRendererOnThread(LayerTreeHostImpl* host_impl, | 47 virtual void InitializedRendererOnThread(LayerTreeHostImpl* host_impl, |
45 bool success) {} | 48 bool success) {} |
46 virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 49 virtual bool PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, |
47 LayerTreeHostImpl::FrameData* frame_data, | 50 LayerTreeHostImpl::FrameData* frame_data, |
48 bool result); | 51 bool result); |
49 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) {} | 52 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) {} |
50 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) {} | 53 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) {} |
51 virtual void SwapBuffersCompleteOnThread(LayerTreeHostImpl* host_impl) {} | 54 virtual void SwapBuffersCompleteOnThread(LayerTreeHostImpl* host_impl) {} |
52 virtual void UpdateVisibleTilesOnThread(LayerTreeHostImpl* host_impl) {} | 55 virtual void UpdateVisibleTilesOnThread(LayerTreeHostImpl* host_impl) {} |
53 virtual void AnimateLayers(LayerTreeHostImpl* host_impl, | 56 virtual void AnimateLayers(LayerTreeHostImpl* host_impl, |
54 base::TimeTicks monotonic_time) {} | 57 base::TimeTicks monotonic_time) {} |
55 virtual void UpdateAnimationState(LayerTreeHostImpl* host_impl, | 58 virtual void UpdateAnimationState(LayerTreeHostImpl* host_impl, |
56 bool has_unfinished_animation) {} | 59 bool has_unfinished_animation) {} |
57 virtual void WillAnimateLayers(LayerTreeHostImpl* host_impl, | 60 virtual void WillAnimateLayers(LayerTreeHostImpl* host_impl, |
58 base::TimeTicks monotonic_time) {} | 61 base::TimeTicks monotonic_time) {} |
59 virtual void ApplyScrollAndScale(gfx::Vector2d scroll_delta, | 62 virtual void ApplyScrollAndScale(gfx::Vector2d scroll_delta, float scale) {} |
60 float scale) {} | |
61 virtual void Animate(base::TimeTicks monotonic_time) {} | 63 virtual void Animate(base::TimeTicks monotonic_time) {} |
62 virtual void WillBeginMainFrame() {} | 64 virtual void WillBeginMainFrame() {} |
63 virtual void DidBeginMainFrame() {} | 65 virtual void DidBeginMainFrame() {} |
64 virtual void Layout() {} | 66 virtual void Layout() {} |
65 virtual void DidInitializeOutputSurface(bool succeeded) {} | 67 virtual void DidInitializeOutputSurface(bool succeeded) {} |
66 virtual void DidFailToInitializeOutputSurface() {} | 68 virtual void DidFailToInitializeOutputSurface() {} |
67 virtual void DidAddAnimation() {} | 69 virtual void DidAddAnimation() {} |
68 virtual void WillCommit() {} | 70 virtual void WillCommit() {} |
69 virtual void DidCommit() {} | 71 virtual void DidCommit() {} |
70 virtual void DidCommitAndDrawFrame() {} | 72 virtual void DidCommitAndDrawFrame() {} |
71 virtual void DidCompleteSwapBuffers() {} | 73 virtual void DidCompleteSwapBuffers() {} |
72 virtual void ScheduleComposite() {} | 74 virtual void ScheduleComposite() {} |
73 virtual void ScheduleAnimation() {} | 75 virtual void ScheduleAnimation() {} |
74 virtual void DidDeferCommit() {} | 76 virtual void DidDeferCommit() {} |
75 virtual void DidSetVisibleOnImplTree(LayerTreeHostImpl* host_impl, | 77 virtual void DidSetVisibleOnImplTree(LayerTreeHostImpl* host_impl, |
76 bool visible) {} | 78 bool visible) {} |
77 virtual base::TimeDelta LowFrequencyAnimationInterval() const; | 79 virtual base::TimeDelta LowFrequencyAnimationInterval() const; |
78 | 80 |
79 // Implementation of AnimationDelegate: | 81 // Implementation of AnimationDelegate: |
80 virtual void NotifyAnimationStarted( | 82 virtual void NotifyAnimationStarted(double wall_clock_time, |
81 double wall_clock_time, | 83 base::TimeTicks monotonic_time, |
82 base::TimeTicks monotonic_time, | 84 Animation::TargetProperty target_property) |
83 Animation::TargetProperty target_property) OVERRIDE {} | 85 OVERRIDE {} |
84 virtual void NotifyAnimationFinished( | 86 virtual void NotifyAnimationFinished( |
85 double wall_clock_time, | 87 double wall_clock_time, |
86 base::TimeTicks monotonic_time, | 88 base::TimeTicks monotonic_time, |
87 Animation::TargetProperty target_property) OVERRIDE {} | 89 Animation::TargetProperty target_property) OVERRIDE {} |
88 | 90 |
89 virtual scoped_ptr<OutputSurface> CreateOutputSurface(bool fallback) = 0; | 91 virtual scoped_ptr<OutputSurface> CreateOutputSurface(bool fallback) = 0; |
90 virtual scoped_refptr<ContextProvider> OffscreenContextProvider() = 0; | 92 virtual scoped_refptr<ContextProvider> OffscreenContextProvider() = 0; |
91 }; | 93 }; |
92 | 94 |
93 class BeginTask; | 95 class BeginTask; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 | 178 |
177 bool TestEnded() const { return ended_; } | 179 bool TestEnded() const { return ended_; } |
178 | 180 |
179 LayerTreeHost* layer_tree_host() { return layer_tree_host_.get(); } | 181 LayerTreeHost* layer_tree_host() { return layer_tree_host_.get(); } |
180 bool delegating_renderer() const { return delegating_renderer_; } | 182 bool delegating_renderer() const { return delegating_renderer_; } |
181 FakeOutputSurface* output_surface() { return output_surface_; } | 183 FakeOutputSurface* output_surface() { return output_surface_; } |
182 | 184 |
183 virtual scoped_ptr<OutputSurface> CreateOutputSurface(bool fallback) OVERRIDE; | 185 virtual scoped_ptr<OutputSurface> CreateOutputSurface(bool fallback) OVERRIDE; |
184 virtual scoped_refptr<ContextProvider> OffscreenContextProvider() OVERRIDE; | 186 virtual scoped_refptr<ContextProvider> OffscreenContextProvider() OVERRIDE; |
185 | 187 |
| 188 virtual scoped_ptr<FakeOutputSurface> CreateFakeOutputSurfaceForTest( |
| 189 bool fallback); |
| 190 |
| 191 TestWebGraphicsContext3D* TestContext(); |
| 192 |
| 193 |
186 private: | 194 private: |
187 LayerTreeSettings settings_; | 195 LayerTreeSettings settings_; |
188 scoped_ptr<LayerTreeHostClientForTesting> client_; | 196 scoped_ptr<LayerTreeHostClientForTesting> client_; |
189 scoped_ptr<LayerTreeHost> layer_tree_host_; | 197 scoped_ptr<LayerTreeHost> layer_tree_host_; |
190 FakeOutputSurface* output_surface_; | 198 FakeOutputSurface* output_surface_; |
191 | 199 |
192 bool beginning_; | 200 bool beginning_; |
193 bool end_when_begin_returns_; | 201 bool end_when_begin_returns_; |
194 bool timed_out_; | 202 bool timed_out_; |
195 bool scheduled_; | 203 bool scheduled_; |
196 bool schedule_when_set_visible_true_; | 204 bool schedule_when_set_visible_true_; |
197 bool started_; | 205 bool started_; |
198 bool ended_; | 206 bool ended_; |
199 bool delegating_renderer_; | 207 bool delegating_renderer_; |
200 | 208 |
201 int timeout_seconds_; | 209 int timeout_seconds_; |
202 | 210 |
203 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; | 211 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; |
204 scoped_ptr<base::Thread> impl_thread_; | 212 scoped_ptr<base::Thread> impl_thread_; |
205 base::CancelableClosure timeout_; | 213 base::CancelableClosure timeout_; |
206 scoped_refptr<TestContextProvider> compositor_contexts_; | 214 scoped_refptr<TestContextProvider> compositor_contexts_; |
207 base::WeakPtr<LayerTreeTest> main_thread_weak_ptr_; | 215 base::WeakPtr<LayerTreeTest> main_thread_weak_ptr_; |
208 base::WeakPtrFactory<LayerTreeTest> weak_factory_; | 216 base::WeakPtrFactory<LayerTreeTest> weak_factory_; |
209 }; | 217 }; |
210 | 218 |
211 } // namespace cc | 219 } // namespace cc |
212 | 220 |
213 #define SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 221 #define SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
214 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DirectRenderer) { \ | 222 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DirectRenderer) { \ |
215 RunTest(false, false, false); \ | 223 RunTest(false, false, false); \ |
216 } \ | 224 } \ |
217 class SingleThreadDirectNeedsSemicolon##TEST_FIXTURE_NAME {} | 225 class SingleThreadDirectNeedsSemicolon##TEST_FIXTURE_NAME {} |
218 | 226 |
219 #define SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 227 #define SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
220 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DelegatingRenderer) { \ | 228 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DelegatingRenderer) { \ |
221 RunTest(false, true, false); \ | 229 RunTest(false, true, false); \ |
222 } \ | 230 } \ |
223 class SingleThreadDelegatingNeedsSemicolon##TEST_FIXTURE_NAME {} | 231 class SingleThreadDelegatingNeedsSemicolon##TEST_FIXTURE_NAME {} |
224 | 232 |
225 #define SINGLE_THREAD_TEST_F(TEST_FIXTURE_NAME) \ | 233 #define SINGLE_THREAD_TEST_F(TEST_FIXTURE_NAME) \ |
226 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 234 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
227 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) | 235 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) |
228 | 236 |
229 #define MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ | 237 #define MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
230 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_MainThreadPaint) { \ | 238 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_MainThreadPaint) { \ |
231 RunTest(true, false, false); \ | 239 RunTest(true, false, false); \ |
232 } | 240 } |
233 | 241 |
234 #define MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 242 #define MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
235 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ | 243 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
236 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_ImplSidePaint) { \ | 244 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_ImplSidePaint) { \ |
237 RunTest(true, false, true); \ | 245 RunTest(true, false, true); \ |
238 } \ | 246 } \ |
239 class MultiThreadDirectNeedsSemicolon##TEST_FIXTURE_NAME {} | 247 class MultiThreadDirectNeedsSemicolon##TEST_FIXTURE_NAME {} |
240 | 248 |
241 #define MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ | 249 #define MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
242 TEST_F(TEST_FIXTURE_NAME, \ | 250 TEST_F(TEST_FIXTURE_NAME, \ |
243 RunMultiThread_DelegatingRenderer_MainThreadPaint) { \ | 251 RunMultiThread_DelegatingRenderer_MainThreadPaint) { \ |
244 RunTest(true, true, false); \ | 252 RunTest(true, true, false); \ |
245 } | 253 } |
246 | 254 |
247 #define MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 255 #define MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
248 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME)\ | 256 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) TEST_F( \ |
249 TEST_F(TEST_FIXTURE_NAME, \ | 257 TEST_FIXTURE_NAME, RunMultiThread_DelegatingRenderer_ImplSidePaint) { \ |
250 RunMultiThread_DelegatingRenderer_ImplSidePaint) { \ | 258 RunTest(true, true, true); \ |
251 RunTest(true, true, true); \ | 259 } \ |
252 } \ | |
253 class MultiThreadDelegatingNeedsSemicolon##TEST_FIXTURE_NAME {} | 260 class MultiThreadDelegatingNeedsSemicolon##TEST_FIXTURE_NAME {} |
254 | 261 |
255 #define MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ | 262 #define MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
256 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ | 263 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
257 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) | 264 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) |
258 | 265 |
259 #define MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \ | 266 #define MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \ |
260 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 267 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
261 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) | 268 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) |
262 | 269 |
263 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F( \ | 270 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F( \ |
264 TEST_FIXTURE_NAME) \ | 271 TEST_FIXTURE_NAME) \ |
265 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 272 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
266 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) | 273 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) |
267 | 274 |
268 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 275 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
269 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 276 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
270 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) | 277 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) |
271 | 278 |
272 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F( \ | 279 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F( \ |
273 TEST_FIXTURE_NAME) \ | 280 TEST_FIXTURE_NAME) \ |
274 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 281 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
275 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) | 282 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) |
276 | 283 |
277 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ | 284 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ |
278 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 285 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
279 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) | 286 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) |
280 | 287 |
281 #define SINGLE_AND_MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ | 288 #define SINGLE_AND_MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ |
282 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ | 289 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ |
283 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) | 290 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) |
284 | 291 |
285 #define SINGLE_AND_MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \ | 292 #define SINGLE_AND_MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \ |
286 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ | 293 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ |
287 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) | 294 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) |
288 | 295 |
289 #endif // CC_TEST_LAYER_TREE_TEST_H_ | 296 #endif // CC_TEST_LAYER_TREE_TEST_H_ |
OLD | NEW |