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

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

Issue 213353005: Refactor gpu::Buffer to allow different types of backing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix pointer alignment in tests Created 6 years, 8 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 | Annotate | Revision Log
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 "gpu/command_buffer/service/transfer_buffer_manager.h" 5 #include "gpu/command_buffer/service/transfer_buffer_manager.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "testing/gmock/include/gmock/gmock.h" 9 #include "testing/gmock/include/gmock/gmock.h"
10 10
(...skipping 23 matching lines...) Expand all
34 } 34 }
35 35
36 TEST_F(TransferBufferManagerTest, OutOfRangeHandleMapsToNull) { 36 TEST_F(TransferBufferManagerTest, OutOfRangeHandleMapsToNull) {
37 EXPECT_TRUE(NULL == transfer_buffer_manager_->GetTransferBuffer(1)); 37 EXPECT_TRUE(NULL == transfer_buffer_manager_->GetTransferBuffer(1));
38 } 38 }
39 39
40 TEST_F(TransferBufferManagerTest, CanRegisterTransferBuffer) { 40 TEST_F(TransferBufferManagerTest, CanRegisterTransferBuffer) {
41 scoped_ptr<base::SharedMemory> shm(new base::SharedMemory()); 41 scoped_ptr<base::SharedMemory> shm(new base::SharedMemory());
42 shm->CreateAndMapAnonymous(kBufferSize); 42 shm->CreateAndMapAnonymous(kBufferSize);
43 base::SharedMemory* shm_raw_pointer = shm.get(); 43 base::SharedMemory* shm_raw_pointer = shm.get();
44 scoped_ptr<SharedMemoryBufferBacking> backing(
45 new SharedMemoryBufferBacking(shm.Pass(), kBufferSize));
46 SharedMemoryBufferBacking* backing_raw_ptr = backing.get();
47
44 EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer( 48 EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer(
45 1, shm.Pass(), kBufferSize)); 49 1, backing.PassAs<BufferBacking>()));
46 scoped_refptr<Buffer> registered = 50 scoped_refptr<Buffer> registered =
47 transfer_buffer_manager_->GetTransferBuffer(1); 51 transfer_buffer_manager_->GetTransferBuffer(1);
48 52
49 // Shared-memory ownership is transfered. It should be the same memory. 53 // Shared-memory ownership is transfered. It should be the same memory.
50 EXPECT_EQ(shm_raw_pointer, registered->shared_memory()); 54 EXPECT_EQ(backing_raw_ptr, registered->backing());
55 EXPECT_EQ(shm_raw_pointer, backing_raw_ptr->shared_memory());
51 } 56 }
52 57
58 class FakeBufferBacking : public BufferBacking {
59 public:
60 virtual void* GetMemory() const OVERRIDE {
61 return reinterpret_cast<void*>(0xBADF00D0);
62 }
63 virtual size_t GetSize() const OVERRIDE { return 42; }
64 static scoped_ptr<BufferBacking> Make() {
65 return scoped_ptr<BufferBacking>(new FakeBufferBacking);
66 }
67 };
68
53 TEST_F(TransferBufferManagerTest, CanDestroyTransferBuffer) { 69 TEST_F(TransferBufferManagerTest, CanDestroyTransferBuffer) {
54 scoped_ptr<base::SharedMemory> shm(new base::SharedMemory());
55 shm->CreateAndMapAnonymous(kBufferSize);
56 EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer( 70 EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer(
57 1, shm.Pass(), kBufferSize)); 71 1, scoped_ptr<BufferBacking>(new FakeBufferBacking)));
58 transfer_buffer_manager_->DestroyTransferBuffer(1); 72 transfer_buffer_manager_->DestroyTransferBuffer(1);
59 scoped_refptr<Buffer> registered = 73 scoped_refptr<Buffer> registered =
60 transfer_buffer_manager_->GetTransferBuffer(1); 74 transfer_buffer_manager_->GetTransferBuffer(1);
61 75
62 scoped_refptr<Buffer> null_buffer; 76 scoped_refptr<Buffer> null_buffer;
63 EXPECT_EQ(null_buffer, registered); 77 EXPECT_EQ(null_buffer, registered);
64 } 78 }
65 79
66 TEST_F(TransferBufferManagerTest, CannotRegregisterTransferBufferId) { 80 TEST_F(TransferBufferManagerTest, CannotRegregisterTransferBufferId) {
67 scoped_ptr<base::SharedMemory> shm1(new base::SharedMemory());
68 scoped_ptr<base::SharedMemory> shm2(new base::SharedMemory());
69 scoped_ptr<base::SharedMemory> shm3(new base::SharedMemory());
70 shm1->CreateAndMapAnonymous(kBufferSize);
71 shm2->CreateAndMapAnonymous(kBufferSize);
72 shm3->CreateAndMapAnonymous(kBufferSize);
73
74 EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer( 81 EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer(
75 1, shm1.Pass(), kBufferSize)); 82 1, FakeBufferBacking::Make()));
76 EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer( 83 EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer(
77 1, shm2.Pass(), kBufferSize)); 84 1, FakeBufferBacking::Make()));
78 EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer( 85 EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer(
79 1, shm3.Pass(), kBufferSize)); 86 1, FakeBufferBacking::Make()));
80 } 87 }
81 88
82 TEST_F(TransferBufferManagerTest, CanReuseTransferBufferIdAfterDestroying) { 89 TEST_F(TransferBufferManagerTest, CanReuseTransferBufferIdAfterDestroying) {
83 scoped_ptr<base::SharedMemory> shm1(new base::SharedMemory());
84 scoped_ptr<base::SharedMemory> shm2(new base::SharedMemory());
85 shm1->CreateAndMapAnonymous(kBufferSize);
86 shm2->CreateAndMapAnonymous(kBufferSize);
87 EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer( 90 EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer(
88 1, shm1.Pass(), kBufferSize)); 91 1, FakeBufferBacking::Make()));
89 transfer_buffer_manager_->DestroyTransferBuffer(1); 92 transfer_buffer_manager_->DestroyTransferBuffer(1);
90 EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer( 93 EXPECT_TRUE(transfer_buffer_manager_->RegisterTransferBuffer(
91 1, shm2.Pass(), kBufferSize)); 94 1, FakeBufferBacking::Make()));
92 } 95 }
93 96
94 TEST_F(TransferBufferManagerTest, DestroyUnusedTransferBufferIdDoesNotCrash) { 97 TEST_F(TransferBufferManagerTest, DestroyUnusedTransferBufferIdDoesNotCrash) {
95 transfer_buffer_manager_->DestroyTransferBuffer(1); 98 transfer_buffer_manager_->DestroyTransferBuffer(1);
96 } 99 }
97 100
98 TEST_F(TransferBufferManagerTest, CannotRegisterNullTransferBuffer) { 101 TEST_F(TransferBufferManagerTest, CannotRegisterNullTransferBuffer) {
99 scoped_ptr<base::SharedMemory> shm(new base::SharedMemory());
100 shm->CreateAndMapAnonymous(kBufferSize);
101 EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer( 102 EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer(
102 0, shm.Pass(), kBufferSize)); 103 0, FakeBufferBacking::Make()));
103 } 104 }
104 105
105 TEST_F(TransferBufferManagerTest, CannotRegisterNegativeTransferBufferId) { 106 TEST_F(TransferBufferManagerTest, CannotRegisterNegativeTransferBufferId) {
106 scoped_ptr<base::SharedMemory> shm(new base::SharedMemory()); 107 scoped_ptr<base::SharedMemory> shm(new base::SharedMemory());
107 shm->CreateAndMapAnonymous(kBufferSize); 108 shm->CreateAndMapAnonymous(kBufferSize);
108 EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer( 109 EXPECT_FALSE(transfer_buffer_manager_->RegisterTransferBuffer(
109 -1, shm.Pass(), kBufferSize)); 110 -1, FakeBufferBacking::Make()));
110 } 111 }
111 112
112 } // namespace gpu 113 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/transfer_buffer_manager.cc ('k') | mojo/gles2/command_buffer_client_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698