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

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

Issue 1542513002: Switch to standard integer types in gpu/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 4 years, 12 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/gles2_cmd_decoder.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include <stddef.h>
8 #include <stdint.h>
9
7 #include "base/command_line.h" 10 #include "base/command_line.h"
8 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
9 #include "gpu/command_buffer/common/gles2_cmd_format.h" 12 #include "gpu/command_buffer/common/gles2_cmd_format.h"
10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 13 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
11 #include "gpu/command_buffer/service/cmd_buffer_engine.h" 14 #include "gpu/command_buffer/service/cmd_buffer_engine.h"
12 #include "gpu/command_buffer/service/context_group.h" 15 #include "gpu/command_buffer/service/context_group.h"
13 #include "gpu/command_buffer/service/context_state.h" 16 #include "gpu/command_buffer/service/context_state.h"
14 #include "gpu/command_buffer/service/gl_surface_mock.h" 17 #include "gpu/command_buffer/service/gl_surface_mock.h"
15 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h" 18 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h"
16 #include "gpu/command_buffer/service/image_manager.h" 19 #include "gpu/command_buffer/service/image_manager.h"
(...skipping 25 matching lines...) Expand all
42 using ::testing::SetArgPointee; 45 using ::testing::SetArgPointee;
43 using ::testing::StrEq; 46 using ::testing::StrEq;
44 using ::testing::StrictMock; 47 using ::testing::StrictMock;
45 48
46 namespace gpu { 49 namespace gpu {
47 namespace gles2 { 50 namespace gles2 {
48 51
49 using namespace cmds; 52 using namespace cmds;
50 53
51 TEST_P(GLES2DecoderWithShaderTest, GetProgramInfoCHROMIUMValidArgs) { 54 TEST_P(GLES2DecoderWithShaderTest, GetProgramInfoCHROMIUMValidArgs) {
52 const uint32 kBucketId = 123; 55 const uint32_t kBucketId = 123;
53 GetProgramInfoCHROMIUM cmd; 56 GetProgramInfoCHROMIUM cmd;
54 cmd.Init(client_program_id_, kBucketId); 57 cmd.Init(client_program_id_, kBucketId);
55 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 58 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
56 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 59 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
57 EXPECT_GT(bucket->size(), 0u); 60 EXPECT_GT(bucket->size(), 0u);
58 } 61 }
59 62
60 TEST_P(GLES2DecoderWithShaderTest, GetProgramInfoCHROMIUMInvalidArgs) { 63 TEST_P(GLES2DecoderWithShaderTest, GetProgramInfoCHROMIUMInvalidArgs) {
61 const uint32 kBucketId = 123; 64 const uint32_t kBucketId = 123;
62 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 65 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
63 EXPECT_TRUE(bucket == NULL); 66 EXPECT_TRUE(bucket == NULL);
64 GetProgramInfoCHROMIUM cmd; 67 GetProgramInfoCHROMIUM cmd;
65 cmd.Init(kInvalidClientId, kBucketId); 68 cmd.Init(kInvalidClientId, kBucketId);
66 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 69 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
67 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 70 EXPECT_EQ(GL_NO_ERROR, GetGLError());
68 bucket = decoder_->GetBucket(kBucketId); 71 bucket = decoder_->GetBucket(kBucketId);
69 ASSERT_TRUE(bucket != NULL); 72 ASSERT_TRUE(bucket != NULL);
70 EXPECT_EQ(sizeof(ProgramInfoHeader), bucket->size()); 73 EXPECT_EQ(sizeof(ProgramInfoHeader), bucket->size());
71 ProgramInfoHeader* info = 74 ProgramInfoHeader* info =
72 bucket->GetDataAs<ProgramInfoHeader*>(0, sizeof(ProgramInfoHeader)); 75 bucket->GetDataAs<ProgramInfoHeader*>(0, sizeof(ProgramInfoHeader));
73 ASSERT_TRUE(info != 0); 76 ASSERT_TRUE(info != 0);
74 EXPECT_EQ(0u, info->link_status); 77 EXPECT_EQ(0u, info->link_status);
75 EXPECT_EQ(0u, info->num_attribs); 78 EXPECT_EQ(0u, info->num_attribs);
76 EXPECT_EQ(0u, info->num_uniforms); 79 EXPECT_EQ(0u, info->num_uniforms);
77 } 80 }
78 81
79 TEST_P(GLES2DecoderWithShaderTest, GetUniformBlocksCHROMIUMValidArgs) { 82 TEST_P(GLES2DecoderWithShaderTest, GetUniformBlocksCHROMIUMValidArgs) {
80 const uint32 kBucketId = 123; 83 const uint32_t kBucketId = 123;
81 GetUniformBlocksCHROMIUM cmd; 84 GetUniformBlocksCHROMIUM cmd;
82 cmd.Init(client_program_id_, kBucketId); 85 cmd.Init(client_program_id_, kBucketId);
83 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _)) 86 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _))
84 .WillOnce(SetArgPointee<2>(GL_TRUE)) 87 .WillOnce(SetArgPointee<2>(GL_TRUE))
85 .RetiresOnSaturation(); 88 .RetiresOnSaturation();
86 EXPECT_CALL(*gl_, 89 EXPECT_CALL(*gl_,
87 GetProgramiv(kServiceProgramId, GL_ACTIVE_UNIFORM_BLOCKS, _)) 90 GetProgramiv(kServiceProgramId, GL_ACTIVE_UNIFORM_BLOCKS, _))
88 .WillOnce(SetArgPointee<2>(0)) 91 .WillOnce(SetArgPointee<2>(0))
89 .RetiresOnSaturation(); 92 .RetiresOnSaturation();
90 decoder_->set_unsafe_es3_apis_enabled(true); 93 decoder_->set_unsafe_es3_apis_enabled(true);
91 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 94 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
92 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 95 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
93 EXPECT_EQ(sizeof(UniformBlocksHeader), bucket->size()); 96 EXPECT_EQ(sizeof(UniformBlocksHeader), bucket->size());
94 UniformBlocksHeader* header = 97 UniformBlocksHeader* header =
95 bucket->GetDataAs<UniformBlocksHeader*>(0, sizeof(UniformBlocksHeader)); 98 bucket->GetDataAs<UniformBlocksHeader*>(0, sizeof(UniformBlocksHeader));
96 EXPECT_TRUE(header != NULL); 99 EXPECT_TRUE(header != NULL);
97 EXPECT_EQ(0u, header->num_uniform_blocks); 100 EXPECT_EQ(0u, header->num_uniform_blocks);
98 decoder_->set_unsafe_es3_apis_enabled(false); 101 decoder_->set_unsafe_es3_apis_enabled(false);
99 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 102 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
100 } 103 }
101 104
102 TEST_P(GLES2DecoderWithShaderTest, GetUniformBlocksCHROMIUMInvalidArgs) { 105 TEST_P(GLES2DecoderWithShaderTest, GetUniformBlocksCHROMIUMInvalidArgs) {
103 const uint32 kBucketId = 123; 106 const uint32_t kBucketId = 123;
104 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 107 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
105 EXPECT_TRUE(bucket == NULL); 108 EXPECT_TRUE(bucket == NULL);
106 GetUniformBlocksCHROMIUM cmd; 109 GetUniformBlocksCHROMIUM cmd;
107 cmd.Init(kInvalidClientId, kBucketId); 110 cmd.Init(kInvalidClientId, kBucketId);
108 decoder_->set_unsafe_es3_apis_enabled(true); 111 decoder_->set_unsafe_es3_apis_enabled(true);
109 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 112 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
110 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 113 EXPECT_EQ(GL_NO_ERROR, GetGLError());
111 bucket = decoder_->GetBucket(kBucketId); 114 bucket = decoder_->GetBucket(kBucketId);
112 ASSERT_TRUE(bucket != NULL); 115 ASSERT_TRUE(bucket != NULL);
113 EXPECT_EQ(sizeof(UniformBlocksHeader), bucket->size()); 116 EXPECT_EQ(sizeof(UniformBlocksHeader), bucket->size());
114 UniformBlocksHeader* header = 117 UniformBlocksHeader* header =
115 bucket->GetDataAs<UniformBlocksHeader*>(0, sizeof(UniformBlocksHeader)); 118 bucket->GetDataAs<UniformBlocksHeader*>(0, sizeof(UniformBlocksHeader));
116 ASSERT_TRUE(header != NULL); 119 ASSERT_TRUE(header != NULL);
117 EXPECT_EQ(0u, header->num_uniform_blocks); 120 EXPECT_EQ(0u, header->num_uniform_blocks);
118 } 121 }
119 122
120 TEST_P(GLES2DecoderWithShaderTest, GetUniformsES3CHROMIUMValidArgs) { 123 TEST_P(GLES2DecoderWithShaderTest, GetUniformsES3CHROMIUMValidArgs) {
121 const uint32 kBucketId = 123; 124 const uint32_t kBucketId = 123;
122 GetUniformsES3CHROMIUM cmd; 125 GetUniformsES3CHROMIUM cmd;
123 cmd.Init(client_program_id_, kBucketId); 126 cmd.Init(client_program_id_, kBucketId);
124 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _)) 127 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _))
125 .WillOnce(SetArgPointee<2>(GL_TRUE)) 128 .WillOnce(SetArgPointee<2>(GL_TRUE))
126 .RetiresOnSaturation(); 129 .RetiresOnSaturation();
127 EXPECT_CALL(*gl_, 130 EXPECT_CALL(*gl_,
128 GetProgramiv(kServiceProgramId, GL_ACTIVE_UNIFORMS, _)) 131 GetProgramiv(kServiceProgramId, GL_ACTIVE_UNIFORMS, _))
129 .WillOnce(SetArgPointee<2>(0)) 132 .WillOnce(SetArgPointee<2>(0))
130 .RetiresOnSaturation(); 133 .RetiresOnSaturation();
131 decoder_->set_unsafe_es3_apis_enabled(true); 134 decoder_->set_unsafe_es3_apis_enabled(true);
132 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 135 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
133 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 136 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
134 EXPECT_EQ(sizeof(UniformsES3Header), bucket->size()); 137 EXPECT_EQ(sizeof(UniformsES3Header), bucket->size());
135 UniformsES3Header* header = 138 UniformsES3Header* header =
136 bucket->GetDataAs<UniformsES3Header*>(0, sizeof(UniformsES3Header)); 139 bucket->GetDataAs<UniformsES3Header*>(0, sizeof(UniformsES3Header));
137 EXPECT_TRUE(header != NULL); 140 EXPECT_TRUE(header != NULL);
138 EXPECT_EQ(0u, header->num_uniforms); 141 EXPECT_EQ(0u, header->num_uniforms);
139 decoder_->set_unsafe_es3_apis_enabled(false); 142 decoder_->set_unsafe_es3_apis_enabled(false);
140 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 143 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
141 } 144 }
142 145
143 TEST_P(GLES2DecoderWithShaderTest, GetUniformsES3CHROMIUMInvalidArgs) { 146 TEST_P(GLES2DecoderWithShaderTest, GetUniformsES3CHROMIUMInvalidArgs) {
144 const uint32 kBucketId = 123; 147 const uint32_t kBucketId = 123;
145 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 148 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
146 EXPECT_TRUE(bucket == NULL); 149 EXPECT_TRUE(bucket == NULL);
147 GetUniformsES3CHROMIUM cmd; 150 GetUniformsES3CHROMIUM cmd;
148 cmd.Init(kInvalidClientId, kBucketId); 151 cmd.Init(kInvalidClientId, kBucketId);
149 decoder_->set_unsafe_es3_apis_enabled(true); 152 decoder_->set_unsafe_es3_apis_enabled(true);
150 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 153 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
151 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 154 EXPECT_EQ(GL_NO_ERROR, GetGLError());
152 bucket = decoder_->GetBucket(kBucketId); 155 bucket = decoder_->GetBucket(kBucketId);
153 ASSERT_TRUE(bucket != NULL); 156 ASSERT_TRUE(bucket != NULL);
154 EXPECT_EQ(sizeof(UniformsES3Header), bucket->size()); 157 EXPECT_EQ(sizeof(UniformsES3Header), bucket->size());
155 UniformsES3Header* header = 158 UniformsES3Header* header =
156 bucket->GetDataAs<UniformsES3Header*>(0, sizeof(UniformsES3Header)); 159 bucket->GetDataAs<UniformsES3Header*>(0, sizeof(UniformsES3Header));
157 ASSERT_TRUE(header != NULL); 160 ASSERT_TRUE(header != NULL);
158 EXPECT_EQ(0u, header->num_uniforms); 161 EXPECT_EQ(0u, header->num_uniforms);
159 } 162 }
160 163
161 TEST_P(GLES2DecoderWithShaderTest, 164 TEST_P(GLES2DecoderWithShaderTest,
162 GetTransformFeedbackVaryingsCHROMIUMValidArgs) { 165 GetTransformFeedbackVaryingsCHROMIUMValidArgs) {
163 const uint32 kBucketId = 123; 166 const uint32_t kBucketId = 123;
164 GetTransformFeedbackVaryingsCHROMIUM cmd; 167 GetTransformFeedbackVaryingsCHROMIUM cmd;
165 cmd.Init(client_program_id_, kBucketId); 168 cmd.Init(client_program_id_, kBucketId);
166 EXPECT_CALL(*(gl_.get()), 169 EXPECT_CALL(*(gl_.get()),
167 GetProgramiv(kServiceProgramId, 170 GetProgramiv(kServiceProgramId,
168 GL_TRANSFORM_FEEDBACK_BUFFER_MODE, 171 GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
169 _)) 172 _))
170 .WillOnce(SetArgPointee<2>(GL_INTERLEAVED_ATTRIBS)) 173 .WillOnce(SetArgPointee<2>(GL_INTERLEAVED_ATTRIBS))
171 .RetiresOnSaturation(); 174 .RetiresOnSaturation();
172 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _)) 175 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _))
173 .WillOnce(SetArgPointee<2>(GL_TRUE)) 176 .WillOnce(SetArgPointee<2>(GL_TRUE))
(...skipping 13 matching lines...) Expand all
187 EXPECT_TRUE(header != NULL); 190 EXPECT_TRUE(header != NULL);
188 EXPECT_EQ(static_cast<uint32_t>(GL_INTERLEAVED_ATTRIBS), 191 EXPECT_EQ(static_cast<uint32_t>(GL_INTERLEAVED_ATTRIBS),
189 header->transform_feedback_buffer_mode); 192 header->transform_feedback_buffer_mode);
190 EXPECT_EQ(0u, header->num_transform_feedback_varyings); 193 EXPECT_EQ(0u, header->num_transform_feedback_varyings);
191 decoder_->set_unsafe_es3_apis_enabled(false); 194 decoder_->set_unsafe_es3_apis_enabled(false);
192 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 195 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
193 } 196 }
194 197
195 TEST_P(GLES2DecoderWithShaderTest, 198 TEST_P(GLES2DecoderWithShaderTest,
196 GetTransformFeedbackVaryingsCHROMIUMInvalidArgs) { 199 GetTransformFeedbackVaryingsCHROMIUMInvalidArgs) {
197 const uint32 kBucketId = 123; 200 const uint32_t kBucketId = 123;
198 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 201 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
199 EXPECT_TRUE(bucket == NULL); 202 EXPECT_TRUE(bucket == NULL);
200 GetTransformFeedbackVaryingsCHROMIUM cmd; 203 GetTransformFeedbackVaryingsCHROMIUM cmd;
201 cmd.Init(kInvalidClientId, kBucketId); 204 cmd.Init(kInvalidClientId, kBucketId);
202 decoder_->set_unsafe_es3_apis_enabled(true); 205 decoder_->set_unsafe_es3_apis_enabled(true);
203 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 206 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
204 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 207 EXPECT_EQ(GL_NO_ERROR, GetGLError());
205 bucket = decoder_->GetBucket(kBucketId); 208 bucket = decoder_->GetBucket(kBucketId);
206 ASSERT_TRUE(bucket != NULL); 209 ASSERT_TRUE(bucket != NULL);
207 EXPECT_EQ(sizeof(TransformFeedbackVaryingsHeader), bucket->size()); 210 EXPECT_EQ(sizeof(TransformFeedbackVaryingsHeader), bucket->size());
(...skipping 10 matching lines...) Expand all
218 result->size = 0; 221 result->size = 0;
219 GetUniformiv cmd; 222 GetUniformiv cmd;
220 cmd.Init(client_program_id_, 223 cmd.Init(client_program_id_,
221 kUniform2FakeLocation, 224 kUniform2FakeLocation,
222 kSharedMemoryId, 225 kSharedMemoryId,
223 kSharedMemoryOffset); 226 kSharedMemoryOffset);
224 EXPECT_CALL(*gl_, GetUniformiv(kServiceProgramId, kUniform2RealLocation, _)) 227 EXPECT_CALL(*gl_, GetUniformiv(kServiceProgramId, kUniform2RealLocation, _))
225 .Times(1); 228 .Times(1);
226 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 229 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
227 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type), 230 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type),
228 static_cast<uint32>(result->GetNumResults())); 231 static_cast<uint32_t>(result->GetNumResults()));
229 } 232 }
230 233
231 TEST_P(GLES2DecoderWithShaderTest, GetUniformivArrayElementSucceeds) { 234 TEST_P(GLES2DecoderWithShaderTest, GetUniformivArrayElementSucceeds) {
232 GetUniformiv::Result* result = 235 GetUniformiv::Result* result =
233 static_cast<GetUniformiv::Result*>(shared_memory_address_); 236 static_cast<GetUniformiv::Result*>(shared_memory_address_);
234 result->size = 0; 237 result->size = 0;
235 GetUniformiv cmd; 238 GetUniformiv cmd;
236 cmd.Init(client_program_id_, 239 cmd.Init(client_program_id_,
237 kUniform2ElementFakeLocation, 240 kUniform2ElementFakeLocation,
238 kSharedMemoryId, 241 kSharedMemoryId,
239 kSharedMemoryOffset); 242 kSharedMemoryOffset);
240 EXPECT_CALL(*gl_, 243 EXPECT_CALL(*gl_,
241 GetUniformiv(kServiceProgramId, kUniform2ElementRealLocation, _)) 244 GetUniformiv(kServiceProgramId, kUniform2ElementRealLocation, _))
242 .Times(1); 245 .Times(1);
243 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 246 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
244 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type), 247 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type),
245 static_cast<uint32>(result->GetNumResults())); 248 static_cast<uint32_t>(result->GetNumResults()));
246 } 249 }
247 250
248 TEST_P(GLES2DecoderWithShaderTest, GetUniformivBadProgramFails) { 251 TEST_P(GLES2DecoderWithShaderTest, GetUniformivBadProgramFails) {
249 GetUniformiv::Result* result = 252 GetUniformiv::Result* result =
250 static_cast<GetUniformiv::Result*>(shared_memory_address_); 253 static_cast<GetUniformiv::Result*>(shared_memory_address_);
251 result->size = 0; 254 result->size = 0;
252 GetUniformiv cmd; 255 GetUniformiv cmd;
253 // non-existant program 256 // non-existant program
254 cmd.Init(kInvalidClientId, 257 cmd.Init(kInvalidClientId,
255 kUniform2FakeLocation, 258 kUniform2FakeLocation,
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 GetUniformuiv cmd; 330 GetUniformuiv cmd;
328 cmd.Init(client_program_id_, 331 cmd.Init(client_program_id_,
329 kUniform2FakeLocation, 332 kUniform2FakeLocation,
330 kSharedMemoryId, 333 kSharedMemoryId,
331 kSharedMemoryOffset); 334 kSharedMemoryOffset);
332 EXPECT_CALL(*gl_, GetUniformuiv(kServiceProgramId, kUniform2RealLocation, _)) 335 EXPECT_CALL(*gl_, GetUniformuiv(kServiceProgramId, kUniform2RealLocation, _))
333 .Times(1); 336 .Times(1);
334 decoder_->set_unsafe_es3_apis_enabled(true); 337 decoder_->set_unsafe_es3_apis_enabled(true);
335 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 338 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
336 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type), 339 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type),
337 static_cast<uint32>(result->GetNumResults())); 340 static_cast<uint32_t>(result->GetNumResults()));
338 decoder_->set_unsafe_es3_apis_enabled(false); 341 decoder_->set_unsafe_es3_apis_enabled(false);
339 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 342 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
340 } 343 }
341 344
342 TEST_P(GLES2DecoderWithShaderTest, GetUniformuivArrayElementSucceeds) { 345 TEST_P(GLES2DecoderWithShaderTest, GetUniformuivArrayElementSucceeds) {
343 GetUniformuiv::Result* result = 346 GetUniformuiv::Result* result =
344 static_cast<GetUniformuiv::Result*>(shared_memory_address_); 347 static_cast<GetUniformuiv::Result*>(shared_memory_address_);
345 result->size = 0; 348 result->size = 0;
346 GetUniformuiv cmd; 349 GetUniformuiv cmd;
347 cmd.Init(client_program_id_, 350 cmd.Init(client_program_id_,
348 kUniform2ElementFakeLocation, 351 kUniform2ElementFakeLocation,
349 kSharedMemoryId, 352 kSharedMemoryId,
350 kSharedMemoryOffset); 353 kSharedMemoryOffset);
351 EXPECT_CALL(*gl_, 354 EXPECT_CALL(*gl_,
352 GetUniformuiv(kServiceProgramId, kUniform2ElementRealLocation, _)) 355 GetUniformuiv(kServiceProgramId, kUniform2ElementRealLocation, _))
353 .Times(1); 356 .Times(1);
354 decoder_->set_unsafe_es3_apis_enabled(true); 357 decoder_->set_unsafe_es3_apis_enabled(true);
355 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 358 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
356 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type), 359 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type),
357 static_cast<uint32>(result->GetNumResults())); 360 static_cast<uint32_t>(result->GetNumResults()));
358 } 361 }
359 362
360 TEST_P(GLES2DecoderWithShaderTest, GetUniformuivBadProgramFails) { 363 TEST_P(GLES2DecoderWithShaderTest, GetUniformuivBadProgramFails) {
361 GetUniformuiv::Result* result = 364 GetUniformuiv::Result* result =
362 static_cast<GetUniformuiv::Result*>(shared_memory_address_); 365 static_cast<GetUniformuiv::Result*>(shared_memory_address_);
363 result->size = 0; 366 result->size = 0;
364 GetUniformuiv cmd; 367 GetUniformuiv cmd;
365 // non-existant program 368 // non-existant program
366 cmd.Init(kInvalidClientId, 369 cmd.Init(kInvalidClientId,
367 kUniform2FakeLocation, 370 kUniform2FakeLocation,
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 result->size = 0; 444 result->size = 0;
442 GetUniformfv cmd; 445 GetUniformfv cmd;
443 cmd.Init(client_program_id_, 446 cmd.Init(client_program_id_,
444 kUniform2FakeLocation, 447 kUniform2FakeLocation,
445 kSharedMemoryId, 448 kSharedMemoryId,
446 kSharedMemoryOffset); 449 kSharedMemoryOffset);
447 EXPECT_CALL(*gl_, GetUniformfv(kServiceProgramId, kUniform2RealLocation, _)) 450 EXPECT_CALL(*gl_, GetUniformfv(kServiceProgramId, kUniform2RealLocation, _))
448 .Times(1); 451 .Times(1);
449 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 452 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
450 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type), 453 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type),
451 static_cast<uint32>(result->GetNumResults())); 454 static_cast<uint32_t>(result->GetNumResults()));
452 } 455 }
453 456
454 TEST_P(GLES2DecoderWithShaderTest, GetUniformfvArrayElementSucceeds) { 457 TEST_P(GLES2DecoderWithShaderTest, GetUniformfvArrayElementSucceeds) {
455 GetUniformfv::Result* result = 458 GetUniformfv::Result* result =
456 static_cast<GetUniformfv::Result*>(shared_memory_address_); 459 static_cast<GetUniformfv::Result*>(shared_memory_address_);
457 result->size = 0; 460 result->size = 0;
458 GetUniformfv cmd; 461 GetUniformfv cmd;
459 cmd.Init(client_program_id_, 462 cmd.Init(client_program_id_,
460 kUniform2ElementFakeLocation, 463 kUniform2ElementFakeLocation,
461 kSharedMemoryId, 464 kSharedMemoryId,
462 kSharedMemoryOffset); 465 kSharedMemoryOffset);
463 EXPECT_CALL(*gl_, 466 EXPECT_CALL(*gl_,
464 GetUniformfv(kServiceProgramId, kUniform2ElementRealLocation, _)) 467 GetUniformfv(kServiceProgramId, kUniform2ElementRealLocation, _))
465 .Times(1); 468 .Times(1);
466 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 469 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
467 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type), 470 EXPECT_EQ(GLES2Util::GetElementCountForUniformType(kUniform2Type),
468 static_cast<uint32>(result->GetNumResults())); 471 static_cast<uint32_t>(result->GetNumResults()));
469 } 472 }
470 473
471 TEST_P(GLES2DecoderWithShaderTest, GetUniformfvBadProgramFails) { 474 TEST_P(GLES2DecoderWithShaderTest, GetUniformfvBadProgramFails) {
472 GetUniformfv::Result* result = 475 GetUniformfv::Result* result =
473 static_cast<GetUniformfv::Result*>(shared_memory_address_); 476 static_cast<GetUniformfv::Result*>(shared_memory_address_);
474 result->size = 0; 477 result->size = 0;
475 GetUniformfv cmd; 478 GetUniformfv cmd;
476 // non-existant program 479 // non-existant program
477 cmd.Init(kInvalidClientId, 480 cmd.Init(kInvalidClientId,
478 kUniform2FakeLocation, 481 kUniform2FakeLocation,
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 672 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
670 cmd.Init(GL_VERTEX_SHADER, 673 cmd.Init(GL_VERTEX_SHADER,
671 GL_TEXTURE_2D, 674 GL_TEXTURE_2D,
672 shared_memory_id_, 675 shared_memory_id_,
673 kInvalidSharedMemoryOffset); 676 kInvalidSharedMemoryOffset);
674 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 677 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
675 } 678 }
676 679
677 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformSucceeds) { 680 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformSucceeds) {
678 const GLuint kUniformIndex = 1; 681 const GLuint kUniformIndex = 1;
679 const uint32 kBucketId = 123; 682 const uint32_t kBucketId = 123;
680 GetActiveUniform cmd; 683 GetActiveUniform cmd;
681 typedef GetActiveUniform::Result Result; 684 typedef GetActiveUniform::Result Result;
682 Result* result = static_cast<Result*>(shared_memory_address_); 685 Result* result = static_cast<Result*>(shared_memory_address_);
683 result->success = 0; 686 result->success = 0;
684 cmd.Init(client_program_id_, 687 cmd.Init(client_program_id_,
685 kUniformIndex, 688 kUniformIndex,
686 kBucketId, 689 kBucketId,
687 shared_memory_id_, 690 shared_memory_id_,
688 shared_memory_offset_); 691 shared_memory_offset_);
689 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 692 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
690 EXPECT_NE(0, result->success); 693 EXPECT_NE(0, result->success);
691 EXPECT_EQ(kUniform2Size, result->size); 694 EXPECT_EQ(kUniform2Size, result->size);
692 EXPECT_EQ(kUniform2Type, result->type); 695 EXPECT_EQ(kUniform2Type, result->type);
693 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 696 EXPECT_EQ(GL_NO_ERROR, GetGLError());
694 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 697 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
695 ASSERT_TRUE(bucket != NULL); 698 ASSERT_TRUE(bucket != NULL);
696 EXPECT_EQ( 699 EXPECT_EQ(
697 0, 700 0,
698 memcmp( 701 memcmp(
699 bucket->GetData(0, bucket->size()), kUniform2Name, bucket->size())); 702 bucket->GetData(0, bucket->size()), kUniform2Name, bucket->size()));
700 } 703 }
701 704
702 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformResultNotInitFails) { 705 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformResultNotInitFails) {
703 const GLuint kUniformIndex = 1; 706 const GLuint kUniformIndex = 1;
704 const uint32 kBucketId = 123; 707 const uint32_t kBucketId = 123;
705 GetActiveUniform cmd; 708 GetActiveUniform cmd;
706 typedef GetActiveUniform::Result Result; 709 typedef GetActiveUniform::Result Result;
707 Result* result = static_cast<Result*>(shared_memory_address_); 710 Result* result = static_cast<Result*>(shared_memory_address_);
708 result->success = 1; 711 result->success = 1;
709 cmd.Init(client_program_id_, 712 cmd.Init(client_program_id_,
710 kUniformIndex, 713 kUniformIndex,
711 kBucketId, 714 kBucketId,
712 shared_memory_id_, 715 shared_memory_id_,
713 shared_memory_offset_); 716 shared_memory_offset_);
714 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 717 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
715 } 718 }
716 719
717 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBadProgramFails) { 720 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBadProgramFails) {
718 const GLuint kUniformIndex = 1; 721 const GLuint kUniformIndex = 1;
719 const uint32 kBucketId = 123; 722 const uint32_t kBucketId = 123;
720 GetActiveUniform cmd; 723 GetActiveUniform cmd;
721 typedef GetActiveUniform::Result Result; 724 typedef GetActiveUniform::Result Result;
722 Result* result = static_cast<Result*>(shared_memory_address_); 725 Result* result = static_cast<Result*>(shared_memory_address_);
723 result->success = 0; 726 result->success = 0;
724 cmd.Init(kInvalidClientId, 727 cmd.Init(kInvalidClientId,
725 kUniformIndex, 728 kUniformIndex,
726 kBucketId, 729 kBucketId,
727 shared_memory_id_, 730 shared_memory_id_,
728 shared_memory_offset_); 731 shared_memory_offset_);
729 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 732 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
730 EXPECT_EQ(0, result->success); 733 EXPECT_EQ(0, result->success);
731 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 734 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
732 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS 735 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS
733 result->success = 0; 736 result->success = 0;
734 cmd.Init(client_shader_id_, 737 cmd.Init(client_shader_id_,
735 kUniformIndex, 738 kUniformIndex,
736 kBucketId, 739 kBucketId,
737 shared_memory_id_, 740 shared_memory_id_,
738 shared_memory_offset_); 741 shared_memory_offset_);
739 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 742 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
740 EXPECT_EQ(0, result->success); 743 EXPECT_EQ(0, result->success);
741 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 744 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
742 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS 745 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS
743 } 746 }
744 747
745 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBadIndexFails) { 748 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBadIndexFails) {
746 const uint32 kBucketId = 123; 749 const uint32_t kBucketId = 123;
747 GetActiveUniform cmd; 750 GetActiveUniform cmd;
748 typedef GetActiveUniform::Result Result; 751 typedef GetActiveUniform::Result Result;
749 Result* result = static_cast<Result*>(shared_memory_address_); 752 Result* result = static_cast<Result*>(shared_memory_address_);
750 result->success = 0; 753 result->success = 0;
751 cmd.Init(client_program_id_, 754 cmd.Init(client_program_id_,
752 kBadUniformIndex, 755 kBadUniformIndex,
753 kBucketId, 756 kBucketId,
754 shared_memory_id_, 757 shared_memory_id_,
755 shared_memory_offset_); 758 shared_memory_offset_);
756 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 759 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
757 EXPECT_EQ(0, result->success); 760 EXPECT_EQ(0, result->success);
758 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 761 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
759 } 762 }
760 763
761 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBadSharedMemoryFails) { 764 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBadSharedMemoryFails) {
762 const GLuint kUniformIndex = 1; 765 const GLuint kUniformIndex = 1;
763 const uint32 kBucketId = 123; 766 const uint32_t kBucketId = 123;
764 GetActiveUniform cmd; 767 GetActiveUniform cmd;
765 cmd.Init(client_program_id_, 768 cmd.Init(client_program_id_,
766 kUniformIndex, 769 kUniformIndex,
767 kBucketId, 770 kBucketId,
768 kInvalidSharedMemoryId, 771 kInvalidSharedMemoryId,
769 shared_memory_offset_); 772 shared_memory_offset_);
770 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 773 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
771 cmd.Init(client_program_id_, 774 cmd.Init(client_program_id_,
772 kUniformIndex, 775 kUniformIndex,
773 kBucketId, 776 kBucketId,
774 shared_memory_id_, 777 shared_memory_id_,
775 kInvalidSharedMemoryOffset); 778 kInvalidSharedMemoryOffset);
776 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 779 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
777 } 780 }
778 781
779 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBlockNameSucceeds) { 782 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBlockNameSucceeds) {
780 const uint32 kBucketId = 123; 783 const uint32_t kBucketId = 123;
781 GetActiveUniformBlockName cmd; 784 GetActiveUniformBlockName cmd;
782 typedef GetActiveUniformBlockName::Result Result; 785 typedef GetActiveUniformBlockName::Result Result;
783 Result* result = static_cast<Result*>(shared_memory_address_); 786 Result* result = static_cast<Result*>(shared_memory_address_);
784 *result = 0; 787 *result = 0;
785 cmd.Init(client_program_id_, 788 cmd.Init(client_program_id_,
786 0, 789 0,
787 kBucketId, 790 kBucketId,
788 shared_memory_id_, 791 shared_memory_id_,
789 shared_memory_offset_); 792 shared_memory_offset_);
790 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _)) 793 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _))
(...skipping 17 matching lines...) Expand all
808 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 811 EXPECT_EQ(GL_NO_ERROR, GetGLError());
809 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 812 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
810 ASSERT_TRUE(bucket != NULL); 813 ASSERT_TRUE(bucket != NULL);
811 EXPECT_EQ(0, 814 EXPECT_EQ(0,
812 memcmp(bucket->GetData(0, bucket->size()), kName, bucket->size())); 815 memcmp(bucket->GetData(0, bucket->size()), kName, bucket->size()));
813 decoder_->set_unsafe_es3_apis_enabled(false); 816 decoder_->set_unsafe_es3_apis_enabled(false);
814 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 817 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
815 } 818 }
816 819
817 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBlockNameUnlinkedProgram) { 820 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBlockNameUnlinkedProgram) {
818 const uint32 kBucketId = 123; 821 const uint32_t kBucketId = 123;
819 GetActiveUniformBlockName cmd; 822 GetActiveUniformBlockName cmd;
820 typedef GetActiveUniformBlockName::Result Result; 823 typedef GetActiveUniformBlockName::Result Result;
821 Result* result = static_cast<Result*>(shared_memory_address_); 824 Result* result = static_cast<Result*>(shared_memory_address_);
822 *result = 0; 825 *result = 0;
823 cmd.Init(client_program_id_, 826 cmd.Init(client_program_id_,
824 0, 827 0,
825 kBucketId, 828 kBucketId,
826 shared_memory_id_, 829 shared_memory_id_,
827 shared_memory_offset_); 830 shared_memory_offset_);
828 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _)) 831 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _))
829 .WillOnce(SetArgPointee<2>(GL_FALSE)) 832 .WillOnce(SetArgPointee<2>(GL_FALSE))
830 .RetiresOnSaturation(); 833 .RetiresOnSaturation();
831 decoder_->set_unsafe_es3_apis_enabled(true); 834 decoder_->set_unsafe_es3_apis_enabled(true);
832 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 835 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
833 EXPECT_EQ(0, *result); 836 EXPECT_EQ(0, *result);
834 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 837 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
835 } 838 }
836 839
837 TEST_P(GLES2DecoderWithShaderTest, 840 TEST_P(GLES2DecoderWithShaderTest,
838 GetActiveUniformBlockNameResultNotInitFails) { 841 GetActiveUniformBlockNameResultNotInitFails) {
839 const uint32 kBucketId = 123; 842 const uint32_t kBucketId = 123;
840 GetActiveUniformBlockName cmd; 843 GetActiveUniformBlockName cmd;
841 typedef GetActiveUniformBlockName::Result Result; 844 typedef GetActiveUniformBlockName::Result Result;
842 Result* result = static_cast<Result*>(shared_memory_address_); 845 Result* result = static_cast<Result*>(shared_memory_address_);
843 *result = 1; 846 *result = 1;
844 cmd.Init(client_program_id_, 847 cmd.Init(client_program_id_,
845 0, 848 0,
846 kBucketId, 849 kBucketId,
847 shared_memory_id_, 850 shared_memory_id_,
848 shared_memory_offset_); 851 shared_memory_offset_);
849 decoder_->set_unsafe_es3_apis_enabled(true); 852 decoder_->set_unsafe_es3_apis_enabled(true);
850 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 853 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
851 } 854 }
852 855
853 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBlockNameBadProgramFails) { 856 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformBlockNameBadProgramFails) {
854 const uint32 kBucketId = 123; 857 const uint32_t kBucketId = 123;
855 GetActiveUniformBlockName cmd; 858 GetActiveUniformBlockName cmd;
856 typedef GetActiveUniformBlockName::Result Result; 859 typedef GetActiveUniformBlockName::Result Result;
857 Result* result = static_cast<Result*>(shared_memory_address_); 860 Result* result = static_cast<Result*>(shared_memory_address_);
858 *result = 0; 861 *result = 0;
859 cmd.Init(kInvalidClientId, 862 cmd.Init(kInvalidClientId,
860 0, 863 0,
861 kBucketId, 864 kBucketId,
862 shared_memory_id_, 865 shared_memory_id_,
863 shared_memory_offset_); 866 shared_memory_offset_);
864 decoder_->set_unsafe_es3_apis_enabled(true); 867 decoder_->set_unsafe_es3_apis_enabled(true);
865 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 868 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
866 EXPECT_EQ(0, *result); 869 EXPECT_EQ(0, *result);
867 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 870 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
868 } 871 }
869 872
870 TEST_P(GLES2DecoderWithShaderTest, 873 TEST_P(GLES2DecoderWithShaderTest,
871 GetActiveUniformBlockNameBadSharedMemoryFails) { 874 GetActiveUniformBlockNameBadSharedMemoryFails) {
872 const uint32 kBucketId = 123; 875 const uint32_t kBucketId = 123;
873 GetActiveUniformBlockName cmd; 876 GetActiveUniformBlockName cmd;
874 decoder_->set_unsafe_es3_apis_enabled(true); 877 decoder_->set_unsafe_es3_apis_enabled(true);
875 cmd.Init(client_program_id_, 878 cmd.Init(client_program_id_,
876 0, 879 0,
877 kBucketId, 880 kBucketId,
878 kInvalidSharedMemoryId, 881 kInvalidSharedMemoryId,
879 shared_memory_offset_); 882 shared_memory_offset_);
880 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 883 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
881 cmd.Init(client_program_id_, 884 cmd.Init(client_program_id_,
882 0, 885 0,
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
1050 cmd.Init(client_program_id_, 1053 cmd.Init(client_program_id_,
1051 0, 1054 0,
1052 GL_UNIFORM_BLOCK_BINDING, 1055 GL_UNIFORM_BLOCK_BINDING,
1053 shared_memory_id_, 1056 shared_memory_id_,
1054 kInvalidSharedMemoryOffset); 1057 kInvalidSharedMemoryOffset);
1055 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1058 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1056 } 1059 }
1057 1060
1058 TEST_P(GLES2DecoderWithShaderTest, GetActiveAttribSucceeds) { 1061 TEST_P(GLES2DecoderWithShaderTest, GetActiveAttribSucceeds) {
1059 const GLuint kAttribIndex = 1; 1062 const GLuint kAttribIndex = 1;
1060 const uint32 kBucketId = 123; 1063 const uint32_t kBucketId = 123;
1061 GetActiveAttrib cmd; 1064 GetActiveAttrib cmd;
1062 typedef GetActiveAttrib::Result Result; 1065 typedef GetActiveAttrib::Result Result;
1063 Result* result = static_cast<Result*>(shared_memory_address_); 1066 Result* result = static_cast<Result*>(shared_memory_address_);
1064 result->success = 0; 1067 result->success = 0;
1065 cmd.Init(client_program_id_, 1068 cmd.Init(client_program_id_,
1066 kAttribIndex, 1069 kAttribIndex,
1067 kBucketId, 1070 kBucketId,
1068 shared_memory_id_, 1071 shared_memory_id_,
1069 shared_memory_offset_); 1072 shared_memory_offset_);
1070 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1073 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1071 EXPECT_NE(0, result->success); 1074 EXPECT_NE(0, result->success);
1072 EXPECT_EQ(kAttrib2Size, result->size); 1075 EXPECT_EQ(kAttrib2Size, result->size);
1073 EXPECT_EQ(kAttrib2Type, result->type); 1076 EXPECT_EQ(kAttrib2Type, result->type);
1074 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1077 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1075 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 1078 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
1076 ASSERT_TRUE(bucket != NULL); 1079 ASSERT_TRUE(bucket != NULL);
1077 EXPECT_EQ( 1080 EXPECT_EQ(
1078 0, 1081 0,
1079 memcmp(bucket->GetData(0, bucket->size()), kAttrib2Name, bucket->size())); 1082 memcmp(bucket->GetData(0, bucket->size()), kAttrib2Name, bucket->size()));
1080 } 1083 }
1081 1084
1082 TEST_P(GLES2DecoderWithShaderTest, GetActiveAttribResultNotInitFails) { 1085 TEST_P(GLES2DecoderWithShaderTest, GetActiveAttribResultNotInitFails) {
1083 const GLuint kAttribIndex = 1; 1086 const GLuint kAttribIndex = 1;
1084 const uint32 kBucketId = 123; 1087 const uint32_t kBucketId = 123;
1085 GetActiveAttrib cmd; 1088 GetActiveAttrib cmd;
1086 typedef GetActiveAttrib::Result Result; 1089 typedef GetActiveAttrib::Result Result;
1087 Result* result = static_cast<Result*>(shared_memory_address_); 1090 Result* result = static_cast<Result*>(shared_memory_address_);
1088 result->success = 1; 1091 result->success = 1;
1089 cmd.Init(client_program_id_, 1092 cmd.Init(client_program_id_,
1090 kAttribIndex, 1093 kAttribIndex,
1091 kBucketId, 1094 kBucketId,
1092 shared_memory_id_, 1095 shared_memory_id_,
1093 shared_memory_offset_); 1096 shared_memory_offset_);
1094 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1097 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1095 } 1098 }
1096 1099
1097 TEST_P(GLES2DecoderWithShaderTest, GetActiveAttribBadProgramFails) { 1100 TEST_P(GLES2DecoderWithShaderTest, GetActiveAttribBadProgramFails) {
1098 const GLuint kAttribIndex = 1; 1101 const GLuint kAttribIndex = 1;
1099 const uint32 kBucketId = 123; 1102 const uint32_t kBucketId = 123;
1100 GetActiveAttrib cmd; 1103 GetActiveAttrib cmd;
1101 typedef GetActiveAttrib::Result Result; 1104 typedef GetActiveAttrib::Result Result;
1102 Result* result = static_cast<Result*>(shared_memory_address_); 1105 Result* result = static_cast<Result*>(shared_memory_address_);
1103 result->success = 0; 1106 result->success = 0;
1104 cmd.Init(kInvalidClientId, 1107 cmd.Init(kInvalidClientId,
1105 kAttribIndex, 1108 kAttribIndex,
1106 kBucketId, 1109 kBucketId,
1107 shared_memory_id_, 1110 shared_memory_id_,
1108 shared_memory_offset_); 1111 shared_memory_offset_);
1109 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1112 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1110 EXPECT_EQ(0, result->success); 1113 EXPECT_EQ(0, result->success);
1111 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1114 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1112 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS 1115 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS
1113 result->success = 0; 1116 result->success = 0;
1114 cmd.Init(client_shader_id_, 1117 cmd.Init(client_shader_id_,
1115 kAttribIndex, 1118 kAttribIndex,
1116 kBucketId, 1119 kBucketId,
1117 shared_memory_id_, 1120 shared_memory_id_,
1118 shared_memory_offset_); 1121 shared_memory_offset_);
1119 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1122 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1120 EXPECT_EQ(0, result->success); 1123 EXPECT_EQ(0, result->success);
1121 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 1124 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
1122 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS 1125 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS
1123 } 1126 }
1124 1127
1125 TEST_P(GLES2DecoderWithShaderTest, GetActiveAttribBadIndexFails) { 1128 TEST_P(GLES2DecoderWithShaderTest, GetActiveAttribBadIndexFails) {
1126 const uint32 kBucketId = 123; 1129 const uint32_t kBucketId = 123;
1127 GetActiveAttrib cmd; 1130 GetActiveAttrib cmd;
1128 typedef GetActiveAttrib::Result Result; 1131 typedef GetActiveAttrib::Result Result;
1129 Result* result = static_cast<Result*>(shared_memory_address_); 1132 Result* result = static_cast<Result*>(shared_memory_address_);
1130 result->success = 0; 1133 result->success = 0;
1131 cmd.Init(client_program_id_, 1134 cmd.Init(client_program_id_,
1132 kBadAttribIndex, 1135 kBadAttribIndex,
1133 kBucketId, 1136 kBucketId,
1134 shared_memory_id_, 1137 shared_memory_id_,
1135 shared_memory_offset_); 1138 shared_memory_offset_);
1136 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1139 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1137 EXPECT_EQ(0, result->success); 1140 EXPECT_EQ(0, result->success);
1138 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1141 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1139 } 1142 }
1140 1143
1141 TEST_P(GLES2DecoderWithShaderTest, GetActiveAttribBadSharedMemoryFails) { 1144 TEST_P(GLES2DecoderWithShaderTest, GetActiveAttribBadSharedMemoryFails) {
1142 const GLuint kAttribIndex = 1; 1145 const GLuint kAttribIndex = 1;
1143 const uint32 kBucketId = 123; 1146 const uint32_t kBucketId = 123;
1144 GetActiveAttrib cmd; 1147 GetActiveAttrib cmd;
1145 cmd.Init(client_program_id_, 1148 cmd.Init(client_program_id_,
1146 kAttribIndex, 1149 kAttribIndex,
1147 kBucketId, 1150 kBucketId,
1148 kInvalidSharedMemoryId, 1151 kInvalidSharedMemoryId,
1149 shared_memory_offset_); 1152 shared_memory_offset_);
1150 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1153 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1151 cmd.Init(client_program_id_, 1154 cmd.Init(client_program_id_,
1152 kAttribIndex, 1155 kAttribIndex,
1153 kBucketId, 1156 kBucketId,
1154 shared_memory_id_, 1157 shared_memory_id_,
1155 kInvalidSharedMemoryOffset); 1158 kInvalidSharedMemoryOffset);
1156 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1159 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1157 } 1160 }
1158 1161
1159 TEST_P(GLES2DecoderWithShaderTest, GetUniformIndicesSucceeds) { 1162 TEST_P(GLES2DecoderWithShaderTest, GetUniformIndicesSucceeds) {
1160 const uint32 kBucketId = 123; 1163 const uint32_t kBucketId = 123;
1161 const char kName0[] = "Cow"; 1164 const char kName0[] = "Cow";
1162 const char kName1[] = "Chicken"; 1165 const char kName1[] = "Chicken";
1163 const char* kNames[] = { kName0, kName1 }; 1166 const char* kNames[] = { kName0, kName1 };
1164 const size_t kCount = arraysize(kNames); 1167 const size_t kCount = arraysize(kNames);
1165 const char kValidStrEnd = 0; 1168 const char kValidStrEnd = 0;
1166 const GLuint kIndices[] = { 1, 2 }; 1169 const GLuint kIndices[] = { 1, 2 };
1167 SetBucketAsCStrings(kBucketId, kCount, kNames, kCount, kValidStrEnd); 1170 SetBucketAsCStrings(kBucketId, kCount, kNames, kCount, kValidStrEnd);
1168 GetUniformIndices::Result* result = 1171 GetUniformIndices::Result* result =
1169 static_cast<GetUniformIndices::Result*>(shared_memory_address_); 1172 static_cast<GetUniformIndices::Result*>(shared_memory_address_);
1170 GetUniformIndices cmd; 1173 GetUniformIndices cmd;
(...skipping 17 matching lines...) Expand all
1188 EXPECT_EQ(kCount, static_cast<size_t>(result->GetNumResults())); 1191 EXPECT_EQ(kCount, static_cast<size_t>(result->GetNumResults()));
1189 for (size_t ii = 0; ii < kCount; ++ii) { 1192 for (size_t ii = 0; ii < kCount; ++ii) {
1190 EXPECT_EQ(kIndices[ii], result->GetData()[ii]); 1193 EXPECT_EQ(kIndices[ii], result->GetData()[ii]);
1191 } 1194 }
1192 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1195 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1193 decoder_->set_unsafe_es3_apis_enabled(false); 1196 decoder_->set_unsafe_es3_apis_enabled(false);
1194 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 1197 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
1195 } 1198 }
1196 1199
1197 TEST_P(GLES2DecoderWithShaderTest, GetUniformIndicesBadProgramFails) { 1200 TEST_P(GLES2DecoderWithShaderTest, GetUniformIndicesBadProgramFails) {
1198 const uint32 kBucketId = 123; 1201 const uint32_t kBucketId = 123;
1199 const char kName0[] = "Cow"; 1202 const char kName0[] = "Cow";
1200 const char kName1[] = "Chicken"; 1203 const char kName1[] = "Chicken";
1201 const char* kNames[] = { kName0, kName1 }; 1204 const char* kNames[] = { kName0, kName1 };
1202 const size_t kCount = arraysize(kNames); 1205 const size_t kCount = arraysize(kNames);
1203 const char kValidStrEnd = 0; 1206 const char kValidStrEnd = 0;
1204 SetBucketAsCStrings(kBucketId, kCount, kNames, kCount, kValidStrEnd); 1207 SetBucketAsCStrings(kBucketId, kCount, kNames, kCount, kValidStrEnd);
1205 GetUniformIndices::Result* result = 1208 GetUniformIndices::Result* result =
1206 static_cast<GetUniformIndices::Result*>(shared_memory_address_); 1209 static_cast<GetUniformIndices::Result*>(shared_memory_address_);
1207 decoder_->set_unsafe_es3_apis_enabled(true); 1210 decoder_->set_unsafe_es3_apis_enabled(true);
1208 GetUniformIndices cmd; 1211 GetUniformIndices cmd;
(...skipping 14 matching lines...) Expand all
1223 kBucketId, 1226 kBucketId,
1224 kSharedMemoryId, 1227 kSharedMemoryId,
1225 kSharedMemoryOffset); 1228 kSharedMemoryOffset);
1226 result->size = 0; 1229 result->size = 0;
1227 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1230 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1228 EXPECT_EQ(0, result->GetNumResults()); 1231 EXPECT_EQ(0, result->GetNumResults());
1229 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 1232 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
1230 } 1233 }
1231 1234
1232 TEST_P(GLES2DecoderWithShaderTest, GetUniformIndicesBadParamsFails) { 1235 TEST_P(GLES2DecoderWithShaderTest, GetUniformIndicesBadParamsFails) {
1233 const uint32 kBucketId = 123; 1236 const uint32_t kBucketId = 123;
1234 const char kName0[] = "Cow"; 1237 const char kName0[] = "Cow";
1235 const char kName1[] = "Chicken"; 1238 const char kName1[] = "Chicken";
1236 const char* kNames[] = { kName0, kName1 }; 1239 const char* kNames[] = { kName0, kName1 };
1237 const size_t kCount = arraysize(kNames); 1240 const size_t kCount = arraysize(kNames);
1238 const char kValidStrEnd = 0; 1241 const char kValidStrEnd = 0;
1239 const GLuint kIndices[] = { 1, 2 }; 1242 const GLuint kIndices[] = { 1, 2 };
1240 SetBucketAsCStrings(kBucketId, kCount, kNames, kCount, kValidStrEnd); 1243 SetBucketAsCStrings(kBucketId, kCount, kNames, kCount, kValidStrEnd);
1241 GetUniformIndices::Result* result = 1244 GetUniformIndices::Result* result =
1242 static_cast<GetUniformIndices::Result*>(shared_memory_address_); 1245 static_cast<GetUniformIndices::Result*>(shared_memory_address_);
1243 GetUniformIndices cmd; 1246 GetUniformIndices cmd;
(...skipping 12 matching lines...) Expand all
1256 .WillOnce(Return(GL_INVALID_VALUE)) 1259 .WillOnce(Return(GL_INVALID_VALUE))
1257 .RetiresOnSaturation(); 1260 .RetiresOnSaturation();
1258 decoder_->set_unsafe_es3_apis_enabled(true); 1261 decoder_->set_unsafe_es3_apis_enabled(true);
1259 result->size = 0; 1262 result->size = 0;
1260 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1263 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1261 EXPECT_EQ(0, result->GetNumResults()); 1264 EXPECT_EQ(0, result->GetNumResults());
1262 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1265 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1263 } 1266 }
1264 1267
1265 TEST_P(GLES2DecoderWithShaderTest, GetUniformIndicesResultNotInitFails) { 1268 TEST_P(GLES2DecoderWithShaderTest, GetUniformIndicesResultNotInitFails) {
1266 const uint32 kBucketId = 123; 1269 const uint32_t kBucketId = 123;
1267 const char kName0[] = "Cow"; 1270 const char kName0[] = "Cow";
1268 const char kName1[] = "Chicken"; 1271 const char kName1[] = "Chicken";
1269 const char* kNames[] = { kName0, kName1 }; 1272 const char* kNames[] = { kName0, kName1 };
1270 const size_t kCount = arraysize(kNames); 1273 const size_t kCount = arraysize(kNames);
1271 const char kValidStrEnd = 0; 1274 const char kValidStrEnd = 0;
1272 SetBucketAsCStrings(kBucketId, kCount, kNames, kCount, kValidStrEnd); 1275 SetBucketAsCStrings(kBucketId, kCount, kNames, kCount, kValidStrEnd);
1273 GetUniformIndices::Result* result = 1276 GetUniformIndices::Result* result =
1274 static_cast<GetUniformIndices::Result*>(shared_memory_address_); 1277 static_cast<GetUniformIndices::Result*>(shared_memory_address_);
1275 decoder_->set_unsafe_es3_apis_enabled(true); 1278 decoder_->set_unsafe_es3_apis_enabled(true);
1276 GetUniformIndices cmd; 1279 GetUniformIndices cmd;
1277 result->size = 1976; // Any value other than 0. 1280 result->size = 1976; // Any value other than 0.
1278 cmd.Init(kInvalidClientId, 1281 cmd.Init(kInvalidClientId,
1279 kBucketId, 1282 kBucketId,
1280 kSharedMemoryId, 1283 kSharedMemoryId,
1281 kSharedMemoryOffset); 1284 kSharedMemoryOffset);
1282 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1285 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1283 } 1286 }
1284 1287
1285 TEST_P(GLES2DecoderWithShaderTest, GetUniformIndicesBadSharedMemoryFails) { 1288 TEST_P(GLES2DecoderWithShaderTest, GetUniformIndicesBadSharedMemoryFails) {
1286 const uint32 kBucketId = 123; 1289 const uint32_t kBucketId = 123;
1287 const char kName0[] = "Cow"; 1290 const char kName0[] = "Cow";
1288 const char kName1[] = "Chicken"; 1291 const char kName1[] = "Chicken";
1289 const char* kNames[] = { kName0, kName1 }; 1292 const char* kNames[] = { kName0, kName1 };
1290 const size_t kCount = arraysize(kNames); 1293 const size_t kCount = arraysize(kNames);
1291 const char kValidStrEnd = 0; 1294 const char kValidStrEnd = 0;
1292 SetBucketAsCStrings(kBucketId, kCount, kNames, kCount, kValidStrEnd); 1295 SetBucketAsCStrings(kBucketId, kCount, kNames, kCount, kValidStrEnd);
1293 GetUniformIndices::Result* result = 1296 GetUniformIndices::Result* result =
1294 static_cast<GetUniformIndices::Result*>(shared_memory_address_); 1297 static_cast<GetUniformIndices::Result*>(shared_memory_address_);
1295 decoder_->set_unsafe_es3_apis_enabled(true); 1298 decoder_->set_unsafe_es3_apis_enabled(true);
1296 GetUniformIndices cmd; 1299 GetUniformIndices cmd;
1297 cmd.Init(client_program_id_, 1300 cmd.Init(client_program_id_,
1298 kBucketId, 1301 kBucketId,
1299 kInvalidSharedMemoryId, 1302 kInvalidSharedMemoryId,
1300 kSharedMemoryOffset); 1303 kSharedMemoryOffset);
1301 result->size = 0; 1304 result->size = 0;
1302 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1305 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1303 cmd.Init(client_program_id_, 1306 cmd.Init(client_program_id_,
1304 kBucketId, 1307 kBucketId,
1305 kSharedMemoryId, 1308 kSharedMemoryId,
1306 kInvalidSharedMemoryOffset); 1309 kInvalidSharedMemoryOffset);
1307 result->size = 0; 1310 result->size = 0;
1308 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1311 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1309 } 1312 }
1310 1313
1311 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivSucceeds) { 1314 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivSucceeds) {
1312 const uint32 kBucketId = 123; 1315 const uint32_t kBucketId = 123;
1313 const GLuint kIndices[] = { 1, 2 }; 1316 const GLuint kIndices[] = { 1, 2 };
1314 const GLint kResults[] = { 1976, 321 }; 1317 const GLint kResults[] = { 1976, 321 };
1315 const size_t kCount = arraysize(kIndices); 1318 const size_t kCount = arraysize(kIndices);
1316 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount); 1319 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount);
1317 GetActiveUniformsiv::Result* result = 1320 GetActiveUniformsiv::Result* result =
1318 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_); 1321 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_);
1319 GetActiveUniformsiv cmd; 1322 GetActiveUniformsiv cmd;
1320 cmd.Init(client_program_id_, 1323 cmd.Init(client_program_id_,
1321 kBucketId, 1324 kBucketId,
1322 GL_UNIFORM_TYPE, 1325 GL_UNIFORM_TYPE,
(...skipping 17 matching lines...) Expand all
1340 EXPECT_EQ(kCount, static_cast<size_t>(result->GetNumResults())); 1343 EXPECT_EQ(kCount, static_cast<size_t>(result->GetNumResults()));
1341 for (size_t ii = 0; ii < kCount; ++ii) { 1344 for (size_t ii = 0; ii < kCount; ++ii) {
1342 EXPECT_EQ(kResults[ii], result->GetData()[ii]); 1345 EXPECT_EQ(kResults[ii], result->GetData()[ii]);
1343 } 1346 }
1344 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1347 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1345 decoder_->set_unsafe_es3_apis_enabled(false); 1348 decoder_->set_unsafe_es3_apis_enabled(false);
1346 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 1349 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
1347 } 1350 }
1348 1351
1349 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivBadProgramFails) { 1352 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivBadProgramFails) {
1350 const uint32 kBucketId = 123; 1353 const uint32_t kBucketId = 123;
1351 const GLuint kIndices[] = { 1, 2 }; 1354 const GLuint kIndices[] = { 1, 2 };
1352 const size_t kCount = arraysize(kIndices); 1355 const size_t kCount = arraysize(kIndices);
1353 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount); 1356 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount);
1354 GetActiveUniformsiv::Result* result = 1357 GetActiveUniformsiv::Result* result =
1355 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_); 1358 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_);
1356 decoder_->set_unsafe_es3_apis_enabled(true); 1359 decoder_->set_unsafe_es3_apis_enabled(true);
1357 GetActiveUniformsiv cmd; 1360 GetActiveUniformsiv cmd;
1358 // None-existant program 1361 // None-existant program
1359 cmd.Init(kInvalidClientId, 1362 cmd.Init(kInvalidClientId,
1360 kBucketId, 1363 kBucketId,
(...skipping 13 matching lines...) Expand all
1374 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _)) 1377 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _))
1375 .WillOnce(SetArgPointee<2>(GL_FALSE)) 1378 .WillOnce(SetArgPointee<2>(GL_FALSE))
1376 .RetiresOnSaturation(); 1379 .RetiresOnSaturation();
1377 result->size = 0; 1380 result->size = 0;
1378 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1381 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1379 EXPECT_EQ(0, result->GetNumResults()); 1382 EXPECT_EQ(0, result->GetNumResults());
1380 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 1383 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
1381 } 1384 }
1382 1385
1383 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivBadParamsFails) { 1386 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivBadParamsFails) {
1384 const uint32 kBucketId = 123; 1387 const uint32_t kBucketId = 123;
1385 const GLuint kIndices[] = { 1, 2 }; 1388 const GLuint kIndices[] = { 1, 2 };
1386 const GLint kResults[] = { 1976, 321 }; 1389 const GLint kResults[] = { 1976, 321 };
1387 const size_t kCount = arraysize(kIndices); 1390 const size_t kCount = arraysize(kIndices);
1388 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount); 1391 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount);
1389 GetActiveUniformsiv::Result* result = 1392 GetActiveUniformsiv::Result* result =
1390 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_); 1393 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_);
1391 GetActiveUniformsiv cmd; 1394 GetActiveUniformsiv cmd;
1392 cmd.Init(client_program_id_, 1395 cmd.Init(client_program_id_,
1393 kBucketId, 1396 kBucketId,
1394 GL_UNIFORM_TYPE, 1397 GL_UNIFORM_TYPE,
(...skipping 12 matching lines...) Expand all
1407 .WillOnce(Return(GL_INVALID_VALUE)) 1410 .WillOnce(Return(GL_INVALID_VALUE))
1408 .RetiresOnSaturation(); 1411 .RetiresOnSaturation();
1409 decoder_->set_unsafe_es3_apis_enabled(true); 1412 decoder_->set_unsafe_es3_apis_enabled(true);
1410 result->size = 0; 1413 result->size = 0;
1411 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1414 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1412 EXPECT_EQ(0, result->GetNumResults()); 1415 EXPECT_EQ(0, result->GetNumResults());
1413 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1416 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1414 } 1417 }
1415 1418
1416 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivBadPnameFails) { 1419 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivBadPnameFails) {
1417 const uint32 kBucketId = 123; 1420 const uint32_t kBucketId = 123;
1418 const GLuint kIndices[] = { 1, 2 }; 1421 const GLuint kIndices[] = { 1, 2 };
1419 const size_t kCount = arraysize(kIndices); 1422 const size_t kCount = arraysize(kIndices);
1420 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount); 1423 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount);
1421 GetActiveUniformsiv::Result* result = 1424 GetActiveUniformsiv::Result* result =
1422 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_); 1425 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_);
1423 decoder_->set_unsafe_es3_apis_enabled(true); 1426 decoder_->set_unsafe_es3_apis_enabled(true);
1424 GetActiveUniformsiv cmd; 1427 GetActiveUniformsiv cmd;
1425 // GL_UNIFORM_BLOCK_NAME_LENGTH should not be supported. 1428 // GL_UNIFORM_BLOCK_NAME_LENGTH should not be supported.
1426 cmd.Init(client_program_id_, 1429 cmd.Init(client_program_id_,
1427 kBucketId, 1430 kBucketId,
(...skipping 10 matching lines...) Expand all
1438 1, 1441 1,
1439 kSharedMemoryId, 1442 kSharedMemoryId,
1440 kSharedMemoryOffset); 1443 kSharedMemoryOffset);
1441 result->size = 0; 1444 result->size = 0;
1442 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1445 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1443 EXPECT_EQ(0, result->GetNumResults()); 1446 EXPECT_EQ(0, result->GetNumResults());
1444 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1447 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1445 } 1448 }
1446 1449
1447 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivResultNotInitFails) { 1450 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivResultNotInitFails) {
1448 const uint32 kBucketId = 123; 1451 const uint32_t kBucketId = 123;
1449 const GLuint kIndices[] = { 1, 2 }; 1452 const GLuint kIndices[] = { 1, 2 };
1450 const size_t kCount = arraysize(kIndices); 1453 const size_t kCount = arraysize(kIndices);
1451 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount); 1454 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount);
1452 GetActiveUniformsiv::Result* result = 1455 GetActiveUniformsiv::Result* result =
1453 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_); 1456 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_);
1454 GetActiveUniformsiv cmd; 1457 GetActiveUniformsiv cmd;
1455 cmd.Init(client_program_id_, 1458 cmd.Init(client_program_id_,
1456 kBucketId, 1459 kBucketId,
1457 GL_UNIFORM_TYPE, 1460 GL_UNIFORM_TYPE,
1458 kSharedMemoryId, 1461 kSharedMemoryId,
1459 kSharedMemoryOffset); 1462 kSharedMemoryOffset);
1460 decoder_->set_unsafe_es3_apis_enabled(true); 1463 decoder_->set_unsafe_es3_apis_enabled(true);
1461 result->size = 1976; // Any value other than 0. 1464 result->size = 1976; // Any value other than 0.
1462 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1465 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1463 } 1466 }
1464 1467
1465 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivBadSharedMemoryFails) { 1468 TEST_P(GLES2DecoderWithShaderTest, GetActiveUniformsivBadSharedMemoryFails) {
1466 const uint32 kBucketId = 123; 1469 const uint32_t kBucketId = 123;
1467 const GLuint kIndices[] = { 1, 2 }; 1470 const GLuint kIndices[] = { 1, 2 };
1468 const size_t kCount = arraysize(kIndices); 1471 const size_t kCount = arraysize(kIndices);
1469 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount); 1472 SetBucketData(kBucketId, kIndices, sizeof(GLuint) * kCount);
1470 GetActiveUniformsiv::Result* result = 1473 GetActiveUniformsiv::Result* result =
1471 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_); 1474 static_cast<GetActiveUniformsiv::Result*>(shared_memory_address_);
1472 GetActiveUniformsiv cmd; 1475 GetActiveUniformsiv cmd;
1473 decoder_->set_unsafe_es3_apis_enabled(true); 1476 decoder_->set_unsafe_es3_apis_enabled(true);
1474 result->size = 0; 1477 result->size = 0;
1475 cmd.Init(client_program_id_, 1478 cmd.Init(client_program_id_,
1476 kBucketId, 1479 kBucketId,
1477 GL_UNIFORM_TYPE, 1480 GL_UNIFORM_TYPE,
1478 kInvalidSharedMemoryId, 1481 kInvalidSharedMemoryId,
1479 kSharedMemoryOffset); 1482 kSharedMemoryOffset);
1480 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1483 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1481 result->size = 0; 1484 result->size = 0;
1482 cmd.Init(client_program_id_, 1485 cmd.Init(client_program_id_,
1483 kBucketId, 1486 kBucketId,
1484 GL_UNIFORM_TYPE, 1487 GL_UNIFORM_TYPE,
1485 kSharedMemoryId, 1488 kSharedMemoryId,
1486 kInvalidSharedMemoryOffset); 1489 kInvalidSharedMemoryOffset);
1487 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1490 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1488 } 1491 }
1489 1492
1490 TEST_P(GLES2DecoderWithShaderTest, GetShaderInfoLogValidArgs) { 1493 TEST_P(GLES2DecoderWithShaderTest, GetShaderInfoLogValidArgs) {
1491 const uint32 kBucketId = 123; 1494 const uint32_t kBucketId = 123;
1492 const char kSource0[] = "void main() { gl_Position = vec4(1.0); }"; 1495 const char kSource0[] = "void main() { gl_Position = vec4(1.0); }";
1493 const char* kSource[] = {kSource0}; 1496 const char* kSource[] = {kSource0};
1494 const char kValidStrEnd = 0; 1497 const char kValidStrEnd = 0;
1495 SetBucketAsCStrings(kBucketId, 1, kSource, 1, kValidStrEnd); 1498 SetBucketAsCStrings(kBucketId, 1, kSource, 1, kValidStrEnd);
1496 ShaderSourceBucket bucket_cmd; 1499 ShaderSourceBucket bucket_cmd;
1497 bucket_cmd.Init(client_shader_id_, kBucketId); 1500 bucket_cmd.Init(client_shader_id_, kBucketId);
1498 EXPECT_EQ(error::kNoError, ExecuteCmd(bucket_cmd)); 1501 EXPECT_EQ(error::kNoError, ExecuteCmd(bucket_cmd));
1499 ClearSharedMemory(); 1502 ClearSharedMemory();
1500 1503
1501 const char* kInfo = "hello"; 1504 const char* kInfo = "hello";
(...skipping 16 matching lines...) Expand all
1518 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1521 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1519 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 1522 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
1520 ASSERT_TRUE(bucket != NULL); 1523 ASSERT_TRUE(bucket != NULL);
1521 EXPECT_EQ(strlen(kInfo) + 1, bucket->size()); 1524 EXPECT_EQ(strlen(kInfo) + 1, bucket->size());
1522 EXPECT_EQ(0, 1525 EXPECT_EQ(0,
1523 memcmp(bucket->GetData(0, bucket->size()), kInfo, bucket->size())); 1526 memcmp(bucket->GetData(0, bucket->size()), kInfo, bucket->size()));
1524 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1527 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1525 } 1528 }
1526 1529
1527 TEST_P(GLES2DecoderWithShaderTest, GetShaderInfoLogInvalidArgs) { 1530 TEST_P(GLES2DecoderWithShaderTest, GetShaderInfoLogInvalidArgs) {
1528 const uint32 kBucketId = 123; 1531 const uint32_t kBucketId = 123;
1529 GetShaderInfoLog cmd; 1532 GetShaderInfoLog cmd;
1530 cmd.Init(kInvalidClientId, kBucketId); 1533 cmd.Init(kInvalidClientId, kBucketId);
1531 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1534 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1532 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1535 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1533 } 1536 }
1534 1537
1535 TEST_P(GLES2DecoderWithShaderTest, GetTransformFeedbackVaryingSucceeds) { 1538 TEST_P(GLES2DecoderWithShaderTest, GetTransformFeedbackVaryingSucceeds) {
1536 const GLuint kIndex = 1; 1539 const GLuint kIndex = 1;
1537 const uint32 kBucketId = 123; 1540 const uint32_t kBucketId = 123;
1538 const char kName[] = "HolyCow"; 1541 const char kName[] = "HolyCow";
1539 const GLsizei kBufferSize = static_cast<GLsizei>(strlen(kName) + 1); 1542 const GLsizei kBufferSize = static_cast<GLsizei>(strlen(kName) + 1);
1540 const GLsizei kSize = 2; 1543 const GLsizei kSize = 2;
1541 const GLenum kType = GL_FLOAT_VEC2; 1544 const GLenum kType = GL_FLOAT_VEC2;
1542 GetTransformFeedbackVarying cmd; 1545 GetTransformFeedbackVarying cmd;
1543 typedef GetTransformFeedbackVarying::Result Result; 1546 typedef GetTransformFeedbackVarying::Result Result;
1544 Result* result = static_cast<Result*>(shared_memory_address_); 1547 Result* result = static_cast<Result*>(shared_memory_address_);
1545 result->success = 0; 1548 result->success = 0;
1546 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _)) 1549 EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _))
1547 .WillOnce(SetArgPointee<2>(GL_TRUE)) 1550 .WillOnce(SetArgPointee<2>(GL_TRUE))
(...skipping 28 matching lines...) Expand all
1576 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); 1579 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId);
1577 ASSERT_TRUE(bucket != NULL); 1580 ASSERT_TRUE(bucket != NULL);
1578 EXPECT_EQ( 1581 EXPECT_EQ(
1579 0, memcmp(bucket->GetData(0, bucket->size()), kName, bucket->size())); 1582 0, memcmp(bucket->GetData(0, bucket->size()), kName, bucket->size()));
1580 decoder_->set_unsafe_es3_apis_enabled(false); 1583 decoder_->set_unsafe_es3_apis_enabled(false);
1581 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 1584 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
1582 } 1585 }
1583 1586
1584 TEST_P(GLES2DecoderWithShaderTest, GetTransformFeedbackVaryingNotInitFails) { 1587 TEST_P(GLES2DecoderWithShaderTest, GetTransformFeedbackVaryingNotInitFails) {
1585 const GLuint kIndex = 1; 1588 const GLuint kIndex = 1;
1586 const uint32 kBucketId = 123; 1589 const uint32_t kBucketId = 123;
1587 GetTransformFeedbackVarying cmd; 1590 GetTransformFeedbackVarying cmd;
1588 typedef GetTransformFeedbackVarying::Result Result; 1591 typedef GetTransformFeedbackVarying::Result Result;
1589 Result* result = static_cast<Result*>(shared_memory_address_); 1592 Result* result = static_cast<Result*>(shared_memory_address_);
1590 result->success = 1; 1593 result->success = 1;
1591 cmd.Init(client_program_id_, 1594 cmd.Init(client_program_id_,
1592 kIndex, 1595 kIndex,
1593 kBucketId, 1596 kBucketId,
1594 shared_memory_id_, 1597 shared_memory_id_,
1595 shared_memory_offset_); 1598 shared_memory_offset_);
1596 decoder_->set_unsafe_es3_apis_enabled(true); 1599 decoder_->set_unsafe_es3_apis_enabled(true);
1597 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1600 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1598 } 1601 }
1599 1602
1600 TEST_P(GLES2DecoderWithShaderTest, GetTransformFeedbackVaryingBadProgramFails) { 1603 TEST_P(GLES2DecoderWithShaderTest, GetTransformFeedbackVaryingBadProgramFails) {
1601 const GLuint kIndex = 1; 1604 const GLuint kIndex = 1;
1602 const uint32 kBucketId = 123; 1605 const uint32_t kBucketId = 123;
1603 GetTransformFeedbackVarying cmd; 1606 GetTransformFeedbackVarying cmd;
1604 typedef GetTransformFeedbackVarying::Result Result; 1607 typedef GetTransformFeedbackVarying::Result Result;
1605 Result* result = static_cast<Result*>(shared_memory_address_); 1608 Result* result = static_cast<Result*>(shared_memory_address_);
1606 result->success = 0; 1609 result->success = 0;
1607 cmd.Init(kInvalidClientId, 1610 cmd.Init(kInvalidClientId,
1608 kIndex, 1611 kIndex,
1609 kBucketId, 1612 kBucketId,
1610 shared_memory_id_, 1613 shared_memory_id_,
1611 shared_memory_offset_); 1614 shared_memory_offset_);
1612 decoder_->set_unsafe_es3_apis_enabled(true); 1615 decoder_->set_unsafe_es3_apis_enabled(true);
1613 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1616 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1614 EXPECT_EQ(0, result->success); 1617 EXPECT_EQ(0, result->success);
1615 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1618 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1616 } 1619 }
1617 1620
1618 TEST_P(GLES2DecoderWithShaderTest, GetTransformFeedbackVaryingBadParamsFails) { 1621 TEST_P(GLES2DecoderWithShaderTest, GetTransformFeedbackVaryingBadParamsFails) {
1619 const GLuint kIndex = 1; 1622 const GLuint kIndex = 1;
1620 const uint32 kBucketId = 123; 1623 const uint32_t kBucketId = 123;
1621 const GLsizei kBufferSize = 10; 1624 const GLsizei kBufferSize = 10;
1622 GetTransformFeedbackVarying cmd; 1625 GetTransformFeedbackVarying cmd;
1623 typedef GetTransformFeedbackVarying::Result Result; 1626 typedef GetTransformFeedbackVarying::Result Result;
1624 Result* result = static_cast<Result*>(shared_memory_address_); 1627 Result* result = static_cast<Result*>(shared_memory_address_);
1625 result->success = 0; 1628 result->success = 0;
1626 cmd.Init(client_program_id_, 1629 cmd.Init(client_program_id_,
1627 kIndex, 1630 kIndex,
1628 kBucketId, 1631 kBucketId,
1629 shared_memory_id_, 1632 shared_memory_id_,
1630 shared_memory_offset_); 1633 shared_memory_offset_);
(...skipping 15 matching lines...) Expand all
1646 .RetiresOnSaturation(); 1649 .RetiresOnSaturation();
1647 decoder_->set_unsafe_es3_apis_enabled(true); 1650 decoder_->set_unsafe_es3_apis_enabled(true);
1648 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1651 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1649 EXPECT_EQ(0, result->success); 1652 EXPECT_EQ(0, result->success);
1650 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1653 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1651 } 1654 }
1652 1655
1653 TEST_P(GLES2DecoderWithShaderTest, 1656 TEST_P(GLES2DecoderWithShaderTest,
1654 GetTransformFeedbackVaryingBadSharedMemoryFails) { 1657 GetTransformFeedbackVaryingBadSharedMemoryFails) {
1655 const GLuint kIndex = 1; 1658 const GLuint kIndex = 1;
1656 const uint32 kBucketId = 123; 1659 const uint32_t kBucketId = 123;
1657 GetTransformFeedbackVarying cmd; 1660 GetTransformFeedbackVarying cmd;
1658 typedef GetTransformFeedbackVarying::Result Result; 1661 typedef GetTransformFeedbackVarying::Result Result;
1659 Result* result = static_cast<Result*>(shared_memory_address_); 1662 Result* result = static_cast<Result*>(shared_memory_address_);
1660 result->success = 0; 1663 result->success = 0;
1661 decoder_->set_unsafe_es3_apis_enabled(true); 1664 decoder_->set_unsafe_es3_apis_enabled(true);
1662 cmd.Init(client_program_id_, 1665 cmd.Init(client_program_id_,
1663 kIndex, 1666 kIndex,
1664 kBucketId, 1667 kBucketId,
1665 kInvalidSharedMemoryId, 1668 kInvalidSharedMemoryId,
1666 shared_memory_offset_); 1669 shared_memory_offset_);
1667 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1670 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1668 cmd.Init(client_program_id_, 1671 cmd.Init(client_program_id_,
1669 kIndex, 1672 kIndex,
1670 kBucketId, 1673 kBucketId,
1671 shared_memory_id_, 1674 shared_memory_id_,
1672 kInvalidSharedMemoryOffset); 1675 kInvalidSharedMemoryOffset);
1673 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1676 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1674 } 1677 }
1675 1678
1676 TEST_P(GLES2DecoderTest, CompileShaderValidArgs) { 1679 TEST_P(GLES2DecoderTest, CompileShaderValidArgs) {
1677 // ShaderSource should not actually call any GL calls yet. 1680 // ShaderSource should not actually call any GL calls yet.
1678 const uint32 kInBucketId = 123; 1681 const uint32_t kInBucketId = 123;
1679 const char kSource0[] = "void main() { gl_Position = vec4(1.0); }"; 1682 const char kSource0[] = "void main() { gl_Position = vec4(1.0); }";
1680 const char* kSource[] = {kSource0}; 1683 const char* kSource[] = {kSource0};
1681 const char kValidStrEnd = 0; 1684 const char kValidStrEnd = 0;
1682 SetBucketAsCStrings(kInBucketId, 1, kSource, 1, kValidStrEnd); 1685 SetBucketAsCStrings(kInBucketId, 1, kSource, 1, kValidStrEnd);
1683 ShaderSourceBucket bucket_cmd; 1686 ShaderSourceBucket bucket_cmd;
1684 bucket_cmd.Init(client_shader_id_, kInBucketId); 1687 bucket_cmd.Init(client_shader_id_, kInBucketId);
1685 EXPECT_EQ(error::kNoError, ExecuteCmd(bucket_cmd)); 1688 EXPECT_EQ(error::kNoError, ExecuteCmd(bucket_cmd));
1686 ClearSharedMemory(); 1689 ClearSharedMemory();
1687 1690
1688 // Compile shader should not actually call any GL calls yet. 1691 // Compile shader should not actually call any GL calls yet.
(...skipping 28 matching lines...) Expand all
1717 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1720 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1718 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1721 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1719 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS 1722 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS
1720 cmd.Init(client_program_id_); 1723 cmd.Init(client_program_id_);
1721 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1724 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1722 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 1725 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
1723 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS 1726 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS
1724 } 1727 }
1725 1728
1726 TEST_P(GLES2DecoderTest, ShaderSourceBucketAndGetShaderSourceValidArgs) { 1729 TEST_P(GLES2DecoderTest, ShaderSourceBucketAndGetShaderSourceValidArgs) {
1727 const uint32 kInBucketId = 123; 1730 const uint32_t kInBucketId = 123;
1728 const uint32 kOutBucketId = 125; 1731 const uint32_t kOutBucketId = 125;
1729 const char kSource0[] = "hello"; 1732 const char kSource0[] = "hello";
1730 const char* kSource[] = { kSource0 }; 1733 const char* kSource[] = { kSource0 };
1731 const char kValidStrEnd = 0; 1734 const char kValidStrEnd = 0;
1732 SetBucketAsCStrings(kInBucketId, 1, kSource, 1, kValidStrEnd); 1735 SetBucketAsCStrings(kInBucketId, 1, kSource, 1, kValidStrEnd);
1733 ShaderSourceBucket cmd; 1736 ShaderSourceBucket cmd;
1734 cmd.Init(client_shader_id_, kInBucketId); 1737 cmd.Init(client_shader_id_, kInBucketId);
1735 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1738 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1736 ClearSharedMemory(); 1739 ClearSharedMemory();
1737 GetShaderSource get_cmd; 1740 GetShaderSource get_cmd;
1738 get_cmd.Init(client_shader_id_, kOutBucketId); 1741 get_cmd.Init(client_shader_id_, kOutBucketId);
1739 EXPECT_EQ(error::kNoError, ExecuteCmd(get_cmd)); 1742 EXPECT_EQ(error::kNoError, ExecuteCmd(get_cmd));
1740 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kOutBucketId); 1743 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kOutBucketId);
1741 ASSERT_TRUE(bucket != NULL); 1744 ASSERT_TRUE(bucket != NULL);
1742 EXPECT_EQ(sizeof(kSource0), bucket->size()); 1745 EXPECT_EQ(sizeof(kSource0), bucket->size());
1743 EXPECT_EQ(0, memcmp(bucket->GetData(0, bucket->size()), 1746 EXPECT_EQ(0, memcmp(bucket->GetData(0, bucket->size()),
1744 kSource0, bucket->size())); 1747 kSource0, bucket->size()));
1745 } 1748 }
1746 1749
1747 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS 1750 #if GLES2_TEST_SHADER_VS_PROGRAM_IDS
1748 TEST_P(GLES2DecoderTest, ShaderSourceBucketWithProgramId) { 1751 TEST_P(GLES2DecoderTest, ShaderSourceBucketWithProgramId) {
1749 const uint32 kBucketId = 123; 1752 const uint32_t kBucketId = 123;
1750 const char kSource0[] = "hello"; 1753 const char kSource0[] = "hello";
1751 const char* kSource[] = { kSource0 }; 1754 const char* kSource[] = { kSource0 };
1752 const char kValidStrEnd = 0; 1755 const char kValidStrEnd = 0;
1753 SetBucketAsCStrings(kBucketId, 1, kSource, 1, kValidStrEnd); 1756 SetBucketAsCStrings(kBucketId, 1, kSource, 1, kValidStrEnd);
1754 ShaderSourceBucket cmd; 1757 ShaderSourceBucket cmd;
1755 cmd.Init(client_program_id_, kBucketId); 1758 cmd.Init(client_program_id_, kBucketId);
1756 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1759 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1757 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 1760 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
1758 } 1761 }
1759 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS 1762 #endif // GLES2_TEST_SHADER_VS_PROGRAM_IDS
1760 1763
1761 TEST_P(GLES2DecoderTest, ShaderSourceStripComments) { 1764 TEST_P(GLES2DecoderTest, ShaderSourceStripComments) {
1762 const uint32 kInBucketId = 123; 1765 const uint32_t kInBucketId = 123;
1763 const char kSource0[] = "hello/*te\ast*/world//a\ab"; 1766 const char kSource0[] = "hello/*te\ast*/world//a\ab";
1764 const char* kSource[] = { kSource0 }; 1767 const char* kSource[] = { kSource0 };
1765 const char kValidStrEnd = 0; 1768 const char kValidStrEnd = 0;
1766 SetBucketAsCStrings(kInBucketId, 1, kSource, 1, kValidStrEnd); 1769 SetBucketAsCStrings(kInBucketId, 1, kSource, 1, kValidStrEnd);
1767 ShaderSourceBucket cmd; 1770 ShaderSourceBucket cmd;
1768 cmd.Init(client_shader_id_, kInBucketId); 1771 cmd.Init(client_shader_id_, kInBucketId);
1769 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1772 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1770 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1773 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1771 } 1774 }
1772 1775
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
1960 }; 1963 };
1961 cmd.Init(kUniform7FakeLocation, 1, &temp[0]); 1964 cmd.Init(kUniform7FakeLocation, 1, &temp[0]);
1962 decoder_->set_unsafe_es3_apis_enabled(true); 1965 decoder_->set_unsafe_es3_apis_enabled(true);
1963 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp))); 1966 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
1964 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1967 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1965 decoder_->set_unsafe_es3_apis_enabled(false); 1968 decoder_->set_unsafe_es3_apis_enabled(false);
1966 EXPECT_EQ(error::kUnknownCommand, ExecuteImmediateCmd(cmd, sizeof(temp))); 1969 EXPECT_EQ(error::kUnknownCommand, ExecuteImmediateCmd(cmd, sizeof(temp)));
1967 } 1970 }
1968 1971
1969 TEST_P(GLES2DecoderTest, BindAttribLocationBucket) { 1972 TEST_P(GLES2DecoderTest, BindAttribLocationBucket) {
1970 const uint32 kBucketId = 123; 1973 const uint32_t kBucketId = 123;
1971 const GLint kLocation = 2; 1974 const GLint kLocation = 2;
1972 const char* kName = "testing"; 1975 const char* kName = "testing";
1973 EXPECT_CALL(*gl_, 1976 EXPECT_CALL(*gl_,
1974 BindAttribLocation(kServiceProgramId, kLocation, StrEq(kName))) 1977 BindAttribLocation(kServiceProgramId, kLocation, StrEq(kName)))
1975 .Times(1); 1978 .Times(1);
1976 SetBucketAsCString(kBucketId, kName); 1979 SetBucketAsCString(kBucketId, kName);
1977 BindAttribLocationBucket cmd; 1980 BindAttribLocationBucket cmd;
1978 cmd.Init(client_program_id_, kLocation, kBucketId); 1981 cmd.Init(client_program_id_, kLocation, kBucketId);
1979 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1982 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1980 } 1983 }
1981 1984
1982 TEST_P(GLES2DecoderTest, BindAttribLocationBucketInvalidArgs) { 1985 TEST_P(GLES2DecoderTest, BindAttribLocationBucketInvalidArgs) {
1983 const uint32 kBucketId = 123; 1986 const uint32_t kBucketId = 123;
1984 const GLint kLocation = 2; 1987 const GLint kLocation = 2;
1985 const char* kName = "testing"; 1988 const char* kName = "testing";
1986 EXPECT_CALL(*gl_, BindAttribLocation(_, _, _)).Times(0); 1989 EXPECT_CALL(*gl_, BindAttribLocation(_, _, _)).Times(0);
1987 BindAttribLocationBucket cmd; 1990 BindAttribLocationBucket cmd;
1988 // check bucket does not exist. 1991 // check bucket does not exist.
1989 cmd.Init(client_program_id_, kLocation, kBucketId); 1992 cmd.Init(client_program_id_, kLocation, kBucketId);
1990 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1993 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1991 // check bucket is empty. 1994 // check bucket is empty.
1992 SetBucketAsCString(kBucketId, NULL); 1995 SetBucketAsCString(kBucketId, NULL);
1993 cmd.Init(client_program_id_, kLocation, kBucketId); 1996 cmd.Init(client_program_id_, kLocation, kBucketId);
1994 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 1997 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
1995 // Check bad program id 1998 // Check bad program id
1996 SetBucketAsCString(kBucketId, kName); 1999 SetBucketAsCString(kBucketId, kName);
1997 cmd.Init(kInvalidClientId, kLocation, kBucketId); 2000 cmd.Init(kInvalidClientId, kLocation, kBucketId);
1998 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2001 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1999 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 2002 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
2000 } 2003 }
2001 2004
2002 TEST_P(GLES2DecoderWithShaderTest, GetAttribLocation) { 2005 TEST_P(GLES2DecoderWithShaderTest, GetAttribLocation) {
2003 const uint32 kBucketId = 123; 2006 const uint32_t kBucketId = 123;
2004 const char* kNonExistentName = "foobar"; 2007 const char* kNonExistentName = "foobar";
2005 typedef GetAttribLocation::Result Result; 2008 typedef GetAttribLocation::Result Result;
2006 Result* result = GetSharedMemoryAs<Result*>(); 2009 Result* result = GetSharedMemoryAs<Result*>();
2007 SetBucketAsCString(kBucketId, kAttrib2Name); 2010 SetBucketAsCString(kBucketId, kAttrib2Name);
2008 *result = -1; 2011 *result = -1;
2009 GetAttribLocation cmd; 2012 GetAttribLocation cmd;
2010 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2013 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2011 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2014 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2012 EXPECT_EQ(kAttrib2Location, *result); 2015 EXPECT_EQ(kAttrib2Location, *result);
2013 SetBucketAsCString(kBucketId, kNonExistentName); 2016 SetBucketAsCString(kBucketId, kNonExistentName);
2014 *result = -1; 2017 *result = -1;
2015 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2018 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2016 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2019 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2017 EXPECT_EQ(-1, *result); 2020 EXPECT_EQ(-1, *result);
2018 } 2021 }
2019 2022
2020 TEST_P(GLES2DecoderWithShaderTest, GetAttribLocationInvalidArgs) { 2023 TEST_P(GLES2DecoderWithShaderTest, GetAttribLocationInvalidArgs) {
2021 const uint32 kBucketId = 123; 2024 const uint32_t kBucketId = 123;
2022 typedef GetAttribLocation::Result Result; 2025 typedef GetAttribLocation::Result Result;
2023 Result* result = GetSharedMemoryAs<Result*>(); 2026 Result* result = GetSharedMemoryAs<Result*>();
2024 *result = -1; 2027 *result = -1;
2025 GetAttribLocation cmd; 2028 GetAttribLocation cmd;
2026 // Check no bucket 2029 // Check no bucket
2027 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2030 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2028 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 2031 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
2029 EXPECT_EQ(-1, *result); 2032 EXPECT_EQ(-1, *result);
2030 // Check bad program id. 2033 // Check bad program id.
2031 SetBucketAsCString(kBucketId, kAttrib2Name); 2034 SetBucketAsCString(kBucketId, kAttrib2Name);
2032 cmd.Init(kInvalidClientId, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2035 cmd.Init(kInvalidClientId, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2033 *result = -1; 2036 *result = -1;
2034 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2037 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2035 EXPECT_EQ(-1, *result); 2038 EXPECT_EQ(-1, *result);
2036 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 2039 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
2037 // Check bad memory 2040 // Check bad memory
2038 cmd.Init(client_program_id_, 2041 cmd.Init(client_program_id_,
2039 kBucketId, 2042 kBucketId,
2040 kInvalidSharedMemoryId, 2043 kInvalidSharedMemoryId,
2041 kSharedMemoryOffset); 2044 kSharedMemoryOffset);
2042 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 2045 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
2043 cmd.Init(client_program_id_, 2046 cmd.Init(client_program_id_,
2044 kBucketId, 2047 kBucketId,
2045 kSharedMemoryId, 2048 kSharedMemoryId,
2046 kInvalidSharedMemoryOffset); 2049 kInvalidSharedMemoryOffset);
2047 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 2050 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
2048 } 2051 }
2049 2052
2050 TEST_P(GLES3DecoderWithESSL3ShaderTest, GetFragDataLocation) { 2053 TEST_P(GLES3DecoderWithESSL3ShaderTest, GetFragDataLocation) {
2051 const uint32 kBucketId = 123; 2054 const uint32_t kBucketId = 123;
2052 typedef GetFragDataLocation::Result Result; 2055 typedef GetFragDataLocation::Result Result;
2053 Result* result = GetSharedMemoryAs<Result*>(); 2056 Result* result = GetSharedMemoryAs<Result*>();
2054 SetBucketAsCString(kBucketId, kOutputVariable1NameESSL3); 2057 SetBucketAsCString(kBucketId, kOutputVariable1NameESSL3);
2055 *result = -1; 2058 *result = -1;
2056 GetFragDataLocation cmd; 2059 GetFragDataLocation cmd;
2057 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2060 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2058 decoder_->set_unsafe_es3_apis_enabled(true); 2061 decoder_->set_unsafe_es3_apis_enabled(true);
2059 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2062 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2060 EXPECT_EQ(static_cast<GLint>(kOutputVariable1ColorName), *result); 2063 EXPECT_EQ(static_cast<GLint>(kOutputVariable1ColorName), *result);
2061 decoder_->set_unsafe_es3_apis_enabled(false); 2064 decoder_->set_unsafe_es3_apis_enabled(false);
2062 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 2065 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
2063 } 2066 }
2064 2067
2065 TEST_P(GLES3DecoderWithESSL3ShaderTest, GetFragDataLocationInvalidArgs) { 2068 TEST_P(GLES3DecoderWithESSL3ShaderTest, GetFragDataLocationInvalidArgs) {
2066 const uint32 kBucketId = 123; 2069 const uint32_t kBucketId = 123;
2067 typedef GetFragDataLocation::Result Result; 2070 typedef GetFragDataLocation::Result Result;
2068 Result* result = GetSharedMemoryAs<Result*>(); 2071 Result* result = GetSharedMemoryAs<Result*>();
2069 *result = -1; 2072 *result = -1;
2070 GetFragDataLocation cmd; 2073 GetFragDataLocation cmd;
2071 decoder_->set_unsafe_es3_apis_enabled(true); 2074 decoder_->set_unsafe_es3_apis_enabled(true);
2072 // Check no bucket 2075 // Check no bucket
2073 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2076 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2074 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 2077 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
2075 EXPECT_EQ(-1, *result); 2078 EXPECT_EQ(-1, *result);
2076 // Check bad program id. 2079 // Check bad program id.
(...skipping 11 matching lines...) Expand all
2088 kSharedMemoryOffset); 2091 kSharedMemoryOffset);
2089 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 2092 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
2090 cmd.Init(client_program_id_, 2093 cmd.Init(client_program_id_,
2091 kBucketId, 2094 kBucketId,
2092 kSharedMemoryId, 2095 kSharedMemoryId,
2093 kInvalidSharedMemoryOffset); 2096 kInvalidSharedMemoryOffset);
2094 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 2097 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
2095 } 2098 }
2096 2099
2097 TEST_P(GLES2DecoderWithShaderTest, GetUniformBlockIndex) { 2100 TEST_P(GLES2DecoderWithShaderTest, GetUniformBlockIndex) {
2098 const uint32 kBucketId = 123; 2101 const uint32_t kBucketId = 123;
2099 const GLuint kIndex = 10; 2102 const GLuint kIndex = 10;
2100 const char* kName = "color"; 2103 const char* kName = "color";
2101 typedef GetUniformBlockIndex::Result Result; 2104 typedef GetUniformBlockIndex::Result Result;
2102 Result* result = GetSharedMemoryAs<Result*>(); 2105 Result* result = GetSharedMemoryAs<Result*>();
2103 SetBucketAsCString(kBucketId, kName); 2106 SetBucketAsCString(kBucketId, kName);
2104 *result = GL_INVALID_INDEX; 2107 *result = GL_INVALID_INDEX;
2105 GetUniformBlockIndex cmd; 2108 GetUniformBlockIndex cmd;
2106 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2109 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2107 EXPECT_CALL(*gl_, GetUniformBlockIndex(kServiceProgramId, StrEq(kName))) 2110 EXPECT_CALL(*gl_, GetUniformBlockIndex(kServiceProgramId, StrEq(kName)))
2108 .WillOnce(Return(kIndex)) 2111 .WillOnce(Return(kIndex))
2109 .RetiresOnSaturation(); 2112 .RetiresOnSaturation();
2110 decoder_->set_unsafe_es3_apis_enabled(true); 2113 decoder_->set_unsafe_es3_apis_enabled(true);
2111 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2114 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2112 EXPECT_EQ(kIndex, *result); 2115 EXPECT_EQ(kIndex, *result);
2113 decoder_->set_unsafe_es3_apis_enabled(false); 2116 decoder_->set_unsafe_es3_apis_enabled(false);
2114 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 2117 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
2115 } 2118 }
2116 2119
2117 TEST_P(GLES2DecoderWithShaderTest, GetUniformBlockIndexInvalidArgs) { 2120 TEST_P(GLES2DecoderWithShaderTest, GetUniformBlockIndexInvalidArgs) {
2118 const uint32 kBucketId = 123; 2121 const uint32_t kBucketId = 123;
2119 typedef GetUniformBlockIndex::Result Result; 2122 typedef GetUniformBlockIndex::Result Result;
2120 Result* result = GetSharedMemoryAs<Result*>(); 2123 Result* result = GetSharedMemoryAs<Result*>();
2121 *result = GL_INVALID_INDEX; 2124 *result = GL_INVALID_INDEX;
2122 GetUniformBlockIndex cmd; 2125 GetUniformBlockIndex cmd;
2123 decoder_->set_unsafe_es3_apis_enabled(true); 2126 decoder_->set_unsafe_es3_apis_enabled(true);
2124 // Check no bucket 2127 // Check no bucket
2125 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2128 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2126 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 2129 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
2127 EXPECT_EQ(GL_INVALID_INDEX, *result); 2130 EXPECT_EQ(GL_INVALID_INDEX, *result);
2128 // Check bad program id. 2131 // Check bad program id.
(...skipping 11 matching lines...) Expand all
2140 kSharedMemoryOffset); 2143 kSharedMemoryOffset);
2141 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 2144 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
2142 cmd.Init(client_program_id_, 2145 cmd.Init(client_program_id_,
2143 kBucketId, 2146 kBucketId,
2144 kSharedMemoryId, 2147 kSharedMemoryId,
2145 kInvalidSharedMemoryOffset); 2148 kInvalidSharedMemoryOffset);
2146 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 2149 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
2147 } 2150 }
2148 2151
2149 TEST_P(GLES2DecoderWithShaderTest, GetUniformLocation) { 2152 TEST_P(GLES2DecoderWithShaderTest, GetUniformLocation) {
2150 const uint32 kBucketId = 123; 2153 const uint32_t kBucketId = 123;
2151 const char* kNonExistentName = "foobar"; 2154 const char* kNonExistentName = "foobar";
2152 typedef GetUniformLocation::Result Result; 2155 typedef GetUniformLocation::Result Result;
2153 Result* result = GetSharedMemoryAs<Result*>(); 2156 Result* result = GetSharedMemoryAs<Result*>();
2154 SetBucketAsCString(kBucketId, kUniform2Name); 2157 SetBucketAsCString(kBucketId, kUniform2Name);
2155 *result = -1; 2158 *result = -1;
2156 GetUniformLocation cmd; 2159 GetUniformLocation cmd;
2157 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2160 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2158 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2161 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2159 EXPECT_EQ(kUniform2FakeLocation, *result); 2162 EXPECT_EQ(kUniform2FakeLocation, *result);
2160 SetBucketAsCString(kBucketId, kNonExistentName); 2163 SetBucketAsCString(kBucketId, kNonExistentName);
2161 *result = -1; 2164 *result = -1;
2162 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2165 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2163 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2166 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2164 EXPECT_EQ(-1, *result); 2167 EXPECT_EQ(-1, *result);
2165 } 2168 }
2166 2169
2167 TEST_P(GLES2DecoderWithShaderTest, GetUniformLocationInvalidArgs) { 2170 TEST_P(GLES2DecoderWithShaderTest, GetUniformLocationInvalidArgs) {
2168 const uint32 kBucketId = 123; 2171 const uint32_t kBucketId = 123;
2169 typedef GetUniformLocation::Result Result; 2172 typedef GetUniformLocation::Result Result;
2170 Result* result = GetSharedMemoryAs<Result*>(); 2173 Result* result = GetSharedMemoryAs<Result*>();
2171 *result = -1; 2174 *result = -1;
2172 GetUniformLocation cmd; 2175 GetUniformLocation cmd;
2173 // Check no bucket 2176 // Check no bucket
2174 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); 2177 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset);
2175 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 2178 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
2176 EXPECT_EQ(-1, *result); 2179 EXPECT_EQ(-1, *result);
2177 // Check bad program id. 2180 // Check bad program id.
2178 SetBucketAsCString(kBucketId, kUniform2Name); 2181 SetBucketAsCString(kBucketId, kUniform2Name);
(...skipping 21 matching lines...) Expand all
2200 cmds::UniformBlockBinding cmd; 2203 cmds::UniformBlockBinding cmd;
2201 cmd.Init(client_program_id_, 2, 3); 2204 cmd.Init(client_program_id_, 2, 3);
2202 decoder_->set_unsafe_es3_apis_enabled(true); 2205 decoder_->set_unsafe_es3_apis_enabled(true);
2203 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2206 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2204 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 2207 EXPECT_EQ(GL_NO_ERROR, GetGLError());
2205 decoder_->set_unsafe_es3_apis_enabled(false); 2208 decoder_->set_unsafe_es3_apis_enabled(false);
2206 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 2209 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
2207 } 2210 }
2208 2211
2209 TEST_P(GLES2DecoderWithShaderTest, BindUniformLocationCHROMIUMBucket) { 2212 TEST_P(GLES2DecoderWithShaderTest, BindUniformLocationCHROMIUMBucket) {
2210 const uint32 kBucketId = 123; 2213 const uint32_t kBucketId = 123;
2211 const GLint kLocation = 2; 2214 const GLint kLocation = 2;
2212 const char* kName = "testing"; 2215 const char* kName = "testing";
2213 const char* kBadName1 = "gl_testing"; 2216 const char* kBadName1 = "gl_testing";
2214 const char* kBadName2 = "testing[1]"; 2217 const char* kBadName2 = "testing[1]";
2215 2218
2216 SetBucketAsCString(kBucketId, kName); 2219 SetBucketAsCString(kBucketId, kName);
2217 BindUniformLocationCHROMIUMBucket cmd; 2220 BindUniformLocationCHROMIUMBucket cmd;
2218 cmd.Init(client_program_id_, 2221 cmd.Init(client_program_id_,
2219 kLocation, 2222 kLocation,
2220 kBucketId); 2223 kBucketId);
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
2312 } 2315 }
2313 2316
2314 // TODO(gman): DeleteProgram 2317 // TODO(gman): DeleteProgram
2315 2318
2316 // TODO(gman): UseProgram 2319 // TODO(gman): UseProgram
2317 2320
2318 // TODO(gman): DeleteShader 2321 // TODO(gman): DeleteShader
2319 2322
2320 } // namespace gles2 2323 } // namespace gles2
2321 } // namespace gpu 2324 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698