diff options
author | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-09 05:50:20 +0000 |
---|---|---|
committer | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-09 05:50:20 +0000 |
commit | 73276523fc5c0d811beade0a6d010727cdea4f01 (patch) | |
tree | a8ac23dc923e8c86a73f62bc3f45dbca32021282 /gpu/command_buffer/service/renderbuffer_manager_unittest.cc | |
parent | 0985a93e3f15397f69d14359201f22198af5376b (diff) | |
download | chromium_src-73276523fc5c0d811beade0a6d010727cdea4f01.zip chromium_src-73276523fc5c0d811beade0a6d010727cdea4f01.tar.gz chromium_src-73276523fc5c0d811beade0a6d010727cdea4f01.tar.bz2 |
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
Diffstat (limited to 'gpu/command_buffer/service/renderbuffer_manager_unittest.cc')
-rw-r--r-- | gpu/command_buffer/service/renderbuffer_manager_unittest.cc | 60 |
1 files changed, 60 insertions, 0 deletions
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 <set> #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<std::string>* string_set, const std::string& str) { + std::pair<std::set<std::string>::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<std::string> 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 |