Index: mojo/gpu/texture_cache_unittest.cc |
diff --git a/mojo/gpu/texture_cache_unittest.cc b/mojo/gpu/texture_cache_unittest.cc |
deleted file mode 100644 |
index 1be7415037a30a1a9d8245a610f14cf1ed92abe4..0000000000000000000000000000000000000000 |
--- a/mojo/gpu/texture_cache_unittest.cc |
+++ /dev/null |
@@ -1,208 +0,0 @@ |
-// 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 "mojo/gpu/texture_cache.h" |
- |
-#include "base/bind.h" |
-#include "base/message_loop/message_loop.h" |
-#include "mojo/gpu/gl_context.h" |
-#include "mojo/gpu/gl_texture.h" |
-#include "mojo/public/cpp/application/application_impl.h" |
-#include "mojo/public/cpp/application/application_test_base.h" |
-#include "mojo/services/geometry/interfaces/geometry.mojom.h" |
-#include "mojo/services/surfaces/interfaces/surface_id.mojom.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace { |
- |
-static const base::TimeDelta kDefaultMessageDelay = |
- base::TimeDelta::FromMilliseconds(20); |
- |
-class TextureCacheTest : public mojo::test::ApplicationTestBase { |
- public: |
- TextureCacheTest() : weak_factory_(this) {} |
- ~TextureCacheTest() override {} |
- |
- void SetUp() override { |
- mojo::test::ApplicationTestBase::SetUp(); |
- gl_context_ = mojo::GLContext::Create(application_impl()->shell()); |
- quit_message_loop_callback_ = base::Bind( |
- &TextureCacheTest::QuitMessageLoopCallback, weak_factory_.GetWeakPtr()); |
- } |
- |
- void QuitMessageLoopCallback() { base::MessageLoop::current()->Quit(); } |
- |
- void KickMessageLoop() { |
- base::MessageLoop::current()->PostDelayedTask( |
- FROM_HERE, quit_message_loop_callback_, kDefaultMessageDelay); |
- base::MessageLoop::current()->Run(); |
- } |
- |
- protected: |
- base::WeakPtr<mojo::GLContext> gl_context_; |
- base::Closure quit_message_loop_callback_; |
- base::WeakPtrFactory<TextureCacheTest> weak_factory_; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(TextureCacheTest); |
-}; |
- |
-TEST_F(TextureCacheTest, GetTextureOnce) { |
- mojo::TextureCache texture_cache(gl_context_, nullptr); |
- mojo::Size size; |
- size.width = 100; |
- size.height = 100; |
- scoped_ptr<mojo::TextureCache::TextureInfo> texture_info( |
- texture_cache.GetTexture(size).Pass()); |
- EXPECT_NE(texture_info->TakeTexture().get(), nullptr); |
-} |
- |
-TEST_F(TextureCacheTest, GetTextureTwice) { |
- mojo::TextureCache texture_cache(gl_context_, nullptr); |
- mojo::Size size; |
- size.width = 100; |
- size.height = 100; |
- scoped_ptr<mojo::TextureCache::TextureInfo> texture_info_1( |
- texture_cache.GetTexture(size).Pass()); |
- scoped_ptr<mojo::GLTexture> texture_1(texture_info_1->TakeTexture().Pass()); |
- scoped_ptr<mojo::TextureCache::TextureInfo> texture_info_2( |
- texture_cache.GetTexture(size).Pass()); |
- scoped_ptr<mojo::GLTexture> texture_2(texture_info_2->TakeTexture().Pass()); |
- |
- EXPECT_NE(texture_1.get(), nullptr); |
- EXPECT_NE(texture_2.get(), nullptr); |
- EXPECT_NE(texture_1.get(), texture_2.get()); |
- EXPECT_NE(texture_info_1->resource_id(), texture_info_2->resource_id()); |
-} |
- |
-TEST_F(TextureCacheTest, GetTextureAfterReturnSameSize) { |
- mojo::ResourceReturnerPtr resource_returner; |
- mojo::TextureCache texture_cache(gl_context_, &resource_returner); |
- mojo::Size size; |
- size.width = 100; |
- size.height = 100; |
- |
- // get a texture |
- scoped_ptr<mojo::TextureCache::TextureInfo> texture_info_1( |
- texture_cache.GetTexture(size).Pass()); |
- scoped_ptr<mojo::GLTexture> texture(texture_info_1->TakeTexture().Pass()); |
- mojo::GLTexture* texture_ptr = texture.get(); |
- EXPECT_NE(texture_ptr, nullptr); |
- |
- mojo::Array<mojo::ReturnedResourcePtr> resources; |
- mojo::ReturnedResourcePtr returnedResource = mojo::ReturnedResource::New(); |
- returnedResource->id = texture_info_1->resource_id(); |
- returnedResource->sync_point = 0u; |
- returnedResource->count = 1u; |
- returnedResource->lost = false; |
- resources.push_back(returnedResource.Pass()); |
- |
- // return the texture via resource id |
- texture_cache.NotifyPendingResourceReturn(texture_info_1->resource_id(), |
- texture.Pass()); |
- resource_returner->ReturnResources(resources.Pass()); |
- |
- KickMessageLoop(); |
- |
- // get a texture of the same size - it should be the same one as before |
- scoped_ptr<mojo::TextureCache::TextureInfo> texture_info_2( |
- texture_cache.GetTexture(size).Pass()); |
- scoped_ptr<mojo::GLTexture> texture_2(texture_info_2->TakeTexture().Pass()); |
- |
- EXPECT_NE(texture_2.get(), nullptr); |
- EXPECT_EQ(size.width, texture_2->size().width); |
- EXPECT_EQ(size.height, texture_2->size().height); |
- EXPECT_EQ(texture_info_1->resource_id(), texture_info_2->resource_id()); |
-} |
- |
-TEST_F(TextureCacheTest, GetTextureAfterReturnDifferentSize) { |
- mojo::ResourceReturnerPtr resource_returner; |
- mojo::TextureCache texture_cache(gl_context_, &resource_returner); |
- mojo::Size size; |
- size.width = 100; |
- size.height = 100; |
- |
- // get a texture |
- scoped_ptr<mojo::TextureCache::TextureInfo> texture_info_1( |
- texture_cache.GetTexture(size).Pass()); |
- scoped_ptr<mojo::GLTexture> texture(texture_info_1->TakeTexture().Pass()); |
- mojo::GLTexture* texture_ptr = texture.get(); |
- EXPECT_NE(texture_ptr, nullptr); |
- |
- mojo::Array<mojo::ReturnedResourcePtr> resources; |
- mojo::ReturnedResourcePtr returnedResource = mojo::ReturnedResource::New(); |
- returnedResource->id = texture_info_1->resource_id(); |
- returnedResource->sync_point = 0u; |
- returnedResource->count = 1u; |
- returnedResource->lost = false; |
- resources.push_back(returnedResource.Pass()); |
- |
- // return the texture via resource id |
- texture_cache.NotifyPendingResourceReturn(texture_info_1->resource_id(), |
- texture.Pass()); |
- resource_returner->ReturnResources(resources.Pass()); |
- |
- KickMessageLoop(); |
- |
- mojo::Size different_size; |
- different_size.width = size.width - 1; |
- different_size.height = size.height - 1; |
- |
- // get a texture of the different size - it should not be the same one as |
- // before |
- scoped_ptr<mojo::TextureCache::TextureInfo> texture_info_2( |
- texture_cache.GetTexture(different_size).Pass()); |
- scoped_ptr<mojo::GLTexture> texture_2(texture_info_2->TakeTexture().Pass()); |
- |
- EXPECT_NE(texture_2.get(), nullptr); |
- EXPECT_NE(size.width, texture_2->size().width); |
- EXPECT_NE(size.height, texture_2->size().height); |
- EXPECT_EQ(different_size.width, texture_2->size().width); |
- EXPECT_EQ(different_size.height, texture_2->size().height); |
- EXPECT_NE(texture_info_1->resource_id(), texture_info_2->resource_id()); |
-} |
- |
-TEST_F(TextureCacheTest, GetTextureReleasedGlContext) { |
- gl_context_.reset(); |
- mojo::TextureCache texture_cache(gl_context_, nullptr); |
- mojo::Size size; |
- size.width = 100; |
- size.height = 100; |
- |
- EXPECT_EQ(texture_cache.GetTexture(size).get(), nullptr); |
-} |
- |
-TEST_F(TextureCacheTest, ReturnResourcesReleasedGlContext) { |
- mojo::ResourceReturnerPtr resource_returner; |
- mojo::TextureCache texture_cache(gl_context_, &resource_returner); |
- mojo::Size size; |
- size.width = 100; |
- size.height = 100; |
- |
- // get a texture |
- scoped_ptr<mojo::TextureCache::TextureInfo> texture_info( |
- texture_cache.GetTexture(size).Pass()); |
- scoped_ptr<mojo::GLTexture> texture(texture_info->TakeTexture().Pass()); |
- mojo::GLTexture* texture_ptr = texture.get(); |
- EXPECT_NE(texture_ptr, nullptr); |
- |
- gl_context_.reset(); |
- |
- mojo::Array<mojo::ReturnedResourcePtr> resources; |
- mojo::ReturnedResourcePtr returnedResource = mojo::ReturnedResource::New(); |
- returnedResource->id = texture_info->resource_id(); |
- returnedResource->sync_point = 0u; |
- returnedResource->count = 1u; |
- returnedResource->lost = false; |
- resources.push_back(returnedResource.Pass()); |
- |
- // return the texture via resource id |
- texture_cache.NotifyPendingResourceReturn(texture_info->resource_id(), |
- texture.Pass()); |
- resource_returner->ReturnResources(resources.Pass()); |
- |
- KickMessageLoop(); |
-} |
- |
-} // namespace |