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

Side by Side Diff: gpu/command_buffer/service/common_decoder_unittest.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h>
6 #include <stdint.h>
7
8 #include "gpu/command_buffer/service/cmd_buffer_engine.h"
5 #include "gpu/command_buffer/service/common_decoder.h" 9 #include "gpu/command_buffer/service/common_decoder.h"
6 #include "gpu/command_buffer/service/cmd_buffer_engine.h"
7 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
8 11
9 namespace gpu { 12 namespace gpu {
10 13
11 TEST(CommonDecoderBucket, Basic) { 14 TEST(CommonDecoderBucket, Basic) {
12 CommonDecoder::Bucket bucket; 15 CommonDecoder::Bucket bucket;
13 EXPECT_EQ(0u, bucket.size()); 16 EXPECT_EQ(0u, bucket.size());
14 EXPECT_TRUE(NULL == bucket.GetData(0, 0)); 17 EXPECT_TRUE(NULL == bucket.GetData(0, 0));
15 } 18 }
16 19
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 return GetCommonCommandName(static_cast<cmd::CommandId>(command_id)); 58 return GetCommonCommandName(static_cast<cmd::CommandId>(command_id));
56 } 59 }
57 60
58 // Overridden from AsyncAPIInterface 61 // Overridden from AsyncAPIInterface
59 error::Error DoCommand(unsigned int command, 62 error::Error DoCommand(unsigned int command,
60 unsigned int arg_count, 63 unsigned int arg_count,
61 const void* cmd_data) override { 64 const void* cmd_data) override {
62 return DoCommonCommand(command, arg_count, cmd_data); 65 return DoCommonCommand(command, arg_count, cmd_data);
63 } 66 }
64 67
65 CommonDecoder::Bucket* GetBucket(uint32 id) const { 68 CommonDecoder::Bucket* GetBucket(uint32_t id) const {
66 return CommonDecoder::GetBucket(id); 69 return CommonDecoder::GetBucket(id);
67 } 70 }
68 }; 71 };
69 72
70 class MockCommandBufferEngine : public CommandBufferEngine { 73 class MockCommandBufferEngine : public CommandBufferEngine {
71 public: 74 public:
72 static const int32 kStartValidShmId = 1; 75 static const int32_t kStartValidShmId = 1;
73 static const int32 kValidShmId = 2; 76 static const int32_t kValidShmId = 2;
74 static const int32 kInvalidShmId = 3; 77 static const int32_t kInvalidShmId = 3;
75 static const size_t kBufferSize = 1024; 78 static const size_t kBufferSize = 1024;
76 static const int32 kValidOffset = kBufferSize / 2; 79 static const int32_t kValidOffset = kBufferSize / 2;
77 static const int32 kInvalidOffset = kBufferSize; 80 static const int32_t kInvalidOffset = kBufferSize;
78 81
79 MockCommandBufferEngine() 82 MockCommandBufferEngine()
80 : CommandBufferEngine(), 83 : CommandBufferEngine(),
81 token_(), 84 token_(),
82 get_offset_(0) { 85 get_offset_(0) {
83 scoped_ptr<base::SharedMemory> shared_memory(new base::SharedMemory()); 86 scoped_ptr<base::SharedMemory> shared_memory(new base::SharedMemory());
84 shared_memory->CreateAndMapAnonymous(kBufferSize); 87 shared_memory->CreateAndMapAnonymous(kBufferSize);
85 buffer_ = MakeBufferFromSharedMemory(std::move(shared_memory), kBufferSize); 88 buffer_ = MakeBufferFromSharedMemory(std::move(shared_memory), kBufferSize);
86 } 89 }
87 90
88 // Overridden from CommandBufferEngine. 91 // Overridden from CommandBufferEngine.
89 scoped_refptr<gpu::Buffer> GetSharedMemoryBuffer(int32 shm_id) override { 92 scoped_refptr<gpu::Buffer> GetSharedMemoryBuffer(int32_t shm_id) override {
90 if (IsValidSharedMemoryId(shm_id)) 93 if (IsValidSharedMemoryId(shm_id))
91 return buffer_; 94 return buffer_;
92 return NULL; 95 return NULL;
93 } 96 }
94 97
95 template <typename T> 98 template <typename T>
96 T GetSharedMemoryAs(uint32 offset) { 99 T GetSharedMemoryAs(uint32_t offset) {
97 DCHECK_LT(offset, kBufferSize); 100 DCHECK_LT(offset, kBufferSize);
98 int8* buffer_memory = static_cast<int8*>(buffer_->memory()); 101 int8_t* buffer_memory = static_cast<int8_t*>(buffer_->memory());
99 return reinterpret_cast<T>(&buffer_memory[offset]); 102 return reinterpret_cast<T>(&buffer_memory[offset]);
100 } 103 }
101 104
102 int32 GetSharedMemoryOffset(const void* memory) { 105 int32_t GetSharedMemoryOffset(const void* memory) {
103 int8* buffer_memory = static_cast<int8*>(buffer_->memory()); 106 int8_t* buffer_memory = static_cast<int8_t*>(buffer_->memory());
104 ptrdiff_t offset = static_cast<const int8*>(memory) - &buffer_memory[0]; 107 ptrdiff_t offset = static_cast<const int8_t*>(memory) - &buffer_memory[0];
105 DCHECK_GE(offset, 0); 108 DCHECK_GE(offset, 0);
106 DCHECK_LT(static_cast<size_t>(offset), kBufferSize); 109 DCHECK_LT(static_cast<size_t>(offset), kBufferSize);
107 return static_cast<int32>(offset); 110 return static_cast<int32_t>(offset);
108 } 111 }
109 112
110 // Overridden from CommandBufferEngine. 113 // Overridden from CommandBufferEngine.
111 void set_token(int32 token) override { token_ = token; } 114 void set_token(int32_t token) override { token_ = token; }
112 115
113 int32 token() const { 116 int32_t token() const { return token_; }
114 return token_;
115 }
116 117
117 // Overridden from CommandBufferEngine. 118 // Overridden from CommandBufferEngine.
118 bool SetGetBuffer(int32 transfer_buffer_id) override { 119 bool SetGetBuffer(int32_t transfer_buffer_id) override {
119 NOTREACHED(); 120 NOTREACHED();
120 return false; 121 return false;
121 } 122 }
122 123
123 // Overridden from CommandBufferEngine. 124 // Overridden from CommandBufferEngine.
124 bool SetGetOffset(int32 offset) override { 125 bool SetGetOffset(int32_t offset) override {
125 if (static_cast<size_t>(offset) < kBufferSize) { 126 if (static_cast<size_t>(offset) < kBufferSize) {
126 get_offset_ = offset; 127 get_offset_ = offset;
127 return true; 128 return true;
128 } 129 }
129 return false; 130 return false;
130 } 131 }
131 132
132 // Overridden from CommandBufferEngine. 133 // Overridden from CommandBufferEngine.
133 int32 GetGetOffset() override { return get_offset_; } 134 int32_t GetGetOffset() override { return get_offset_; }
134 135
135 private: 136 private:
136 bool IsValidSharedMemoryId(int32 shm_id) { 137 bool IsValidSharedMemoryId(int32_t shm_id) {
137 return shm_id == kValidShmId || shm_id == kStartValidShmId; 138 return shm_id == kValidShmId || shm_id == kStartValidShmId;
138 } 139 }
139 140
140 scoped_refptr<gpu::Buffer> buffer_; 141 scoped_refptr<gpu::Buffer> buffer_;
141 int32 token_; 142 int32_t token_;
142 int32 get_offset_; 143 int32_t get_offset_;
143 }; 144 };
144 145
145 const int32 MockCommandBufferEngine::kStartValidShmId; 146 const int32_t MockCommandBufferEngine::kStartValidShmId;
146 const int32 MockCommandBufferEngine::kValidShmId; 147 const int32_t MockCommandBufferEngine::kValidShmId;
147 const int32 MockCommandBufferEngine::kInvalidShmId; 148 const int32_t MockCommandBufferEngine::kInvalidShmId;
148 const size_t MockCommandBufferEngine::kBufferSize; 149 const size_t MockCommandBufferEngine::kBufferSize;
149 const int32 MockCommandBufferEngine::kValidOffset; 150 const int32_t MockCommandBufferEngine::kValidOffset;
150 const int32 MockCommandBufferEngine::kInvalidOffset; 151 const int32_t MockCommandBufferEngine::kInvalidOffset;
151 152
152 class CommonDecoderTest : public testing::Test { 153 class CommonDecoderTest : public testing::Test {
153 protected: 154 protected:
154 void SetUp() override { decoder_.set_engine(&engine_); } 155 void SetUp() override { decoder_.set_engine(&engine_); }
155 156
156 void TearDown() override {} 157 void TearDown() override {}
157 158
158 template <typename T> 159 template <typename T>
159 error::Error ExecuteCmd(const T& cmd) { 160 error::Error ExecuteCmd(const T& cmd) {
160 static_assert(T::kArgFlags == cmd::kFixed, 161 static_assert(T::kArgFlags == cmd::kFixed,
(...skipping 17 matching lines...) Expand all
178 TEST_F(CommonDecoderTest, Initialize) { 179 TEST_F(CommonDecoderTest, Initialize) {
179 EXPECT_EQ(0, engine_.GetGetOffset()); 180 EXPECT_EQ(0, engine_.GetGetOffset());
180 } 181 }
181 182
182 TEST_F(CommonDecoderTest, DoCommonCommandInvalidCommand) { 183 TEST_F(CommonDecoderTest, DoCommonCommandInvalidCommand) {
183 EXPECT_EQ(error::kUnknownCommand, decoder_.DoCommand(999999, 0, NULL)); 184 EXPECT_EQ(error::kUnknownCommand, decoder_.DoCommand(999999, 0, NULL));
184 } 185 }
185 186
186 TEST_F(CommonDecoderTest, HandleNoop) { 187 TEST_F(CommonDecoderTest, HandleNoop) {
187 cmd::Noop cmd; 188 cmd::Noop cmd;
188 const uint32 kSkipCount = 5; 189 const uint32_t kSkipCount = 5;
189 cmd.Init(kSkipCount); 190 cmd.Init(kSkipCount);
190 EXPECT_EQ(error::kNoError, 191 EXPECT_EQ(error::kNoError,
191 ExecuteImmediateCmd( 192 ExecuteImmediateCmd(
192 cmd, kSkipCount * kCommandBufferEntrySize)); 193 cmd, kSkipCount * kCommandBufferEntrySize));
193 const uint32 kSkipCount2 = 1; 194 const uint32_t kSkipCount2 = 1;
194 cmd.Init(kSkipCount2); 195 cmd.Init(kSkipCount2);
195 EXPECT_EQ(error::kNoError, 196 EXPECT_EQ(error::kNoError,
196 ExecuteImmediateCmd( 197 ExecuteImmediateCmd(
197 cmd, kSkipCount2 * kCommandBufferEntrySize)); 198 cmd, kSkipCount2 * kCommandBufferEntrySize));
198 } 199 }
199 200
200 TEST_F(CommonDecoderTest, SetToken) { 201 TEST_F(CommonDecoderTest, SetToken) {
201 cmd::SetToken cmd; 202 cmd::SetToken cmd;
202 const int32 kTokenId = 123; 203 const int32_t kTokenId = 123;
203 EXPECT_EQ(0, engine_.token()); 204 EXPECT_EQ(0, engine_.token());
204 cmd.Init(kTokenId); 205 cmd.Init(kTokenId);
205 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 206 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
206 EXPECT_EQ(kTokenId, engine_.token()); 207 EXPECT_EQ(kTokenId, engine_.token());
207 } 208 }
208 209
209 TEST_F(CommonDecoderTest, SetBucketSize) { 210 TEST_F(CommonDecoderTest, SetBucketSize) {
210 cmd::SetBucketSize cmd; 211 cmd::SetBucketSize cmd;
211 const uint32 kBucketId = 123; 212 const uint32_t kBucketId = 123;
212 const uint32 kBucketLength1 = 1234; 213 const uint32_t kBucketLength1 = 1234;
213 const uint32 kBucketLength2 = 78; 214 const uint32_t kBucketLength2 = 78;
214 // Check the bucket does not exist. 215 // Check the bucket does not exist.
215 EXPECT_TRUE(NULL == decoder_.GetBucket(kBucketId)); 216 EXPECT_TRUE(NULL == decoder_.GetBucket(kBucketId));
216 // Check we can create one. 217 // Check we can create one.
217 cmd.Init(kBucketId, kBucketLength1); 218 cmd.Init(kBucketId, kBucketLength1);
218 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 219 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
219 CommonDecoder::Bucket* bucket; 220 CommonDecoder::Bucket* bucket;
220 bucket = decoder_.GetBucket(kBucketId); 221 bucket = decoder_.GetBucket(kBucketId);
221 EXPECT_TRUE(NULL != bucket); 222 EXPECT_TRUE(NULL != bucket);
222 EXPECT_EQ(kBucketLength1, bucket->size()); 223 EXPECT_EQ(kBucketLength1, bucket->size());
223 // Check we can change it. 224 // Check we can change it.
224 cmd.Init(kBucketId, kBucketLength2); 225 cmd.Init(kBucketId, kBucketLength2);
225 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 226 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
226 bucket = decoder_.GetBucket(kBucketId); 227 bucket = decoder_.GetBucket(kBucketId);
227 EXPECT_TRUE(NULL != bucket); 228 EXPECT_TRUE(NULL != bucket);
228 EXPECT_EQ(kBucketLength2, bucket->size()); 229 EXPECT_EQ(kBucketLength2, bucket->size());
229 // Check we can delete it. 230 // Check we can delete it.
230 cmd.Init(kBucketId, 0); 231 cmd.Init(kBucketId, 0);
231 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 232 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
232 bucket = decoder_.GetBucket(kBucketId); 233 bucket = decoder_.GetBucket(kBucketId);
233 EXPECT_EQ(0u, bucket->size()); 234 EXPECT_EQ(0u, bucket->size());
234 } 235 }
235 236
236 TEST_F(CommonDecoderTest, SetBucketData) { 237 TEST_F(CommonDecoderTest, SetBucketData) {
237 cmd::SetBucketSize size_cmd; 238 cmd::SetBucketSize size_cmd;
238 cmd::SetBucketData cmd; 239 cmd::SetBucketData cmd;
239 240
240 static const char kData[] = "1234567890123456789"; 241 static const char kData[] = "1234567890123456789";
241 242
242 const uint32 kBucketId = 123; 243 const uint32_t kBucketId = 123;
243 const uint32 kInvalidBucketId = 124; 244 const uint32_t kInvalidBucketId = 124;
244 245
245 size_cmd.Init(kBucketId, sizeof(kData)); 246 size_cmd.Init(kBucketId, sizeof(kData));
246 EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd)); 247 EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd));
247 CommonDecoder::Bucket* bucket = decoder_.GetBucket(kBucketId); 248 CommonDecoder::Bucket* bucket = decoder_.GetBucket(kBucketId);
248 // Check the data is not there. 249 // Check the data is not there.
249 EXPECT_NE(0, memcmp(bucket->GetData(0, sizeof(kData)), kData, sizeof(kData))); 250 EXPECT_NE(0, memcmp(bucket->GetData(0, sizeof(kData)), kData, sizeof(kData)));
250 251
251 // Check we can set it. 252 // Check we can set it.
252 const uint32 kSomeOffsetInSharedMemory = 50; 253 const uint32_t kSomeOffsetInSharedMemory = 50;
253 void* memory = engine_.GetSharedMemoryAs<void*>(kSomeOffsetInSharedMemory); 254 void* memory = engine_.GetSharedMemoryAs<void*>(kSomeOffsetInSharedMemory);
254 memcpy(memory, kData, sizeof(kData)); 255 memcpy(memory, kData, sizeof(kData));
255 cmd.Init(kBucketId, 0, sizeof(kData), 256 cmd.Init(kBucketId, 0, sizeof(kData),
256 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); 257 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
257 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 258 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
258 EXPECT_EQ(0, memcmp(bucket->GetData(0, sizeof(kData)), kData, sizeof(kData))); 259 EXPECT_EQ(0, memcmp(bucket->GetData(0, sizeof(kData)), kData, sizeof(kData)));
259 260
260 // Check we can set it partially. 261 // Check we can set it partially.
261 static const char kData2[] = "ABCEDFG"; 262 static const char kData2[] = "ABCEDFG";
262 const uint32 kSomeOffsetInBucket = 5; 263 const uint32_t kSomeOffsetInBucket = 5;
263 memcpy(memory, kData2, sizeof(kData2)); 264 memcpy(memory, kData2, sizeof(kData2));
264 cmd.Init(kBucketId, kSomeOffsetInBucket, sizeof(kData2), 265 cmd.Init(kBucketId, kSomeOffsetInBucket, sizeof(kData2),
265 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); 266 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
266 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 267 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
267 EXPECT_EQ(0, memcmp(bucket->GetData(kSomeOffsetInBucket, sizeof(kData2)), 268 EXPECT_EQ(0, memcmp(bucket->GetData(kSomeOffsetInBucket, sizeof(kData2)),
268 kData2, sizeof(kData2))); 269 kData2, sizeof(kData2)));
269 const char* bucket_data = bucket->GetDataAs<const char*>(0, sizeof(kData)); 270 const char* bucket_data = bucket->GetDataAs<const char*>(0, sizeof(kData));
270 // Check that nothing was affected outside of updated area. 271 // Check that nothing was affected outside of updated area.
271 EXPECT_EQ(kData[kSomeOffsetInBucket - 1], 272 EXPECT_EQ(kData[kSomeOffsetInBucket - 1],
272 bucket_data[kSomeOffsetInBucket - 1]); 273 bucket_data[kSomeOffsetInBucket - 1]);
(...skipping 11 matching lines...) Expand all
284 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 285 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
285 286
286 // Check that it fails if the size is out of range. 287 // Check that it fails if the size is out of range.
287 cmd.Init(kBucketId, 0, bucket->size() + 1, 288 cmd.Init(kBucketId, 0, bucket->size() + 1,
288 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); 289 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
289 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 290 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
290 } 291 }
291 292
292 TEST_F(CommonDecoderTest, SetBucketDataImmediate) { 293 TEST_F(CommonDecoderTest, SetBucketDataImmediate) {
293 cmd::SetBucketSize size_cmd; 294 cmd::SetBucketSize size_cmd;
294 int8 buffer[1024]; 295 int8_t buffer[1024];
295 cmd::SetBucketDataImmediate& cmd = 296 cmd::SetBucketDataImmediate& cmd =
296 *reinterpret_cast<cmd::SetBucketDataImmediate*>(&buffer); 297 *reinterpret_cast<cmd::SetBucketDataImmediate*>(&buffer);
297 298
298 static const char kData[] = "1234567890123456789"; 299 static const char kData[] = "1234567890123456789";
299 300
300 const uint32 kBucketId = 123; 301 const uint32_t kBucketId = 123;
301 const uint32 kInvalidBucketId = 124; 302 const uint32_t kInvalidBucketId = 124;
302 303
303 size_cmd.Init(kBucketId, sizeof(kData)); 304 size_cmd.Init(kBucketId, sizeof(kData));
304 EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd)); 305 EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd));
305 CommonDecoder::Bucket* bucket = decoder_.GetBucket(kBucketId); 306 CommonDecoder::Bucket* bucket = decoder_.GetBucket(kBucketId);
306 // Check the data is not there. 307 // Check the data is not there.
307 EXPECT_NE(0, memcmp(bucket->GetData(0, sizeof(kData)), kData, sizeof(kData))); 308 EXPECT_NE(0, memcmp(bucket->GetData(0, sizeof(kData)), kData, sizeof(kData)));
308 309
309 // Check we can set it. 310 // Check we can set it.
310 void* memory = &buffer[0] + sizeof(cmd); 311 void* memory = &buffer[0] + sizeof(cmd);
311 memcpy(memory, kData, sizeof(kData)); 312 memcpy(memory, kData, sizeof(kData));
312 cmd.Init(kBucketId, 0, sizeof(kData)); 313 cmd.Init(kBucketId, 0, sizeof(kData));
313 EXPECT_EQ(error::kNoError, 314 EXPECT_EQ(error::kNoError,
314 ExecuteImmediateCmd(cmd, sizeof(kData))); 315 ExecuteImmediateCmd(cmd, sizeof(kData)));
315 EXPECT_EQ(0, memcmp(bucket->GetData(0, sizeof(kData)), kData, sizeof(kData))); 316 EXPECT_EQ(0, memcmp(bucket->GetData(0, sizeof(kData)), kData, sizeof(kData)));
316 317
317 // Check we can set it partially. 318 // Check we can set it partially.
318 static const char kData2[] = "ABCEDFG"; 319 static const char kData2[] = "ABCEDFG";
319 const uint32 kSomeOffsetInBucket = 5; 320 const uint32_t kSomeOffsetInBucket = 5;
320 memcpy(memory, kData2, sizeof(kData2)); 321 memcpy(memory, kData2, sizeof(kData2));
321 cmd.Init(kBucketId, kSomeOffsetInBucket, sizeof(kData2)); 322 cmd.Init(kBucketId, kSomeOffsetInBucket, sizeof(kData2));
322 EXPECT_EQ(error::kNoError, 323 EXPECT_EQ(error::kNoError,
323 ExecuteImmediateCmd(cmd, sizeof(kData2))); 324 ExecuteImmediateCmd(cmd, sizeof(kData2)));
324 EXPECT_EQ(0, memcmp(bucket->GetData(kSomeOffsetInBucket, sizeof(kData2)), 325 EXPECT_EQ(0, memcmp(bucket->GetData(kSomeOffsetInBucket, sizeof(kData2)),
325 kData2, sizeof(kData2))); 326 kData2, sizeof(kData2)));
326 const char* bucket_data = bucket->GetDataAs<const char*>(0, sizeof(kData)); 327 const char* bucket_data = bucket->GetDataAs<const char*>(0, sizeof(kData));
327 // Check that nothing was affected outside of updated area. 328 // Check that nothing was affected outside of updated area.
328 EXPECT_EQ(kData[kSomeOffsetInBucket - 1], 329 EXPECT_EQ(kData[kSomeOffsetInBucket - 1],
329 bucket_data[kSomeOffsetInBucket - 1]); 330 bucket_data[kSomeOffsetInBucket - 1]);
(...skipping 17 matching lines...) Expand all
347 } 348 }
348 349
349 TEST_F(CommonDecoderTest, GetBucketStart) { 350 TEST_F(CommonDecoderTest, GetBucketStart) {
350 cmd::SetBucketSize size_cmd; 351 cmd::SetBucketSize size_cmd;
351 cmd::SetBucketData set_cmd; 352 cmd::SetBucketData set_cmd;
352 cmd::GetBucketStart cmd; 353 cmd::GetBucketStart cmd;
353 354
354 static const char kData[] = "1234567890123456789"; 355 static const char kData[] = "1234567890123456789";
355 static const char zero[sizeof(kData)] = { 0, }; 356 static const char zero[sizeof(kData)] = { 0, };
356 357
357 const uint32 kBucketSize = sizeof(kData); 358 const uint32_t kBucketSize = sizeof(kData);
358 const uint32 kBucketId = 123; 359 const uint32_t kBucketId = 123;
359 const uint32 kInvalidBucketId = 124; 360 const uint32_t kInvalidBucketId = 124;
360 361
361 // Put data in the bucket. 362 // Put data in the bucket.
362 size_cmd.Init(kBucketId, sizeof(kData)); 363 size_cmd.Init(kBucketId, sizeof(kData));
363 EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd)); 364 EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd));
364 const uint32 kSomeOffsetInSharedMemory = 50; 365 const uint32_t kSomeOffsetInSharedMemory = 50;
365 uint8* start = engine_.GetSharedMemoryAs<uint8*>(kSomeOffsetInSharedMemory); 366 uint8_t* start =
367 engine_.GetSharedMemoryAs<uint8_t*>(kSomeOffsetInSharedMemory);
366 memcpy(start, kData, sizeof(kData)); 368 memcpy(start, kData, sizeof(kData));
367 set_cmd.Init(kBucketId, 0, sizeof(kData), 369 set_cmd.Init(kBucketId, 0, sizeof(kData),
368 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); 370 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
369 EXPECT_EQ(error::kNoError, ExecuteCmd(set_cmd)); 371 EXPECT_EQ(error::kNoError, ExecuteCmd(set_cmd));
370 372
371 // Check that the size is correct with no data buffer. 373 // Check that the size is correct with no data buffer.
372 uint32* memory = 374 uint32_t* memory =
373 engine_.GetSharedMemoryAs<uint32*>(kSomeOffsetInSharedMemory); 375 engine_.GetSharedMemoryAs<uint32_t*>(kSomeOffsetInSharedMemory);
374 *memory = 0x0; 376 *memory = 0x0;
375 cmd.Init(kBucketId, 377 cmd.Init(kBucketId,
376 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, 378 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory,
377 0, 0, 0); 379 0, 0, 0);
378 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 380 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
379 EXPECT_EQ(kBucketSize, *memory); 381 EXPECT_EQ(kBucketSize, *memory);
380 382
381 // Check that the data is copied with data buffer. 383 // Check that the data is copied with data buffer.
382 const uint32 kDataOffsetInSharedMemory = 54; 384 const uint32_t kDataOffsetInSharedMemory = 54;
383 uint8* data = engine_.GetSharedMemoryAs<uint8*>(kDataOffsetInSharedMemory); 385 uint8_t* data =
386 engine_.GetSharedMemoryAs<uint8_t*>(kDataOffsetInSharedMemory);
384 *memory = 0x0; 387 *memory = 0x0;
385 memset(data, 0, sizeof(kData)); 388 memset(data, 0, sizeof(kData));
386 cmd.Init(kBucketId, 389 cmd.Init(kBucketId,
387 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, 390 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory,
388 kBucketSize, MockCommandBufferEngine::kValidShmId, 391 kBucketSize, MockCommandBufferEngine::kValidShmId,
389 kDataOffsetInSharedMemory); 392 kDataOffsetInSharedMemory);
390 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 393 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
391 EXPECT_EQ(kBucketSize, *memory); 394 EXPECT_EQ(kBucketSize, *memory);
392 EXPECT_EQ(0, memcmp(data, kData, kBucketSize)); 395 EXPECT_EQ(0, memcmp(data, kData, kBucketSize));
393 396
394 // Check that we can get a piece. 397 // Check that we can get a piece.
395 *memory = 0x0; 398 *memory = 0x0;
396 memset(data, 0, sizeof(kData)); 399 memset(data, 0, sizeof(kData));
397 const uint32 kPieceSize = kBucketSize / 2; 400 const uint32_t kPieceSize = kBucketSize / 2;
398 cmd.Init(kBucketId, 401 cmd.Init(kBucketId,
399 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, 402 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory,
400 kPieceSize, MockCommandBufferEngine::kValidShmId, 403 kPieceSize, MockCommandBufferEngine::kValidShmId,
401 kDataOffsetInSharedMemory); 404 kDataOffsetInSharedMemory);
402 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 405 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
403 EXPECT_EQ(kBucketSize, *memory); 406 EXPECT_EQ(kBucketSize, *memory);
404 EXPECT_EQ(0, memcmp(data, kData, kPieceSize)); 407 EXPECT_EQ(0, memcmp(data, kData, kPieceSize));
405 EXPECT_EQ(0, memcmp(data + kPieceSize, zero, sizeof(kData) - kPieceSize)); 408 EXPECT_EQ(0, memcmp(data + kPieceSize, zero, sizeof(kData) - kPieceSize));
406 409
407 // Check that it fails if the result_id is invalid 410 // Check that it fails if the result_id is invalid
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 } 450 }
448 451
449 TEST_F(CommonDecoderTest, GetBucketData) { 452 TEST_F(CommonDecoderTest, GetBucketData) {
450 cmd::SetBucketSize size_cmd; 453 cmd::SetBucketSize size_cmd;
451 cmd::SetBucketData set_cmd; 454 cmd::SetBucketData set_cmd;
452 cmd::GetBucketData cmd; 455 cmd::GetBucketData cmd;
453 456
454 static const char kData[] = "1234567890123456789"; 457 static const char kData[] = "1234567890123456789";
455 static const char zero[sizeof(kData)] = { 0, }; 458 static const char zero[sizeof(kData)] = { 0, };
456 459
457 const uint32 kBucketId = 123; 460 const uint32_t kBucketId = 123;
458 const uint32 kInvalidBucketId = 124; 461 const uint32_t kInvalidBucketId = 124;
459 462
460 size_cmd.Init(kBucketId, sizeof(kData)); 463 size_cmd.Init(kBucketId, sizeof(kData));
461 EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd)); 464 EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd));
462 const uint32 kSomeOffsetInSharedMemory = 50; 465 const uint32_t kSomeOffsetInSharedMemory = 50;
463 uint8* memory = engine_.GetSharedMemoryAs<uint8*>(kSomeOffsetInSharedMemory); 466 uint8_t* memory =
467 engine_.GetSharedMemoryAs<uint8_t*>(kSomeOffsetInSharedMemory);
464 memcpy(memory, kData, sizeof(kData)); 468 memcpy(memory, kData, sizeof(kData));
465 set_cmd.Init(kBucketId, 0, sizeof(kData), 469 set_cmd.Init(kBucketId, 0, sizeof(kData),
466 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); 470 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
467 EXPECT_EQ(error::kNoError, ExecuteCmd(set_cmd)); 471 EXPECT_EQ(error::kNoError, ExecuteCmd(set_cmd));
468 472
469 // Check we can get the whole thing. 473 // Check we can get the whole thing.
470 memset(memory, 0, sizeof(kData)); 474 memset(memory, 0, sizeof(kData));
471 cmd.Init(kBucketId, 0, sizeof(kData), 475 cmd.Init(kBucketId, 0, sizeof(kData),
472 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); 476 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
473 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 477 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
474 EXPECT_EQ(0, memcmp(memory, kData, sizeof(kData))); 478 EXPECT_EQ(0, memcmp(memory, kData, sizeof(kData)));
475 479
476 // Check we can get a piece. 480 // Check we can get a piece.
477 const uint32 kSomeOffsetInBucket = 5; 481 const uint32_t kSomeOffsetInBucket = 5;
478 const uint32 kLengthOfPiece = 6; 482 const uint32_t kLengthOfPiece = 6;
479 const uint8 kSentinel = 0xff; 483 const uint8_t kSentinel = 0xff;
480 memset(memory, 0, sizeof(kData)); 484 memset(memory, 0, sizeof(kData));
481 memory[-1] = kSentinel; 485 memory[-1] = kSentinel;
482 cmd.Init(kBucketId, kSomeOffsetInBucket, kLengthOfPiece, 486 cmd.Init(kBucketId, kSomeOffsetInBucket, kLengthOfPiece,
483 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); 487 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
484 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 488 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
485 EXPECT_EQ(0, memcmp(memory, kData + kSomeOffsetInBucket, kLengthOfPiece)); 489 EXPECT_EQ(0, memcmp(memory, kData + kSomeOffsetInBucket, kLengthOfPiece));
486 EXPECT_EQ(0, memcmp(memory + kLengthOfPiece, zero, 490 EXPECT_EQ(0, memcmp(memory + kLengthOfPiece, zero,
487 sizeof(kData) - kLengthOfPiece)); 491 sizeof(kData) - kLengthOfPiece));
488 EXPECT_EQ(kSentinel, memory[-1]); 492 EXPECT_EQ(kSentinel, memory[-1]);
489 493
490 // Check that it fails if the bucket_id is invalid 494 // Check that it fails if the bucket_id is invalid
491 cmd.Init(kInvalidBucketId, kSomeOffsetInBucket, sizeof(kData), 495 cmd.Init(kInvalidBucketId, kSomeOffsetInBucket, sizeof(kData),
492 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); 496 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
493 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 497 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
494 498
495 // Check that it fails if the offset is invalid 499 // Check that it fails if the offset is invalid
496 cmd.Init(kBucketId, sizeof(kData) + 1, 1, 500 cmd.Init(kBucketId, sizeof(kData) + 1, 1,
497 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); 501 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
498 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 502 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
499 503
500 // Check that it fails if the size is invalid 504 // Check that it fails if the size is invalid
501 cmd.Init(kBucketId, 0, sizeof(kData) + 1, 505 cmd.Init(kBucketId, 0, sizeof(kData) + 1,
502 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); 506 MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory);
503 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 507 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
504 } 508 }
505 509
506 } // namespace gpu 510 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/common_decoder.cc ('k') | gpu/command_buffer/service/context_group.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698