summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorweiliangc <weiliangc@chromium.org>2015-12-01 14:53:31 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-01 23:02:22 +0000
commitd9897d7d0f9005a11318f510b95b6141eed625b7 (patch)
treeb427a9bb4a3af26d5fbdebe578e50ae1f7ad59b1
parent9d25e9f1632aacfb5ac75f9efbdb52ec5708a7ef (diff)
downloadchromium_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.gn2
-rw-r--r--cc/cc_tests.gyp2
-rw-r--r--cc/layers/delegated_renderer_layer_impl_unittest.cc1
-rw-r--r--cc/layers/layer_impl_unittest.cc39
-rw-r--r--cc/layers/picture_layer_unittest.cc5
-rw-r--r--cc/test/fake_layer_tree_host_impl.cc3
-rw-r--r--cc/test/layer_test_common.cc4
-rw-r--r--cc/test/layer_tree_settings_for_testing.cc16
-rw-r--r--cc/test/layer_tree_settings_for_testing.h20
-rw-r--r--cc/tiles/tile_manager_unittest.cc15
-rw-r--r--cc/trees/layer_tree_settings.h2
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;