Add tests for b/34598346

Test: unit test passes
Bug: 34598346
Change-Id: I7e5144aa875e42487718059cc06b86e32db28702
This commit is contained in:
John Reck
2017-01-23 11:20:37 -08:00
parent 553ae6ab07
commit 47aa8d1477

View File

@@ -311,13 +311,32 @@ RENDERTHREAD_OPENGL_PIPELINE_TEST(FrameBuilder, deferRenderNodeScene) {
TestUtils::syncHierarchyPropertiesAndDisplayList(node);
}
FrameBuilder frameBuilder(SkRect::MakeWH(800, 600), 800, 600,
sLightGeometry, Caches::getInstance());
frameBuilder.deferRenderNodeScene(nodes, contentDrawBounds);
{
FrameBuilder frameBuilder(SkRect::MakeWH(800, 600), 800, 600,
sLightGeometry, Caches::getInstance());
frameBuilder.deferRenderNodeScene(nodes, contentDrawBounds);
DeferRenderNodeSceneTestRenderer renderer;
frameBuilder.replayBakedOps<TestDispatcher>(renderer);
EXPECT_EQ(4, renderer.getIndex());
DeferRenderNodeSceneTestRenderer renderer;
frameBuilder.replayBakedOps<TestDispatcher>(renderer);
EXPECT_EQ(4, renderer.getIndex());
}
for (auto& node : nodes) {
EXPECT_FALSE(node->nothingToDraw());
node->setStagingDisplayList(nullptr, nullptr);
node->destroyHardwareResources(nullptr);
EXPECT_TRUE(node->nothingToDraw());
}
{
// Validate no crashes if any nodes are missing DisplayLists
FrameBuilder frameBuilder(SkRect::MakeWH(800, 600), 800, 600,
sLightGeometry, Caches::getInstance());
frameBuilder.deferRenderNodeScene(nodes, contentDrawBounds);
FailRenderer renderer;
frameBuilder.replayBakedOps<TestDispatcher>(renderer);
}
}
RENDERTHREAD_OPENGL_PIPELINE_TEST(FrameBuilder, empty_noFbo0) {