Changeset 106994 in webkit


Ignore:
Timestamp:
Feb 7, 2012 3:03:10 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

[chromium] Unit test for bug #77996
https://bugs.webkit.org/show_bug.cgi?id=78019

Patch by Dana Jansens <danakj@chromium.org> on 2012-02-07
Reviewed by James Robinson.

  • tests/CCLayerTreeHostTest.cpp:

(CCLayerTreeHostTestManySurfaces):
(WTF::CCLayerTreeHostTestManySurfaces::CCLayerTreeHostTestManySurfaces):
(WTF::CCLayerTreeHostTestManySurfaces::beginTest):
(WTF::CCLayerTreeHostTestManySurfaces::afterTest):
(WTF):

Location:
trunk/Source/WebKit/chromium
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/chromium/ChangeLog

    r106987 r106994  
     12012-02-07  Dana Jansens  <danakj@chromium.org>
     2
     3        [chromium] Unit test for bug #77996
     4        https://bugs.webkit.org/show_bug.cgi?id=78019
     5
     6        Reviewed by James Robinson.
     7
     8        * tests/CCLayerTreeHostTest.cpp:
     9        (CCLayerTreeHostTestManySurfaces):
     10        (WTF::CCLayerTreeHostTestManySurfaces::CCLayerTreeHostTestManySurfaces):
     11        (WTF::CCLayerTreeHostTestManySurfaces::beginTest):
     12        (WTF::CCLayerTreeHostTestManySurfaces::afterTest):
     13        (WTF):
     14
    1152012-02-07  Sadrul Habib Chowdhury  <sadrul@chromium.org>
    216
  • trunk/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp

    r106700 r106994  
    14731473SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestLayerOcclusion)
    14741474
     1475class CCLayerTreeHostTestManySurfaces : public CCLayerTreeHostTest {
     1476public:
     1477    CCLayerTreeHostTestManySurfaces() { }
     1478
     1479    virtual void beginTest()
     1480    {
     1481        // We create enough RenderSurfaces that it will trigger Vector reallocation while computing occlusion.
     1482        Region occluded;
     1483        const TransformationMatrix identityMatrix;
     1484        Vector<RefPtr<TestLayerChromium> > layers;
     1485        Vector<RefPtr<TestLayerChromium> > children;
     1486        int numSurfaces = 20;
     1487        RefPtr<TestLayerChromium> replica = TestLayerChromium::create();
     1488
     1489        for (int i = 0; i < numSurfaces; ++i) {
     1490            layers.append(TestLayerChromium::create());
     1491            if (!i) {
     1492                setLayerPropertiesForTesting(layers.last().get(), 0, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(100, 100), true);
     1493                layers.last()->createRenderSurface();
     1494            } else {
     1495                setLayerPropertiesForTesting(layers.last().get(), layers[layers.size()-2].get(), identityMatrix, FloatPoint(0, 0), FloatPoint(1, 1), IntSize(100-i, 100-i), true);
     1496                layers.last()->setMasksToBounds(true);
     1497                layers.last()->setReplicaLayer(replica.get()); // Make it have a RenderSurface
     1498            }
     1499        }
     1500
     1501        for (int i = 1; i < numSurfaces; ++i) {
     1502            children.append(TestLayerChromium::create());
     1503            setLayerPropertiesForTesting(children.last().get(), layers[i].get(), identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(500, 500), false);
     1504        }
     1505
     1506        m_layerTreeHost->setRootLayer(layers[0].get());
     1507        m_layerTreeHost->setViewportSize(layers[0]->bounds());
     1508        m_layerTreeHost->updateLayers();
     1509        m_layerTreeHost->commitComplete();
     1510
     1511        for (int i = 0; i < numSurfaces-1; ++i) {
     1512            IntRect expectedOcclusion(i+1, i+1, 100-i-1, 100-i-1);
     1513
     1514            EXPECT_EQ_RECT(expectedOcclusion, layers[i]->occludedScreenSpace().bounds());
     1515            EXPECT_EQ(1u, layers[i]->occludedScreenSpace().rects().size());
     1516        }
     1517
     1518        // Kill the layerTreeHost immediately.
     1519        m_layerTreeHost->setRootLayer(0);
     1520        m_layerTreeHost.clear();
     1521
     1522        endTest();
     1523    }
     1524
     1525    virtual void afterTest()
     1526    {
     1527    }
     1528};
     1529
     1530SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestManySurfaces)
     1531
    14751532} // namespace
Note: See TracChangeset for help on using the changeset viewer.