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

Side by Side Diff: components/display_compositor/host_shared_bitmap_manager_unittest.cc

Issue 2852803002: Remove base::SharedMemory::ShareToProcess. (Closed)
Patch Set: Rebase. Created 3 years, 7 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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> 5 #include <stddef.h>
6 #include <string.h> 6 #include <string.h>
7 7
8 #include "components/display_compositor/host_shared_bitmap_manager.h" 8 #include "components/display_compositor/host_shared_bitmap_manager.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace display_compositor { 11 namespace display_compositor {
12 namespace { 12 namespace {
13 13
14 class HostSharedBitmapManagerTest : public testing::Test { 14 class HostSharedBitmapManagerTest : public testing::Test {
15 protected: 15 protected:
16 void SetUp() override { manager_.reset(new HostSharedBitmapManager()); } 16 void SetUp() override { manager_.reset(new HostSharedBitmapManager()); }
17 std::unique_ptr<HostSharedBitmapManager> manager_; 17 std::unique_ptr<HostSharedBitmapManager> manager_;
18 }; 18 };
19 19
20 TEST_F(HostSharedBitmapManagerTest, TestCreate) { 20 TEST_F(HostSharedBitmapManagerTest, TestCreate) {
21 gfx::Size bitmap_size(1, 1); 21 gfx::Size bitmap_size(1, 1);
22 size_t size_in_bytes; 22 size_t size_in_bytes;
23 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes)); 23 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes));
24 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory()); 24 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory());
25 bitmap->CreateAndMapAnonymous(size_in_bytes); 25 bitmap->CreateAndMapAnonymous(size_in_bytes);
26 memset(bitmap->memory(), 0xff, size_in_bytes); 26 memset(bitmap->memory(), 0xff, size_in_bytes);
27 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); 27 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId();
28 28
29 HostSharedBitmapManagerClient client(manager_.get()); 29 HostSharedBitmapManagerClient client(manager_.get());
30 base::SharedMemoryHandle handle; 30 base::SharedMemoryHandle handle = bitmap->handle().Duplicate();
31 bitmap->ShareToProcess(base::GetCurrentProcessHandle(), &handle);
32 client.ChildAllocatedSharedBitmap(size_in_bytes, handle, id); 31 client.ChildAllocatedSharedBitmap(size_in_bytes, handle, id);
Nico 2017/05/02 20:08:00 I did check that this does assume ownership.
33 32
34 std::unique_ptr<cc::SharedBitmap> large_bitmap; 33 std::unique_ptr<cc::SharedBitmap> large_bitmap;
35 large_bitmap = manager_->GetSharedBitmapFromId(gfx::Size(1024, 1024), id); 34 large_bitmap = manager_->GetSharedBitmapFromId(gfx::Size(1024, 1024), id);
36 EXPECT_TRUE(large_bitmap.get() == NULL); 35 EXPECT_TRUE(large_bitmap.get() == NULL);
37 36
38 std::unique_ptr<cc::SharedBitmap> very_large_bitmap; 37 std::unique_ptr<cc::SharedBitmap> very_large_bitmap;
39 very_large_bitmap = 38 very_large_bitmap =
40 manager_->GetSharedBitmapFromId(gfx::Size(1, (1 << 30) | 1), id); 39 manager_->GetSharedBitmapFromId(gfx::Size(1, (1 << 30) | 1), id);
41 EXPECT_TRUE(very_large_bitmap.get() == NULL); 40 EXPECT_TRUE(very_large_bitmap.get() == NULL);
42 41
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 77
79 TEST_F(HostSharedBitmapManagerTest, RemoveProcess) { 78 TEST_F(HostSharedBitmapManagerTest, RemoveProcess) {
80 gfx::Size bitmap_size(1, 1); 79 gfx::Size bitmap_size(1, 1);
81 size_t size_in_bytes; 80 size_t size_in_bytes;
82 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes)); 81 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes));
83 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory()); 82 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory());
84 bitmap->CreateAndMapAnonymous(size_in_bytes); 83 bitmap->CreateAndMapAnonymous(size_in_bytes);
85 memset(bitmap->memory(), 0xff, size_in_bytes); 84 memset(bitmap->memory(), 0xff, size_in_bytes);
86 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); 85 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId();
87 86
88 base::SharedMemoryHandle handle;
89 std::unique_ptr<HostSharedBitmapManagerClient> client( 87 std::unique_ptr<HostSharedBitmapManagerClient> client(
90 new HostSharedBitmapManagerClient(manager_.get())); 88 new HostSharedBitmapManagerClient(manager_.get()));
91 bitmap->ShareToProcess(base::GetCurrentProcessHandle(), &handle); 89 base::SharedMemoryHandle handle = bitmap->handle().Duplicate();
92 client->ChildAllocatedSharedBitmap(size_in_bytes, handle, id); 90 client->ChildAllocatedSharedBitmap(size_in_bytes, handle, id);
93 91
94 std::unique_ptr<cc::SharedBitmap> shared_bitmap; 92 std::unique_ptr<cc::SharedBitmap> shared_bitmap;
95 shared_bitmap = manager_->GetSharedBitmapFromId(bitmap_size, id); 93 shared_bitmap = manager_->GetSharedBitmapFromId(bitmap_size, id);
96 ASSERT_TRUE(shared_bitmap.get() != NULL); 94 ASSERT_TRUE(shared_bitmap.get() != NULL);
97 95
98 EXPECT_EQ(1u, manager_->AllocatedBitmapCount()); 96 EXPECT_EQ(1u, manager_->AllocatedBitmapCount());
99 client.reset(); 97 client.reset();
100 EXPECT_EQ(0u, manager_->AllocatedBitmapCount()); 98 EXPECT_EQ(0u, manager_->AllocatedBitmapCount());
101 99
102 std::unique_ptr<cc::SharedBitmap> shared_bitmap2; 100 std::unique_ptr<cc::SharedBitmap> shared_bitmap2;
103 shared_bitmap2 = manager_->GetSharedBitmapFromId(bitmap_size, id); 101 shared_bitmap2 = manager_->GetSharedBitmapFromId(bitmap_size, id);
104 EXPECT_TRUE(shared_bitmap2.get() == NULL); 102 EXPECT_TRUE(shared_bitmap2.get() == NULL);
105 EXPECT_EQ(memcmp(shared_bitmap->pixels(), bitmap->memory(), size_in_bytes), 103 EXPECT_EQ(memcmp(shared_bitmap->pixels(), bitmap->memory(), size_in_bytes),
106 0); 104 0);
107 105
108 shared_bitmap.reset(); 106 shared_bitmap.reset();
109 } 107 }
110 108
111 TEST_F(HostSharedBitmapManagerTest, AddDuplicate) { 109 TEST_F(HostSharedBitmapManagerTest, AddDuplicate) {
112 gfx::Size bitmap_size(1, 1); 110 gfx::Size bitmap_size(1, 1);
113 size_t size_in_bytes; 111 size_t size_in_bytes;
114 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes)); 112 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes));
115 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory()); 113 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory());
116 bitmap->CreateAndMapAnonymous(size_in_bytes); 114 bitmap->CreateAndMapAnonymous(size_in_bytes);
117 memset(bitmap->memory(), 0xff, size_in_bytes); 115 memset(bitmap->memory(), 0xff, size_in_bytes);
118 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); 116 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId();
119 HostSharedBitmapManagerClient client(manager_.get()); 117 HostSharedBitmapManagerClient client(manager_.get());
120 118
121 base::SharedMemoryHandle handle; 119 base::SharedMemoryHandle handle = bitmap->handle().Duplicate();
122 bitmap->ShareToProcess(base::GetCurrentProcessHandle(), &handle);
123 client.ChildAllocatedSharedBitmap(size_in_bytes, handle, id); 120 client.ChildAllocatedSharedBitmap(size_in_bytes, handle, id);
124 121
125 std::unique_ptr<base::SharedMemory> bitmap2(new base::SharedMemory()); 122 std::unique_ptr<base::SharedMemory> bitmap2(new base::SharedMemory());
126 bitmap2->CreateAndMapAnonymous(size_in_bytes); 123 bitmap2->CreateAndMapAnonymous(size_in_bytes);
127 memset(bitmap2->memory(), 0x00, size_in_bytes); 124 memset(bitmap2->memory(), 0x00, size_in_bytes);
128 125
129 client.ChildAllocatedSharedBitmap(size_in_bytes, bitmap2->handle(), id); 126 client.ChildAllocatedSharedBitmap(size_in_bytes, bitmap2->handle(), id);
130 127
131 std::unique_ptr<cc::SharedBitmap> shared_bitmap; 128 std::unique_ptr<cc::SharedBitmap> shared_bitmap;
132 shared_bitmap = manager_->GetSharedBitmapFromId(bitmap_size, id); 129 shared_bitmap = manager_->GetSharedBitmapFromId(bitmap_size, id);
133 ASSERT_TRUE(shared_bitmap.get() != NULL); 130 ASSERT_TRUE(shared_bitmap.get() != NULL);
134 EXPECT_EQ(memcmp(shared_bitmap->pixels(), bitmap->memory(), size_in_bytes), 131 EXPECT_EQ(memcmp(shared_bitmap->pixels(), bitmap->memory(), size_in_bytes),
135 0); 132 0);
136 client.DidDeleteSharedBitmap(id); 133 client.DidDeleteSharedBitmap(id);
137 } 134 }
138 135
139 } // namespace 136 } // namespace
140 } // namespace display_compositor 137 } // namespace display_compositor
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698