Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Side by Side Diff: gpu/command_buffer/service/memory_program_cache_unittest.cc

Issue 332303002: gpu: Add base class for gpu service tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: update gpu/build.GN Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/memory_program_cache.h" 5 #include "gpu/command_buffer/service/memory_program_cache.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "gpu/command_buffer/common/gles2_cmd_format.h" 8 #include "gpu/command_buffer/common/gles2_cmd_format.h"
9 #include "gpu/command_buffer/service/gl_utils.h" 9 #include "gpu/command_buffer/service/gl_utils.h"
10 #include "gpu/command_buffer/service/gpu_service_test.h"
10 #include "gpu/command_buffer/service/shader_manager.h" 11 #include "gpu/command_buffer/service/shader_manager.h"
11 #include "gpu/command_buffer/service/shader_translator.h" 12 #include "gpu/command_buffer/service/shader_translator.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
13 #include "ui/gl/gl_bindings.h" 14 #include "ui/gl/gl_bindings.h"
14 #include "ui/gl/gl_mock.h" 15 #include "ui/gl/gl_mock.h"
15 16
16 using ::testing::_; 17 using ::testing::_;
17 using ::testing::ElementsAreArray; 18 using ::testing::ElementsAreArray;
18 using ::testing::Invoke; 19 using ::testing::Invoke;
19 using ::testing::SetArgPointee; 20 using ::testing::SetArgPointee;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 GLsizei length() const { return length_; } 59 GLsizei length() const { return length_; }
59 GLenum format() const { return format_; } 60 GLenum format() const { return format_; }
60 const char* binary() const { return binary_; } 61 const char* binary() const { return binary_; }
61 62
62 private: 63 private:
63 GLsizei length_; 64 GLsizei length_;
64 GLenum format_; 65 GLenum format_;
65 const char* binary_; 66 const char* binary_;
66 }; 67 };
67 68
68 class MemoryProgramCacheTest : public testing::Test { 69 class MemoryProgramCacheTest : public GpuServiceTest {
69 public: 70 public:
70 static const size_t kCacheSizeBytes = 1024; 71 static const size_t kCacheSizeBytes = 1024;
71 static const GLuint kVertexShaderClientId = 90; 72 static const GLuint kVertexShaderClientId = 90;
72 static const GLuint kVertexShaderServiceId = 100; 73 static const GLuint kVertexShaderServiceId = 100;
73 static const GLuint kFragmentShaderClientId = 91; 74 static const GLuint kFragmentShaderClientId = 91;
74 static const GLuint kFragmentShaderServiceId = 100; 75 static const GLuint kFragmentShaderServiceId = 100;
75 76
76 MemoryProgramCacheTest() 77 MemoryProgramCacheTest()
77 : cache_(new MemoryProgramCache(kCacheSizeBytes)), 78 : cache_(new MemoryProgramCache(kCacheSizeBytes)),
78 vertex_shader_(NULL), 79 vertex_shader_(NULL),
79 fragment_shader_(NULL), 80 fragment_shader_(NULL),
80 shader_cache_count_(0) { } 81 shader_cache_count_(0) { }
81 virtual ~MemoryProgramCacheTest() { 82 virtual ~MemoryProgramCacheTest() {
82 shader_manager_.Destroy(false); 83 shader_manager_.Destroy(false);
83 } 84 }
84 85
85 void ShaderCacheCb(const std::string& key, const std::string& shader) { 86 void ShaderCacheCb(const std::string& key, const std::string& shader) {
86 shader_cache_count_++; 87 shader_cache_count_++;
87 shader_cache_shader_ = shader; 88 shader_cache_shader_ = shader;
88 } 89 }
89 90
90 int32 shader_cache_count() { return shader_cache_count_; } 91 int32 shader_cache_count() { return shader_cache_count_; }
91 const std::string& shader_cache_shader() { return shader_cache_shader_; } 92 const std::string& shader_cache_shader() { return shader_cache_shader_; }
92 93
93 protected: 94 protected:
94 virtual void SetUp() { 95 virtual void SetUp() {
95 gl_.reset(new ::testing::StrictMock<gfx::MockGLInterface>()); 96 GpuServiceTest::SetUp();
96 ::gfx::MockGLInterface::SetGLInterface(gl_.get());
97 97
98 vertex_shader_ = shader_manager_.CreateShader(kVertexShaderClientId, 98 vertex_shader_ = shader_manager_.CreateShader(kVertexShaderClientId,
99 kVertexShaderServiceId, 99 kVertexShaderServiceId,
100 GL_VERTEX_SHADER); 100 GL_VERTEX_SHADER);
101 fragment_shader_ = shader_manager_.CreateShader( 101 fragment_shader_ = shader_manager_.CreateShader(
102 kFragmentShaderClientId, 102 kFragmentShaderClientId,
103 kFragmentShaderServiceId, 103 kFragmentShaderServiceId,
104 GL_FRAGMENT_SHADER); 104 GL_FRAGMENT_SHADER);
105 ASSERT_TRUE(vertex_shader_ != NULL); 105 ASSERT_TRUE(vertex_shader_ != NULL);
106 ASSERT_TRUE(fragment_shader_ != NULL); 106 ASSERT_TRUE(fragment_shader_ != NULL);
(...skipping 23 matching lines...) Expand all
130 fragment_shader_->set_uniform_map(vertex_uniform_map); 130 fragment_shader_->set_uniform_map(vertex_uniform_map);
131 fragment_shader_->set_varying_map(vertex_varying_map); 131 fragment_shader_->set_varying_map(vertex_varying_map);
132 132
133 vertex_shader_->UpdateSource("bbbalsldkdkdkd"); 133 vertex_shader_->UpdateSource("bbbalsldkdkdkd");
134 fragment_shader_->UpdateSource("bbbal sldkdkdkas 134 ad"); 134 fragment_shader_->UpdateSource("bbbal sldkdkdkas 134 ad");
135 135
136 vertex_shader_->SetStatus(true, NULL, NULL); 136 vertex_shader_->SetStatus(true, NULL, NULL);
137 fragment_shader_->SetStatus(true, NULL, NULL); 137 fragment_shader_->SetStatus(true, NULL, NULL);
138 } 138 }
139 139
140 virtual void TearDown() {
141 ::gfx::MockGLInterface::SetGLInterface(NULL);
142 gl_.reset();
143 }
144
145 void SetExpectationsForSaveLinkedProgram( 140 void SetExpectationsForSaveLinkedProgram(
146 const GLint program_id, 141 const GLint program_id,
147 ProgramBinaryEmulator* emulator) const { 142 ProgramBinaryEmulator* emulator) const {
148 EXPECT_CALL(*gl_.get(), 143 EXPECT_CALL(*gl_.get(),
149 GetProgramiv(program_id, GL_PROGRAM_BINARY_LENGTH_OES, _)) 144 GetProgramiv(program_id, GL_PROGRAM_BINARY_LENGTH_OES, _))
150 .WillOnce(SetArgPointee<2>(emulator->length())); 145 .WillOnce(SetArgPointee<2>(emulator->length()));
151 EXPECT_CALL(*gl_.get(), 146 EXPECT_CALL(*gl_.get(),
152 GetProgramBinary(program_id, emulator->length(), _, _, _)) 147 GetProgramBinary(program_id, emulator->length(), _, _, _))
153 .WillOnce(Invoke(emulator, &ProgramBinaryEmulator::GetProgramBinary)); 148 .WillOnce(Invoke(emulator, &ProgramBinaryEmulator::GetProgramBinary));
154 } 149 }
(...skipping 19 matching lines...) Expand all
174 ProgramBinary(program_id, 169 ProgramBinary(program_id,
175 emulator->format(), 170 emulator->format(),
176 _, 171 _,
177 emulator->length())) 172 emulator->length()))
178 .WillOnce(Invoke(emulator, &ProgramBinaryEmulator::ProgramBinary)); 173 .WillOnce(Invoke(emulator, &ProgramBinaryEmulator::ProgramBinary));
179 EXPECT_CALL(*gl_.get(), 174 EXPECT_CALL(*gl_.get(),
180 GetProgramiv(program_id, GL_LINK_STATUS, _)) 175 GetProgramiv(program_id, GL_LINK_STATUS, _))
181 .WillOnce(SetArgPointee<2>(GL_FALSE)); 176 .WillOnce(SetArgPointee<2>(GL_FALSE));
182 } 177 }
183 178
184 // Use StrictMock to make 100% sure we know how GL will be called.
185 scoped_ptr< ::testing::StrictMock<gfx::MockGLInterface> > gl_;
186 scoped_ptr<MemoryProgramCache> cache_; 179 scoped_ptr<MemoryProgramCache> cache_;
187 ShaderManager shader_manager_; 180 ShaderManager shader_manager_;
188 Shader* vertex_shader_; 181 Shader* vertex_shader_;
189 Shader* fragment_shader_; 182 Shader* fragment_shader_;
190 int32 shader_cache_count_; 183 int32 shader_cache_count_;
191 std::string shader_cache_shader_; 184 std::string shader_cache_shader_;
192 }; 185 };
193 186
194 TEST_F(MemoryProgramCacheTest, CacheSave) { 187 TEST_F(MemoryProgramCacheTest, CacheSave) {
195 const GLenum kFormat = 1; 188 const GLenum kFormat = 1;
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 NULL, 629 NULL,
637 fragment_shader_, 630 fragment_shader_,
638 NULL, 631 NULL,
639 NULL, 632 NULL,
640 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, 633 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb,
641 base::Unretained(this)))); 634 base::Unretained(this))));
642 } 635 }
643 636
644 } // namespace gles2 637 } // namespace gles2
645 } // namespace gpu 638 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/mailbox_manager_unittest.cc ('k') | gpu/command_buffer/service/program_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698