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

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

Issue 1126243002: Check for shader version mismatch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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
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/shader_manager.h" 5 #include "gpu/command_buffer/service/shader_manager.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "gpu/command_buffer/service/gpu_service_test.h" 8 #include "gpu/command_buffer/service/gpu_service_test.h"
9 #include "gpu/command_buffer/service/mocks.h" 9 #include "gpu/command_buffer/service/mocks.h"
10 #include "gpu/command_buffer/service/test_helper.h" 10 #include "gpu/command_buffer/service/test_helper.h"
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 kUniform1StaticUse, kUniform1Name); 182 kUniform1StaticUse, kUniform1Name);
183 uniform_map[kUniform2Name] = TestHelper::ConstructUniform( 183 uniform_map[kUniform2Name] = TestHelper::ConstructUniform(
184 kUniform2Type, kUniform2Size, kUniform2Precision, 184 kUniform2Type, kUniform2Size, kUniform2Precision,
185 kUniform2StaticUse, kUniform2Name); 185 kUniform2StaticUse, kUniform2Name);
186 VaryingMap varying_map; 186 VaryingMap varying_map;
187 varying_map[kVarying1Name] = TestHelper::ConstructVarying( 187 varying_map[kVarying1Name] = TestHelper::ConstructVarying(
188 kVarying1Type, kVarying1Size, kVarying1Precision, 188 kVarying1Type, kVarying1Size, kVarying1Precision,
189 kVarying1StaticUse, kVarying1Name); 189 kVarying1StaticUse, kVarying1Name);
190 190
191 TestHelper::SetShaderStates( 191 TestHelper::SetShaderStates(
192 gl_.get(), shader1, true, &kLog, &kTranslatedSource, 192 gl_.get(), shader1, true, &kLog, &kTranslatedSource, NULL,
193 &attrib_map, &uniform_map, &varying_map, NULL); 193 &attrib_map, &uniform_map, &varying_map, NULL);
194 EXPECT_TRUE(shader1->valid()); 194 EXPECT_TRUE(shader1->valid());
195 // When compilation succeeds, no log is recorded. 195 // When compilation succeeds, no log is recorded.
196 EXPECT_STREQ("", shader1->log_info().c_str()); 196 EXPECT_STREQ("", shader1->log_info().c_str());
197 EXPECT_STREQ(kClient1Source, shader1->last_compiled_source().c_str()); 197 EXPECT_STREQ(kClient1Source, shader1->last_compiled_source().c_str());
198 EXPECT_STREQ(kTranslatedSource.c_str(), shader1->translated_source().c_str()); 198 EXPECT_STREQ(kTranslatedSource.c_str(), shader1->translated_source().c_str());
199 199
200 // Check varying infos got copied. 200 // Check varying infos got copied.
201 EXPECT_EQ(attrib_map.size(), shader1->attrib_map().size()); 201 EXPECT_EQ(attrib_map.size(), shader1->attrib_map().size());
202 for (AttributeMap::const_iterator it = attrib_map.begin(); 202 for (AttributeMap::const_iterator it = attrib_map.begin();
(...skipping 26 matching lines...) Expand all
229 ASSERT_TRUE(variable_info != NULL); 229 ASSERT_TRUE(variable_info != NULL);
230 EXPECT_EQ(it->second.type, variable_info->type); 230 EXPECT_EQ(it->second.type, variable_info->type);
231 EXPECT_EQ(it->second.arraySize, variable_info->arraySize); 231 EXPECT_EQ(it->second.arraySize, variable_info->arraySize);
232 EXPECT_EQ(it->second.precision, variable_info->precision); 232 EXPECT_EQ(it->second.precision, variable_info->precision);
233 EXPECT_EQ(it->second.staticUse, variable_info->staticUse); 233 EXPECT_EQ(it->second.staticUse, variable_info->staticUse);
234 EXPECT_STREQ(it->second.name.c_str(), variable_info->name.c_str()); 234 EXPECT_STREQ(it->second.name.c_str(), variable_info->name.c_str());
235 } 235 }
236 236
237 // Compile failure case. 237 // Compile failure case.
238 TestHelper::SetShaderStates( 238 TestHelper::SetShaderStates(
239 gl_.get(), shader1, false, &kLog, &kTranslatedSource, 239 gl_.get(), shader1, false, &kLog, &kTranslatedSource, NULL,
240 &attrib_map, &uniform_map, &varying_map, NULL); 240 &attrib_map, &uniform_map, &varying_map, NULL);
241 EXPECT_FALSE(shader1->valid()); 241 EXPECT_FALSE(shader1->valid());
242 EXPECT_STREQ(kLog.c_str(), shader1->log_info().c_str()); 242 EXPECT_STREQ(kLog.c_str(), shader1->log_info().c_str());
243 EXPECT_STREQ("", shader1->translated_source().c_str()); 243 EXPECT_STREQ("", shader1->translated_source().c_str());
244 EXPECT_TRUE(shader1->attrib_map().empty()); 244 EXPECT_TRUE(shader1->attrib_map().empty());
245 EXPECT_TRUE(shader1->uniform_map().empty()); 245 EXPECT_TRUE(shader1->uniform_map().empty());
246 EXPECT_TRUE(shader1->varying_map().empty()); 246 EXPECT_TRUE(shader1->varying_map().empty());
247 } 247 }
248 248
249 TEST_F(ShaderManagerTest, ShaderInfoUseCount) { 249 TEST_F(ShaderManagerTest, ShaderInfoUseCount) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 EXPECT_CALL(*gl_, DeleteShader(kService1Id)) 290 EXPECT_CALL(*gl_, DeleteShader(kService1Id))
291 .Times(1) 291 .Times(1)
292 .RetiresOnSaturation(); 292 .RetiresOnSaturation();
293 manager_.Delete(shader1); // this should delete the shader. 293 manager_.Delete(shader1); // this should delete the shader.
294 shader2 = manager_.GetShader(kClient1Id); 294 shader2 = manager_.GetShader(kClient1Id);
295 EXPECT_TRUE(shader2 == NULL); 295 EXPECT_TRUE(shader2 == NULL);
296 } 296 }
297 297
298 } // namespace gles2 298 } // namespace gles2
299 } // namespace gpu 299 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698