From 73276523fc5c0d811beade0a6d010727cdea4f01 Mon Sep 17 00:00:00 2001 From: "gman@chromium.org" Date: Fri, 9 Nov 2012 05:50:20 +0000 Subject: cache fbo combos BUG=159991 Review URL: https://chromiumcodereview.appspot.com/11365145 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166858 0039d316-1c4b-4281-b951-d872f2087c98 --- .../service/renderbuffer_manager_unittest.cc | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'gpu/command_buffer/service/renderbuffer_manager_unittest.cc') diff --git a/gpu/command_buffer/service/renderbuffer_manager_unittest.cc b/gpu/command_buffer/service/renderbuffer_manager_unittest.cc index 8e13ac9..1ac8bcb 100644 --- a/gpu/command_buffer/service/renderbuffer_manager_unittest.cc +++ b/gpu/command_buffer/service/renderbuffer_manager_unittest.cc @@ -4,6 +4,7 @@ #include "gpu/command_buffer/service/renderbuffer_manager.h" +#include #include "gpu/command_buffer/common/gl_mock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -165,6 +166,65 @@ TEST_F(RenderbufferManagerTest, UseDeletedRenderbufferInfo) { info1 = NULL; } +namespace { + +bool InSet(std::set* string_set, const std::string& str) { + std::pair::iterator, bool> result = + string_set->insert(str); + return !result.second; +} + +} // anonymous namespace + +TEST_F(RenderbufferManagerTest, AddToSignature) { + const GLuint kClient1Id = 1; + const GLuint kService1Id = 11; + manager_.CreateRenderbufferInfo(kClient1Id, kService1Id); + RenderbufferManager::RenderbufferInfo::Ref info1( + manager_.GetRenderbufferInfo(kClient1Id)); + ASSERT_TRUE(info1 != NULL); + const GLsizei kSamples = 4; + const GLenum kFormat = GL_RGBA4; + const GLsizei kWidth = 128; + const GLsizei kHeight = 64; + manager_.SetInfo(info1, kSamples, kFormat, kWidth, kHeight); + std::string signature1; + std::string signature2; + info1->AddToSignature(&signature1); + + std::set string_set; + EXPECT_FALSE(InSet(&string_set, signature1)); + + // change things and see that the signatures change. + manager_.SetInfo(info1, kSamples + 1, kFormat, kWidth, kHeight); + info1->AddToSignature(&signature2); + EXPECT_FALSE(InSet(&string_set, signature2)); + + manager_.SetInfo(info1, kSamples, kFormat + 1, kWidth, kHeight); + signature2.clear(); + info1->AddToSignature(&signature2); + EXPECT_FALSE(InSet(&string_set, signature2)); + + manager_.SetInfo(info1, kSamples, kFormat, kWidth + 1, kHeight); + signature2.clear(); + info1->AddToSignature(&signature2); + EXPECT_FALSE(InSet(&string_set, signature2)); + + manager_.SetInfo(info1, kSamples, kFormat, kWidth, kHeight + 1); + signature2.clear(); + info1->AddToSignature(&signature2); + EXPECT_FALSE(InSet(&string_set, signature2)); + + // put it back to the same and it should be the same. + manager_.SetInfo(info1, kSamples, kFormat, kWidth, kHeight); + signature2.clear(); + info1->AddToSignature(&signature2); + EXPECT_EQ(signature1, signature2); + + // Check the set was acutally getting different signatures. + EXPECT_EQ(5u, string_set.size()); +} + } // namespace gles2 } // namespace gpu -- cgit v1.1