| Index: gpu/command_buffer/service/transfer_buffer_manager_unittest.cc
|
| diff --git a/gpu/command_buffer/service/transfer_buffer_manager_unittest.cc b/gpu/command_buffer/service/transfer_buffer_manager_unittest.cc
|
| index c7dc04a837e24cd75bde1d3882db3a5b519cbc0b..4af09368cb08ed63f32dcd2b427584ba301f8400 100644
|
| --- a/gpu/command_buffer/service/transfer_buffer_manager_unittest.cc
|
| +++ b/gpu/command_buffer/service/transfer_buffer_manager_unittest.cc
|
| @@ -41,20 +41,34 @@ TEST_F(TransferBufferManagerTest, CanRegisterTransferBuffer) {
|
| scoped_ptr<base::SharedMemory> shm(new base::SharedMemory());
|
| shm->CreateAndMapAnonymous(kBufferSize);
|
| base::SharedMemory* shm_raw_pointer = shm.get();
|
| + scoped_ptr<SharedMemoryBufferBacking> backing(
|
| + new SharedMemoryBufferBacking(shm.Pass(), kBufferSize));
|
| + SharedMemoryBufferBacking* backing_raw_ptr = backing.get();
|
| +
|
| EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer(
|
| - 1, shm.Pass(), kBufferSize));
|
| + 1, backing.PassAs<BufferBacking>()));
|
| scoped_refptr<Buffer> registered =
|
| transfer_buffer_manager_->GetTransferBuffer(1);
|
|
|
| // Shared-memory ownership is transfered. It should be the same memory.
|
| - EXPECT_EQ(shm_raw_pointer, registered->shared_memory());
|
| + EXPECT_EQ(backing_raw_ptr, registered->backing());
|
| + EXPECT_EQ(shm_raw_pointer, backing_raw_ptr->shared_memory());
|
| }
|
|
|
| +class FakeBufferBacking : public BufferBacking {
|
| + public:
|
| + virtual void* GetMemory() const OVERRIDE {
|
| + return reinterpret_cast<void*>(0xBADF00D0);
|
| + }
|
| + virtual size_t GetSize() const OVERRIDE { return 42; }
|
| + static scoped_ptr<BufferBacking> Make() {
|
| + return scoped_ptr<BufferBacking>(new FakeBufferBacking);
|
| + }
|
| +};
|
| +
|
| TEST_F(TransferBufferManagerTest, CanDestroyTransferBuffer) {
|
| - scoped_ptr<base::SharedMemory> shm(new base::SharedMemory());
|
| - shm->CreateAndMapAnonymous(kBufferSize);
|
| EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer(
|
| - 1, shm.Pass(), kBufferSize));
|
| + 1, scoped_ptr<BufferBacking>(new FakeBufferBacking)));
|
| transfer_buffer_manager_->DestroyTransferBuffer(1);
|
| scoped_refptr<Buffer> registered =
|
| transfer_buffer_manager_->GetTransferBuffer(1);
|
| @@ -64,31 +78,20 @@ TEST_F(TransferBufferManagerTest, CanDestroyTransferBuffer) {
|
| }
|
|
|
| TEST_F(TransferBufferManagerTest, CannotRegregisterTransferBufferId) {
|
| - scoped_ptr<base::SharedMemory> shm1(new base::SharedMemory());
|
| - scoped_ptr<base::SharedMemory> shm2(new base::SharedMemory());
|
| - scoped_ptr<base::SharedMemory> shm3(new base::SharedMemory());
|
| - shm1->CreateAndMapAnonymous(kBufferSize);
|
| - shm2->CreateAndMapAnonymous(kBufferSize);
|
| - shm3->CreateAndMapAnonymous(kBufferSize);
|
| -
|
| EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer(
|
| - 1, shm1.Pass(), kBufferSize));
|
| + 1, FakeBufferBacking::Make()));
|
| EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer(
|
| - 1, shm2.Pass(), kBufferSize));
|
| + 1, FakeBufferBacking::Make()));
|
| EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer(
|
| - 1, shm3.Pass(), kBufferSize));
|
| + 1, FakeBufferBacking::Make()));
|
| }
|
|
|
| TEST_F(TransferBufferManagerTest, CanReuseTransferBufferIdAfterDestroying) {
|
| - scoped_ptr<base::SharedMemory> shm1(new base::SharedMemory());
|
| - scoped_ptr<base::SharedMemory> shm2(new base::SharedMemory());
|
| - shm1->CreateAndMapAnonymous(kBufferSize);
|
| - shm2->CreateAndMapAnonymous(kBufferSize);
|
| EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer(
|
| - 1, shm1.Pass(), kBufferSize));
|
| + 1, FakeBufferBacking::Make()));
|
| transfer_buffer_manager_->DestroyTransferBuffer(1);
|
| EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer(
|
| - 1, shm2.Pass(), kBufferSize));
|
| + 1, FakeBufferBacking::Make()));
|
| }
|
|
|
| TEST_F(TransferBufferManagerTest, DestroyUnusedTransferBufferIdDoesNotCrash) {
|
| @@ -96,17 +99,15 @@ TEST_F(TransferBufferManagerTest, DestroyUnusedTransferBufferIdDoesNotCrash) {
|
| }
|
|
|
| TEST_F(TransferBufferManagerTest, CannotRegisterNullTransferBuffer) {
|
| - scoped_ptr<base::SharedMemory> shm(new base::SharedMemory());
|
| - shm->CreateAndMapAnonymous(kBufferSize);
|
| EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer(
|
| - 0, shm.Pass(), kBufferSize));
|
| + 0, FakeBufferBacking::Make()));
|
| }
|
|
|
| TEST_F(TransferBufferManagerTest, CannotRegisterNegativeTransferBufferId) {
|
| scoped_ptr<base::SharedMemory> shm(new base::SharedMemory());
|
| shm->CreateAndMapAnonymous(kBufferSize);
|
| EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer(
|
| - -1, shm.Pass(), kBufferSize));
|
| + -1, FakeBufferBacking::Make()));
|
| }
|
|
|
| } // namespace gpu
|
|
|