OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/common_decoder.h" | 5 #include "gpu/command_buffer/service/common_decoder.h" |
6 #include "gpu/command_buffer/service/cmd_buffer_engine.h" | 6 #include "gpu/command_buffer/service/cmd_buffer_engine.h" |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 | 8 |
9 namespace gpu { | 9 namespace gpu { |
10 | 10 |
11 TEST(CommonDecoderBucket, Basic) { | 11 TEST(CommonDecoderBucket, Basic) { |
12 CommonDecoder::Bucket bucket; | 12 CommonDecoder::Bucket bucket; |
13 EXPECT_EQ(0, bucket.size()); | 13 EXPECT_EQ(0u, bucket.size()); |
14 EXPECT_TRUE(NULL == bucket.GetData(0, 0)); | 14 EXPECT_TRUE(NULL == bucket.GetData(0, 0)); |
15 } | 15 } |
16 | 16 |
17 TEST(CommonDecoderBucket, Size) { | 17 TEST(CommonDecoderBucket, Size) { |
18 CommonDecoder::Bucket bucket; | 18 CommonDecoder::Bucket bucket; |
19 bucket.SetSize(24); | 19 bucket.SetSize(24); |
20 EXPECT_EQ(24, bucket.size()); | 20 EXPECT_EQ(24u, bucket.size()); |
21 bucket.SetSize(12); | 21 bucket.SetSize(12); |
22 EXPECT_EQ(12, bucket.size()); | 22 EXPECT_EQ(12u, bucket.size()); |
23 } | 23 } |
24 | 24 |
25 TEST(CommonDecoderBucket, GetData) { | 25 TEST(CommonDecoderBucket, GetData) { |
26 CommonDecoder::Bucket bucket; | 26 CommonDecoder::Bucket bucket; |
27 | 27 |
28 bucket.SetSize(24); | 28 bucket.SetSize(24); |
29 EXPECT_TRUE(NULL != bucket.GetData(0, 0)); | 29 EXPECT_TRUE(NULL != bucket.GetData(0, 0)); |
30 EXPECT_TRUE(NULL != bucket.GetData(24, 0)); | 30 EXPECT_TRUE(NULL != bucket.GetData(24, 0)); |
31 EXPECT_TRUE(NULL == bucket.GetData(25, 0)); | 31 EXPECT_TRUE(NULL == bucket.GetData(25, 0)); |
32 EXPECT_TRUE(NULL != bucket.GetData(0, 24)); | 32 EXPECT_TRUE(NULL != bucket.GetData(0, 24)); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 return CommonDecoder::GetBucket(id); | 67 return CommonDecoder::GetBucket(id); |
68 } | 68 } |
69 }; | 69 }; |
70 | 70 |
71 class MockCommandBufferEngine : public CommandBufferEngine { | 71 class MockCommandBufferEngine : public CommandBufferEngine { |
72 public: | 72 public: |
73 static const int32 kStartValidShmId = 1; | 73 static const int32 kStartValidShmId = 1; |
74 static const int32 kValidShmId = 2; | 74 static const int32 kValidShmId = 2; |
75 static const int32 kInvalidShmId = 3; | 75 static const int32 kInvalidShmId = 3; |
76 static const size_t kBufferSize = 1024; | 76 static const size_t kBufferSize = 1024; |
77 static const uint32 kValidOffset = kBufferSize / 2; | 77 static const int32 kValidOffset = kBufferSize / 2; |
78 static const uint32 kInvalidOffset = kBufferSize; | 78 static const int32 kInvalidOffset = kBufferSize; |
79 | 79 |
80 MockCommandBufferEngine() | 80 MockCommandBufferEngine() |
81 : CommandBufferEngine(), | 81 : CommandBufferEngine(), |
82 token_(), | 82 token_(), |
83 get_offset_(0) { | 83 get_offset_(0) { |
84 } | 84 } |
85 | 85 |
86 // Overridden from CommandBufferEngine. | 86 // Overridden from CommandBufferEngine. |
87 virtual Buffer GetSharedMemoryBuffer(int32 shm_id) { | 87 virtual Buffer GetSharedMemoryBuffer(int32 shm_id) { |
88 Buffer buffer; | 88 Buffer buffer; |
89 if (IsValidSharedMemoryId(shm_id)) { | 89 if (IsValidSharedMemoryId(shm_id)) { |
90 buffer.ptr = buffer_; | 90 buffer.ptr = buffer_; |
91 buffer.size = kBufferSize; | 91 buffer.size = kBufferSize; |
92 } | 92 } |
93 return buffer; | 93 return buffer; |
94 } | 94 } |
95 | 95 |
96 template <typename T> | 96 template <typename T> |
97 T GetSharedMemoryAs(uint32 offset) { | 97 T GetSharedMemoryAs(uint32 offset) { |
98 DCHECK(offset < kBufferSize); | 98 DCHECK(offset < kBufferSize); |
99 return reinterpret_cast<T>(&buffer_[offset]); | 99 return reinterpret_cast<T>(&buffer_[offset]); |
100 } | 100 } |
101 | 101 |
102 uint32 GetSharedMemoryOffset(const void* memory) { | 102 int32 GetSharedMemoryOffset(const void* memory) { |
103 ptrdiff_t offset = reinterpret_cast<const int8*>(memory) - &buffer_[0]; | 103 ptrdiff_t offset = reinterpret_cast<const int8*>(memory) - &buffer_[0]; |
104 DCHECK_GE(offset, 0); | 104 DCHECK_GE(offset, 0); |
105 DCHECK(offset < kBufferSize); | 105 DCHECK(static_cast<size_t>(offset) < kBufferSize); |
106 return static_cast<uint32>(offset); | 106 return static_cast<int32>(offset); |
107 } | 107 } |
108 | 108 |
109 // Overridden from CommandBufferEngine. | 109 // Overridden from CommandBufferEngine. |
110 virtual void set_token(int32 token) { | 110 virtual void set_token(int32 token) { |
111 token_ = token; | 111 token_ = token; |
112 } | 112 } |
113 | 113 |
114 int32 token() const { | 114 int32 token() const { |
115 return token_; | 115 return token_; |
116 } | 116 } |
117 | 117 |
118 // Overridden from CommandBufferEngine. | 118 // Overridden from CommandBufferEngine. |
119 virtual bool SetGetOffset(int32 offset) { | 119 virtual bool SetGetOffset(int32 offset) { |
120 if (offset < kBufferSize) { | 120 if (static_cast<size_t>(offset) < kBufferSize) { |
121 get_offset_ = offset; | 121 get_offset_ = offset; |
122 return true; | 122 return true; |
123 } | 123 } |
124 return false; | 124 return false; |
125 } | 125 } |
126 | 126 |
127 // Overridden from CommandBufferEngine. | 127 // Overridden from CommandBufferEngine. |
128 virtual int32 GetGetOffset() { | 128 virtual int32 GetGetOffset() { |
129 return get_offset_; | 129 return get_offset_; |
130 } | 130 } |
131 | 131 |
132 private: | 132 private: |
133 bool IsValidSharedMemoryId(int32 shm_id) { | 133 bool IsValidSharedMemoryId(int32 shm_id) { |
134 return shm_id == kValidShmId || shm_id == kStartValidShmId; | 134 return shm_id == kValidShmId || shm_id == kStartValidShmId; |
135 } | 135 } |
136 | 136 |
137 int8 buffer_[kBufferSize]; | 137 int8 buffer_[kBufferSize]; |
138 int32 token_; | 138 int32 token_; |
139 int32 get_offset_; | 139 int32 get_offset_; |
140 }; | 140 }; |
141 | 141 |
| 142 const int32 MockCommandBufferEngine::kStartValidShmId; |
| 143 const int32 MockCommandBufferEngine::kValidShmId; |
| 144 const int32 MockCommandBufferEngine::kInvalidShmId; |
| 145 const size_t MockCommandBufferEngine::kBufferSize; |
| 146 const int32 MockCommandBufferEngine::kValidOffset; |
| 147 const int32 MockCommandBufferEngine::kInvalidOffset; |
| 148 |
142 class CommonDecoderTest : public testing::Test { | 149 class CommonDecoderTest : public testing::Test { |
143 protected: | 150 protected: |
144 virtual void SetUp() { | 151 virtual void SetUp() { |
145 decoder_.set_engine(&engine_); | 152 decoder_.set_engine(&engine_); |
146 } | 153 } |
147 | 154 |
148 virtual void TearDown() { | 155 virtual void TearDown() { |
149 } | 156 } |
150 | 157 |
151 template <typename T> | 158 template <typename T> |
(...skipping 10 matching lines...) Expand all Loading... |
162 return decoder_.DoCommand(cmd.kCmdId, | 169 return decoder_.DoCommand(cmd.kCmdId, |
163 ComputeNumEntries(sizeof(cmd) + data_size) - 1, | 170 ComputeNumEntries(sizeof(cmd) + data_size) - 1, |
164 &cmd); | 171 &cmd); |
165 } | 172 } |
166 | 173 |
167 MockCommandBufferEngine engine_; | 174 MockCommandBufferEngine engine_; |
168 TestCommonDecoder decoder_; | 175 TestCommonDecoder decoder_; |
169 }; | 176 }; |
170 | 177 |
171 TEST_F(CommonDecoderTest, Initialize) { | 178 TEST_F(CommonDecoderTest, Initialize) { |
172 EXPECT_EQ(0u, engine_.GetGetOffset()); | 179 EXPECT_EQ(0, engine_.GetGetOffset()); |
173 } | 180 } |
174 | 181 |
175 TEST_F(CommonDecoderTest, HandleNoop) { | 182 TEST_F(CommonDecoderTest, HandleNoop) { |
176 cmd::Noop cmd; | 183 cmd::Noop cmd; |
177 const uint32 kSkipCount = 5; | 184 const uint32 kSkipCount = 5; |
178 cmd.Init(kSkipCount); | 185 cmd.Init(kSkipCount); |
179 EXPECT_EQ(error::kNoError, | 186 EXPECT_EQ(error::kNoError, |
180 ExecuteImmediateCmd( | 187 ExecuteImmediateCmd( |
181 cmd, kSkipCount * kCommandBufferEntrySize)); | 188 cmd, kSkipCount * kCommandBufferEntrySize)); |
182 } | 189 } |
(...skipping 23 matching lines...) Expand all Loading... |
206 | 213 |
207 // NOTE: The read_pointer checks for relative commands do not take into account | 214 // NOTE: The read_pointer checks for relative commands do not take into account |
208 // that the actual implementation of CommandBufferEngine uses the parse | 215 // that the actual implementation of CommandBufferEngine uses the parse |
209 // which will advance the read pointer to the start of the next command. | 216 // which will advance the read pointer to the start of the next command. |
210 | 217 |
211 TEST_F(CommonDecoderTest, JumpRelative) { | 218 TEST_F(CommonDecoderTest, JumpRelative) { |
212 cmd::JumpRelative cmd; | 219 cmd::JumpRelative cmd; |
213 // Check valid positive offset succeeds. | 220 // Check valid positive offset succeeds. |
214 const int32 kPositiveOffset = 16; | 221 const int32 kPositiveOffset = 16; |
215 cmd.Init(kPositiveOffset); | 222 cmd.Init(kPositiveOffset); |
216 uint32 read_pointer = engine_.GetGetOffset(); | 223 int32 read_pointer = engine_.GetGetOffset(); |
217 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 224 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
218 // See note above. | 225 // See note above. |
219 EXPECT_EQ(read_pointer + kPositiveOffset, engine_.GetGetOffset()); | 226 EXPECT_EQ(read_pointer + kPositiveOffset, engine_.GetGetOffset()); |
220 // Check valid negative offset succeeds. | 227 // Check valid negative offset succeeds. |
221 const int32 kNegativeOffset = -8; | 228 const int32 kNegativeOffset = -8; |
222 read_pointer = engine_.GetGetOffset(); | 229 read_pointer = engine_.GetGetOffset(); |
223 cmd.Init(kNegativeOffset); | 230 cmd.Init(kNegativeOffset); |
224 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 231 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
225 // See note above. | 232 // See note above. |
226 EXPECT_EQ(read_pointer + kNegativeOffset, engine_.GetGetOffset()); | 233 EXPECT_EQ(read_pointer + kNegativeOffset, engine_.GetGetOffset()); |
(...skipping 13 matching lines...) Expand all Loading... |
240 engine_.GetGetOffset()); | 247 engine_.GetGetOffset()); |
241 // Check invalid offset fails. | 248 // Check invalid offset fails. |
242 cmd.Init(MockCommandBufferEngine::kInvalidOffset); | 249 cmd.Init(MockCommandBufferEngine::kInvalidOffset); |
243 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); | 250 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
244 EXPECT_EQ(MockCommandBufferEngine::kValidOffset, | 251 EXPECT_EQ(MockCommandBufferEngine::kValidOffset, |
245 engine_.GetGetOffset()); | 252 engine_.GetGetOffset()); |
246 // Check that the call values are on the stack. | 253 // Check that the call values are on the stack. |
247 cmd::Return return_cmd; | 254 cmd::Return return_cmd; |
248 return_cmd.Init(); | 255 return_cmd.Init(); |
249 EXPECT_EQ(error::kNoError, ExecuteCmd(return_cmd)); | 256 EXPECT_EQ(error::kNoError, ExecuteCmd(return_cmd)); |
250 EXPECT_EQ(0u, engine_.GetGetOffset()); | 257 EXPECT_EQ(0, engine_.GetGetOffset()); |
251 // Check that stack overflow fails. | 258 // Check that stack overflow fails. |
252 cmd.Init(MockCommandBufferEngine::kValidOffset); | 259 cmd.Init(MockCommandBufferEngine::kValidOffset); |
253 for (unsigned int ii = 0; ii < CommonDecoder::kMaxStackDepth; ++ii) { | 260 for (unsigned int ii = 0; ii < CommonDecoder::kMaxStackDepth; ++ii) { |
254 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 261 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
255 } | 262 } |
256 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); | 263 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
257 } | 264 } |
258 | 265 |
259 TEST_F(CommonDecoderTest, CallRelative) { | 266 TEST_F(CommonDecoderTest, CallRelative) { |
260 cmd::CallRelative cmd; | 267 cmd::CallRelative cmd; |
261 // Check valid positive offset succeeds. | 268 // Check valid positive offset succeeds. |
262 const int32 kPositiveOffset = 16; | 269 const int32 kPositiveOffset = 16; |
263 cmd.Init(kPositiveOffset); | 270 cmd.Init(kPositiveOffset); |
264 uint32 read_pointer_1 = engine_.GetGetOffset(); | 271 int32 read_pointer_1 = engine_.GetGetOffset(); |
265 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 272 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
266 // See note above. | 273 // See note above. |
267 EXPECT_EQ(read_pointer_1 + kPositiveOffset, engine_.GetGetOffset()); | 274 EXPECT_EQ(read_pointer_1 + kPositiveOffset, engine_.GetGetOffset()); |
268 // Check valid negative offset succeeds. | 275 // Check valid negative offset succeeds. |
269 const int32 kNegativeOffset = -8; | 276 const int32 kNegativeOffset = -8; |
270 uint32 read_pointer_2 = engine_.GetGetOffset(); | 277 int32 read_pointer_2 = engine_.GetGetOffset(); |
271 cmd.Init(kNegativeOffset); | 278 cmd.Init(kNegativeOffset); |
272 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 279 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
273 // See note above. | 280 // See note above. |
274 EXPECT_EQ(read_pointer_2 + kNegativeOffset, engine_.GetGetOffset()); | 281 EXPECT_EQ(read_pointer_2 + kNegativeOffset, engine_.GetGetOffset()); |
275 // Check invalid offset fails. | 282 // Check invalid offset fails. |
276 cmd.Init(MockCommandBufferEngine::kInvalidOffset); | 283 cmd.Init(MockCommandBufferEngine::kInvalidOffset); |
277 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); | 284 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
278 // See note above. | 285 // See note above. |
279 EXPECT_EQ(read_pointer_2 + kNegativeOffset, engine_.GetGetOffset()); | 286 EXPECT_EQ(read_pointer_2 + kNegativeOffset, engine_.GetGetOffset()); |
280 | 287 |
281 // Check that the call values are on the stack. | 288 // Check that the call values are on the stack. |
282 cmd::Return return_cmd; | 289 cmd::Return return_cmd; |
283 return_cmd.Init(); | 290 return_cmd.Init(); |
284 EXPECT_EQ(error::kNoError, ExecuteCmd(return_cmd)); | 291 EXPECT_EQ(error::kNoError, ExecuteCmd(return_cmd)); |
285 // See note above. | 292 // See note above. |
286 EXPECT_EQ(read_pointer_1 + kPositiveOffset, engine_.GetGetOffset()); | 293 EXPECT_EQ(read_pointer_1 + kPositiveOffset, engine_.GetGetOffset()); |
287 | 294 |
288 EXPECT_EQ(error::kNoError, ExecuteCmd(return_cmd)); | 295 EXPECT_EQ(error::kNoError, ExecuteCmd(return_cmd)); |
289 // See note above. | 296 // See note above. |
290 EXPECT_EQ(0u, engine_.GetGetOffset()); | 297 EXPECT_EQ(0, engine_.GetGetOffset()); |
291 // Check that stack overflow fails. | 298 // Check that stack overflow fails. |
292 cmd.Init(kPositiveOffset); | 299 cmd.Init(kPositiveOffset); |
293 for (unsigned int ii = 0; ii < CommonDecoder::kMaxStackDepth; ++ii) { | 300 for (unsigned int ii = 0; ii < CommonDecoder::kMaxStackDepth; ++ii) { |
294 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 301 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
295 } | 302 } |
296 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); | 303 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
297 } | 304 } |
298 | 305 |
299 TEST_F(CommonDecoderTest, Return) { | 306 TEST_F(CommonDecoderTest, Return) { |
300 // Success is tested by Call and CallRelative | 307 // Success is tested by Call and CallRelative |
(...skipping 20 matching lines...) Expand all Loading... |
321 // Check we can change it. | 328 // Check we can change it. |
322 cmd.Init(kBucketId, kBucketLength2); | 329 cmd.Init(kBucketId, kBucketLength2); |
323 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 330 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
324 bucket = decoder_.GetBucket(kBucketId); | 331 bucket = decoder_.GetBucket(kBucketId); |
325 EXPECT_TRUE(NULL != bucket); | 332 EXPECT_TRUE(NULL != bucket); |
326 EXPECT_EQ(kBucketLength2, bucket->size()); | 333 EXPECT_EQ(kBucketLength2, bucket->size()); |
327 // Check we can delete it. | 334 // Check we can delete it. |
328 cmd.Init(kBucketId, 0); | 335 cmd.Init(kBucketId, 0); |
329 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 336 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
330 bucket = decoder_.GetBucket(kBucketId); | 337 bucket = decoder_.GetBucket(kBucketId); |
331 EXPECT_EQ(0, bucket->size()); | 338 EXPECT_EQ(0u, bucket->size()); |
332 } | 339 } |
333 | 340 |
334 TEST_F(CommonDecoderTest, SetBucketData) { | 341 TEST_F(CommonDecoderTest, SetBucketData) { |
335 cmd::SetBucketSize size_cmd; | 342 cmd::SetBucketSize size_cmd; |
336 cmd::SetBucketData cmd; | 343 cmd::SetBucketData cmd; |
337 | 344 |
338 static const char kData[] = "1234567890123456789"; | 345 static const char kData[] = "1234567890123456789"; |
339 | 346 |
340 const uint32 kBucketId = 123; | 347 const uint32 kBucketId = 123; |
341 const uint32 kInvalidBucketId = 124; | 348 const uint32 kInvalidBucketId = 124; |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
477 cmd::GetBucketData cmd; | 484 cmd::GetBucketData cmd; |
478 | 485 |
479 static const char kData[] = "1234567890123456789"; | 486 static const char kData[] = "1234567890123456789"; |
480 static const char zero[sizeof(kData)] = { 0, }; | 487 static const char zero[sizeof(kData)] = { 0, }; |
481 | 488 |
482 const uint32 kBucketId = 123; | 489 const uint32 kBucketId = 123; |
483 const uint32 kInvalidBucketId = 124; | 490 const uint32 kInvalidBucketId = 124; |
484 | 491 |
485 size_cmd.Init(kBucketId, sizeof(kData)); | 492 size_cmd.Init(kBucketId, sizeof(kData)); |
486 EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd)); | 493 EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd)); |
487 CommonDecoder::Bucket* bucket = decoder_.GetBucket(kBucketId); | |
488 const uint32 kSomeOffsetInSharedMemory = 50; | 494 const uint32 kSomeOffsetInSharedMemory = 50; |
489 uint8* memory = engine_.GetSharedMemoryAs<uint8*>(kSomeOffsetInSharedMemory); | 495 uint8* memory = engine_.GetSharedMemoryAs<uint8*>(kSomeOffsetInSharedMemory); |
490 memcpy(memory, kData, sizeof(kData)); | 496 memcpy(memory, kData, sizeof(kData)); |
491 set_cmd.Init(kBucketId, 0, sizeof(kData), | 497 set_cmd.Init(kBucketId, 0, sizeof(kData), |
492 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); | 498 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); |
493 EXPECT_EQ(error::kNoError, ExecuteCmd(set_cmd)); | 499 EXPECT_EQ(error::kNoError, ExecuteCmd(set_cmd)); |
494 | 500 |
495 // Check we can get the whole thing. | 501 // Check we can get the whole thing. |
496 memset(memory, 0, sizeof(kData)); | 502 memset(memory, 0, sizeof(kData)); |
497 cmd.Init(kBucketId, 0, sizeof(kData), | 503 cmd.Init(kBucketId, 0, sizeof(kData), |
(...skipping 26 matching lines...) Expand all Loading... |
524 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); | 530 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
525 | 531 |
526 // Check that it fails if the size is invalid | 532 // Check that it fails if the size is invalid |
527 cmd.Init(kBucketId, 0, sizeof(kData) + 1, | 533 cmd.Init(kBucketId, 0, sizeof(kData) + 1, |
528 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); | 534 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); |
529 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); | 535 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
530 } | 536 } |
531 | 537 |
532 } // namespace gpu | 538 } // namespace gpu |
533 | 539 |
OLD | NEW |