diff options
Diffstat (limited to 'cc/resource_update_controller_unittest.cc')
-rw-r--r-- | cc/resource_update_controller_unittest.cc | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/cc/resource_update_controller_unittest.cc b/cc/resource_update_controller_unittest.cc index ac0b4cc7..7d68629 100644 --- a/cc/resource_update_controller_unittest.cc +++ b/cc/resource_update_controller_unittest.cc @@ -12,6 +12,7 @@ #include "cc/test/scheduler_test_common.h" #include "cc/test/tiled_layer_test_common.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/khronos/GLES2/gl2ext.h" using namespace cc; using namespace WebKit; @@ -52,6 +53,8 @@ public: return WebString(""); } + virtual void getQueryObjectuivEXT(WebGLId, WGC3Denum, WGC3Duint*); + private: ResourceUpdateControllerTest* m_test; bool m_supportShallowFlush; @@ -71,6 +74,7 @@ public: , m_numDanglingUploads(0) , m_numTotalUploads(0) , m_numTotalFlushes(0) + , m_queryResultsAvailable(0) { } @@ -105,6 +109,15 @@ public: m_numTotalUploads++; } + bool isQueryResultAvailable() + { + if (!m_queryResultsAvailable) + return false; + + m_queryResultsAvailable--; + return true; + } + protected: virtual void SetUp() { @@ -177,6 +190,11 @@ protected: updateController->finalize(); } + void makeQueryResultAvailable() + { + m_queryResultsAvailable++; + } + protected: // Classes required to interact and test the ResourceUpdateController scoped_ptr<GraphicsContext> m_context; @@ -185,6 +203,7 @@ protected: scoped_ptr<PrioritizedTexture> m_textures[4]; scoped_ptr<PrioritizedTextureManager> m_textureManager; SkBitmap m_bitmap; + int m_queryResultsAvailable; // Properties / expectations of this test int m_fullUploadCountExpected; @@ -222,6 +241,14 @@ void WebGraphicsContext3DForUploadTest::texSubImage2D(WGC3Denum target, m_test->onUpload(); } +void WebGraphicsContext3DForUploadTest::getQueryObjectuivEXT( + WebGLId, + WGC3Denum pname, + WGC3Duint* params) { + if (pname == GL_QUERY_RESULT_AVAILABLE_EXT) + *params = m_test->isQueryResultAvailable(); +} + // ZERO UPLOADS TESTS TEST_F(ResourceUpdateControllerTest, ZeroUploads) { @@ -381,10 +408,12 @@ TEST_F(ResourceUpdateControllerTest, UpdateMoreTextures) // Only enough time for 1 update. controller->performMoreUpdates( controller->now() + base::TimeDelta::FromMilliseconds(120)); - runPendingTask(&thread, controller.get()); EXPECT_FALSE(thread.hasPendingTask()); EXPECT_EQ(1, m_numTotalUploads); + // Complete one upload. + makeQueryResultAvailable(); + controller->setUpdateMoreTexturesTime( base::TimeDelta::FromMilliseconds(100)); controller->setUpdateMoreTexturesSize(1); @@ -392,7 +421,6 @@ TEST_F(ResourceUpdateControllerTest, UpdateMoreTextures) controller->performMoreUpdates( controller->now() + base::TimeDelta::FromMilliseconds(220)); runPendingTask(&thread, controller.get()); - runPendingTask(&thread, controller.get()); EXPECT_FALSE(thread.hasPendingTask()); EXPECT_TRUE(client.readyToFinalizeCalled()); EXPECT_EQ(3, m_numTotalUploads); @@ -420,7 +448,6 @@ TEST_F(ResourceUpdateControllerTest, NoMoreUpdates) controller->performMoreUpdates( controller->now() + base::TimeDelta::FromMilliseconds(310)); runPendingTask(&thread, controller.get()); - runPendingTask(&thread, controller.get()); EXPECT_FALSE(thread.hasPendingTask()); EXPECT_TRUE(client.readyToFinalizeCalled()); EXPECT_EQ(2, m_numTotalUploads); |