diff options
author | weiliangc <weiliangc@chromium.org> | 2015-12-01 14:53:31 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-01 23:02:22 +0000 |
commit | d9897d7d0f9005a11318f510b95b6141eed625b7 (patch) | |
tree | b427a9bb4a3af26d5fbdebe578e50ae1f7ad59b1 | |
parent | 9d25e9f1632aacfb5ac75f9efbdb52ec5708a7ef (diff) | |
download | chromium_src-d9897d7d0f9005a11318f510b95b6141eed625b7.zip chromium_src-d9897d7d0f9005a11318f510b95b6141eed625b7.tar.gz chromium_src-d9897d7d0f9005a11318f510b95b6141eed625b7.tar.bz2 |
Verifies PropertyTrees on impl for all cc_unittests
Turn on verify property trees for all cc_unittests.
R=ajuma
BUG=
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1484143004
Cr-Commit-Position: refs/heads/master@{#362538}
-rw-r--r-- | cc/BUILD.gn | 2 | ||||
-rw-r--r-- | cc/cc_tests.gyp | 2 | ||||
-rw-r--r-- | cc/layers/delegated_renderer_layer_impl_unittest.cc | 1 | ||||
-rw-r--r-- | cc/layers/layer_impl_unittest.cc | 39 | ||||
-rw-r--r-- | cc/layers/picture_layer_unittest.cc | 5 | ||||
-rw-r--r-- | cc/test/fake_layer_tree_host_impl.cc | 3 | ||||
-rw-r--r-- | cc/test/layer_test_common.cc | 4 | ||||
-rw-r--r-- | cc/test/layer_tree_settings_for_testing.cc | 16 | ||||
-rw-r--r-- | cc/test/layer_tree_settings_for_testing.h | 20 | ||||
-rw-r--r-- | cc/tiles/tile_manager_unittest.cc | 15 | ||||
-rw-r--r-- | cc/trees/layer_tree_settings.h | 2 |
11 files changed, 82 insertions, 27 deletions
diff --git a/cc/BUILD.gn b/cc/BUILD.gn index 67981ef..2b24a2c 100644 --- a/cc/BUILD.gn +++ b/cc/BUILD.gn @@ -628,6 +628,8 @@ source_set("test_support") { "test/layer_tree_pixel_resource_test.h", "test/layer_tree_pixel_test.cc", "test/layer_tree_pixel_test.h", + "test/layer_tree_settings_for_testing.cc", + "test/layer_tree_settings_for_testing.h", "test/layer_tree_test.cc", "test/layer_tree_test.h", "test/mock_occlusion_tracker.h", diff --git a/cc/cc_tests.gyp b/cc/cc_tests.gyp index 9bcfccc..b892d97 100644 --- a/cc/cc_tests.gyp +++ b/cc/cc_tests.gyp @@ -229,6 +229,8 @@ 'test/layer_tree_pixel_resource_test.h', 'test/layer_tree_pixel_test.cc', 'test/layer_tree_pixel_test.h', + 'test/layer_tree_settings_for_testing.cc', + 'test/layer_tree_settings_for_testing.h', 'test/layer_tree_test.cc', 'test/layer_tree_test.h', 'test/mock_occlusion_tracker.h', diff --git a/cc/layers/delegated_renderer_layer_impl_unittest.cc b/cc/layers/delegated_renderer_layer_impl_unittest.cc index 2a93a8b..4093a08d 100644 --- a/cc/layers/delegated_renderer_layer_impl_unittest.cc +++ b/cc/layers/delegated_renderer_layer_impl_unittest.cc @@ -35,6 +35,7 @@ class DelegatedRendererLayerImplTest : public testing::Test { output_surface_(FakeOutputSurface::Create3d()) { LayerTreeSettings settings; settings.minimum_occlusion_tracking_size = gfx::Size(); + settings.verify_property_trees = true; host_impl_.reset(new FakeLayerTreeHostImpl(settings, &task_runner_provider_, &shared_bitmap_manager_, diff --git a/cc/layers/layer_impl_unittest.cc b/cc/layers/layer_impl_unittest.cc index c5b6257..71aca89 100644 --- a/cc/layers/layer_impl_unittest.cc +++ b/cc/layers/layer_impl_unittest.cc @@ -65,18 +65,22 @@ namespace { EXPECT_FALSE(child->LayerPropertyChanged()); \ EXPECT_FALSE(grand_child->LayerPropertyChanged()); -#define VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(code_to_test) \ - root->ResetAllChangeTrackingForSubtree(); \ - host_impl.ForcePrepareToDraw(); \ - EXPECT_FALSE(host_impl.active_tree()->needs_update_draw_properties()); \ - code_to_test; \ +#define VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(code_to_test) \ + root->ResetAllChangeTrackingForSubtree(); \ + host_impl.active_tree()->property_trees()->needs_rebuild = true; \ + host_impl.active_tree()->BuildPropertyTreesForTesting(); \ + host_impl.ForcePrepareToDraw(); \ + EXPECT_FALSE(host_impl.active_tree()->needs_update_draw_properties()); \ + code_to_test; \ EXPECT_TRUE(host_impl.active_tree()->needs_update_draw_properties()); -#define VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(code_to_test) \ - root->ResetAllChangeTrackingForSubtree(); \ - host_impl.ForcePrepareToDraw(); \ - EXPECT_FALSE(host_impl.active_tree()->needs_update_draw_properties()); \ - code_to_test; \ +#define VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(code_to_test) \ + root->ResetAllChangeTrackingForSubtree(); \ + host_impl.active_tree()->property_trees()->needs_rebuild = true; \ + host_impl.active_tree()->BuildPropertyTreesForTesting(); \ + host_impl.ForcePrepareToDraw(); \ + EXPECT_FALSE(host_impl.active_tree()->needs_update_draw_properties()); \ + code_to_test; \ EXPECT_FALSE(host_impl.active_tree()->needs_update_draw_properties()); TEST(LayerImplTest, VerifyLayerChangesAreTrackedProperly) { @@ -263,6 +267,10 @@ TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) { LayerImpl* layer = layer_ptr.get(); root->AddChild(std::move(layer_ptr)); layer->SetScrollClipLayer(root->id()); + scoped_ptr<LayerImpl> layer2_ptr = + LayerImpl::Create(host_impl.active_tree(), 3); + LayerImpl* layer2 = layer2_ptr.get(); + root->AddChild(std::move(layer2_ptr)); host_impl.active_tree()->BuildPropertyTreesForTesting(); DCHECK(host_impl.CanDraw()); @@ -282,6 +290,10 @@ TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) { arbitrary_filters.Append(FilterOperation::CreateOpacityFilter(0.5f)); SkXfermode::Mode arbitrary_blend_mode = SkXfermode::kMultiply_Mode; + // Set layer to draw content so that their draw property by property trees is + // verified. + VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetDrawsContent(true)); + VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer2->SetDrawsContent(true)); // Render surface functions. VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetHasRenderSurface(true)); VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetHasRenderSurface(true)); @@ -320,13 +332,11 @@ TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) { VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetContentsOpaque(true)); VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( layer->SetReplicaLayer(LayerImpl::Create(host_impl.active_tree(), 5))); - VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetPosition(arbitrary_point_f)); + VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer2->SetPosition(arbitrary_point_f)); VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetShouldFlattenTransform(false)); VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->Set3dSortingContextId(1)); - VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( layer->SetDoubleSided(false)); // constructor initializes it to "true". - VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetDrawsContent(true)); VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( layer->SetBackgroundColor(arbitrary_color)); VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES( @@ -343,7 +353,8 @@ TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) { VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetFilters(arbitrary_filters)); VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetMasksToBounds(true)); VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetContentsOpaque(true)); - VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->SetPosition(arbitrary_point_f)); + VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( + layer2->SetPosition(arbitrary_point_f)); VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(layer->Set3dSortingContextId(1)); VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES( layer->SetDoubleSided(false)); // constructor initializes it to "true". diff --git a/cc/layers/picture_layer_unittest.cc b/cc/layers/picture_layer_unittest.cc index 950f9d0..4f61722 100644 --- a/cc/layers/picture_layer_unittest.cc +++ b/cc/layers/picture_layer_unittest.cc @@ -14,6 +14,7 @@ #include "cc/test/fake_picture_layer.h" #include "cc/test/fake_picture_layer_impl.h" #include "cc/test/fake_proxy.h" +#include "cc/test/layer_tree_settings_for_testing.h" #include "cc/test/test_shared_bitmap_manager.h" #include "cc/test/test_task_graph_runner.h" #include "cc/trees/single_thread_proxy.h" @@ -61,7 +62,7 @@ TEST(PictureLayerTest, NoTilesIfEmptyBounds) { FakeImplTaskRunnerProvider impl_task_runner_provider; TestSharedBitmapManager shared_bitmap_manager; - FakeLayerTreeHostImpl host_impl(LayerTreeSettings(), + FakeLayerTreeHostImpl host_impl(LayerTreeSettingsForTesting(), &impl_task_runner_provider, &shared_bitmap_manager, &task_graph_runner); host_impl.CreatePendingTree(); @@ -115,7 +116,7 @@ TEST(PictureLayerTest, SuitableForGpuRasterization) { // non-monotonically. This executes that code path under this scenario allowing // for the code to verify correctness with DCHECKs. TEST(PictureLayerTest, NonMonotonicSourceFrameNumber) { - LayerTreeSettings settings; + LayerTreeSettingsForTesting settings; settings.single_thread_proxy_scheduler = false; settings.use_zero_copy = true; diff --git a/cc/test/fake_layer_tree_host_impl.cc b/cc/test/fake_layer_tree_host_impl.cc index 2698c9f..e837ab7 100644 --- a/cc/test/fake_layer_tree_host_impl.cc +++ b/cc/test/fake_layer_tree_host_impl.cc @@ -4,6 +4,7 @@ #include "cc/test/begin_frame_args_test.h" #include "cc/test/fake_layer_tree_host_impl.h" +#include "cc/test/layer_tree_settings_for_testing.h" #include "cc/test/test_shared_bitmap_manager.h" #include "cc/trees/layer_tree_impl.h" @@ -13,7 +14,7 @@ FakeLayerTreeHostImpl::FakeLayerTreeHostImpl( TaskRunnerProvider* task_runner_provider, SharedBitmapManager* manager, TaskGraphRunner* task_graph_runner) - : FakeLayerTreeHostImpl(LayerTreeSettings(), + : FakeLayerTreeHostImpl(LayerTreeSettingsForTesting(), task_runner_provider, manager, task_graph_runner, diff --git a/cc/test/layer_test_common.cc b/cc/test/layer_test_common.cc index b1eb320..a2559769 100644 --- a/cc/test/layer_test_common.cc +++ b/cc/test/layer_test_common.cc @@ -10,6 +10,7 @@ #include "cc/quads/draw_quad.h" #include "cc/quads/render_pass.h" #include "cc/test/fake_output_surface.h" +#include "cc/test/layer_tree_settings_for_testing.h" #include "cc/test/mock_occlusion_tracker.h" #include "cc/trees/layer_tree_host_common.h" #include "testing/gtest/include/gtest/gtest.h" @@ -109,8 +110,7 @@ void LayerTestCommon::VerifyQuadsAreOccluded(const QuadList& quads, } LayerTestCommon::LayerImplTest::LayerImplTest() - : LayerImplTest(LayerTreeSettings()) { -} + : LayerImplTest(LayerTreeSettingsForTesting()) {} LayerTestCommon::LayerImplTest::LayerImplTest(const LayerTreeSettings& settings) : client_(FakeLayerTreeHostClient::DIRECT_3D), diff --git a/cc/test/layer_tree_settings_for_testing.cc b/cc/test/layer_tree_settings_for_testing.cc new file mode 100644 index 0000000..855d9f5 --- /dev/null +++ b/cc/test/layer_tree_settings_for_testing.cc @@ -0,0 +1,16 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "cc/test/layer_tree_settings_for_testing.h" + +namespace cc { + +LayerTreeSettingsForTesting::LayerTreeSettingsForTesting() + : LayerTreeSettings() { + this->verify_property_trees = true; +} + +LayerTreeSettingsForTesting::~LayerTreeSettingsForTesting() {} + +} // namespace cc diff --git a/cc/test/layer_tree_settings_for_testing.h b/cc/test/layer_tree_settings_for_testing.h new file mode 100644 index 0000000..cc44fba --- /dev/null +++ b/cc/test/layer_tree_settings_for_testing.h @@ -0,0 +1,20 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CC_TEST_LAYER_TREE_SETTINGS_FOR_TESTING_H_ +#define CC_TEST_LAYER_TREE_SETTINGS_FOR_TESTING_H_ + +#include "cc/trees/layer_tree_settings.h" + +namespace cc { + +class LayerTreeSettingsForTesting : public LayerTreeSettings { + public: + LayerTreeSettingsForTesting(); + ~LayerTreeSettingsForTesting() override; +}; + +} // namespace cc + +#endif // CC_TEST_LAYER_TREE_SETTINGS_FOR_TESTING_H_ diff --git a/cc/tiles/tile_manager_unittest.cc b/cc/tiles/tile_manager_unittest.cc index f4892cc..f6ec9c0 100644 --- a/cc/tiles/tile_manager_unittest.cc +++ b/cc/tiles/tile_manager_unittest.cc @@ -18,6 +18,7 @@ #include "cc/test/fake_picture_layer_impl.h" #include "cc/test/fake_picture_layer_tiling_client.h" #include "cc/test/fake_tile_manager.h" +#include "cc/test/layer_tree_settings_for_testing.h" #include "cc/test/test_gpu_memory_buffer_manager.h" #include "cc/test/test_shared_bitmap_manager.h" #include "cc/test/test_task_graph_runner.h" @@ -35,7 +36,7 @@ namespace cc { namespace { -class LowResTilingsSettings : public LayerTreeSettings { +class LowResTilingsSettings : public LayerTreeSettingsForTesting { public: LowResTilingsSettings() { create_low_res_tiling = true; @@ -1131,7 +1132,7 @@ TEST_F(TileManagerTilePriorityQueueTest, soon_rect.Inset(-inset, -inset); client.SetTileSize(gfx::Size(30, 30)); - LayerTreeSettings settings; + LayerTreeSettingsForTesting settings; scoped_ptr<PictureLayerTilingSet> tiling_set = PictureLayerTilingSet::Create( ACTIVE_TREE, &client, settings.tiling_interest_area_padding, @@ -1240,7 +1241,7 @@ TEST_F(TileManagerTilePriorityQueueTest, gfx::Size layer_bounds(1000, 1000); client.SetTileSize(gfx::Size(30, 30)); - LayerTreeSettings settings; + LayerTreeSettingsForTesting settings; scoped_ptr<PictureLayerTilingSet> tiling_set = PictureLayerTilingSet::Create( ACTIVE_TREE, &client, settings.tiling_interest_area_padding, @@ -1456,7 +1457,7 @@ class TileManagerTest : public testing::Test { make_scoped_ptr(new SoftwareOutputDevice))) {} void SetUp() override { - LayerTreeSettings settings; + LayerTreeSettingsForTesting settings; CustomizeSettings(&settings); host_impl_.reset(new MockLayerTreeHostImpl(settings, &task_runner_provider_, &shared_bitmap_manager_, @@ -1521,7 +1522,7 @@ class TileManagerTest : public testing::Test { // MockLayerTreeHostImpl allows us to intercept tile manager callbacks. class MockLayerTreeHostImpl : public FakeLayerTreeHostImpl { public: - MockLayerTreeHostImpl(const LayerTreeSettings& settings, + MockLayerTreeHostImpl(const LayerTreeSettingsForTesting& settings, TaskRunnerProvider* task_runner_provider, SharedBitmapManager* manager, TaskGraphRunner* task_graph_runner) @@ -1534,7 +1535,7 @@ class TileManagerTest : public testing::Test { }; // By default do no customization. - virtual void CustomizeSettings(LayerTreeSettings* settings) {} + virtual void CustomizeSettings(LayerTreeSettingsForTesting* settings) {} TestSharedBitmapManager shared_bitmap_manager_; TestTaskGraphRunner task_graph_runner_; @@ -1737,7 +1738,7 @@ class CancellingTileTaskRunner : public FakeTileTaskRunner { class PartialRasterTileManagerTest : public TileManagerTest { public: - void CustomizeSettings(LayerTreeSettings* settings) override { + void CustomizeSettings(LayerTreeSettingsForTesting* settings) override { settings->use_partial_raster = true; } }; diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h index 57e679c..842622f 100644 --- a/cc/trees/layer_tree_settings.h +++ b/cc/trees/layer_tree_settings.h @@ -21,7 +21,7 @@ namespace cc { class CC_EXPORT LayerTreeSettings { public: LayerTreeSettings(); - ~LayerTreeSettings(); + virtual ~LayerTreeSettings(); RendererSettings renderer_settings; bool single_thread_proxy_scheduler; |