| 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 |