summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/renderbuffer_manager_unittest.cc
diff options
context:
space:
mode:
authorgman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-09 05:50:20 +0000
committergman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-09 05:50:20 +0000
commit73276523fc5c0d811beade0a6d010727cdea4f01 (patch)
treea8ac23dc923e8c86a73f62bc3f45dbca32021282 /gpu/command_buffer/service/renderbuffer_manager_unittest.cc
parent0985a93e3f15397f69d14359201f22198af5376b (diff)
downloadchromium_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.cc60
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