diff options
| author | 2017-01-23 11:20:37 -0800 | |
|---|---|---|
| committer | 2017-01-23 14:07:53 -0800 | |
| commit | 47aa8d1477d1bacdb3b45e0463ef99dcf5c9cc09 (patch) | |
| tree | 5cf486aceeec31d4231365aa9fc796ba5287141c /libs | |
| parent | 553ae6ab071b1db5e783c8c02f9311b4969729f6 (diff) | |
Add tests for b/34598346
Test: unit test passes
Bug: 34598346
Change-Id: I7e5144aa875e42487718059cc06b86e32db28702
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/hwui/tests/unit/FrameBuilderTests.cpp | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/libs/hwui/tests/unit/FrameBuilderTests.cpp b/libs/hwui/tests/unit/FrameBuilderTests.cpp index 6f3ed9cf9e2f..5a2791cdfd82 100644 --- a/libs/hwui/tests/unit/FrameBuilderTests.cpp +++ b/libs/hwui/tests/unit/FrameBuilderTests.cpp @@ -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) { |