| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "mojo/edk/embedder/platform_shared_buffer.h" | 5 #include "mojo/edk/embedder/platform_shared_buffer.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <limits> | 9 #include <limits> |
| 10 | 10 |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 EXPECT_EQ('x', static_cast<char*>(mapping2->GetBase())[0]); | 187 EXPECT_EQ('x', static_cast<char*>(mapping2->GetBase())[0]); |
| 188 | 188 |
| 189 static_cast<char*>(mapping2->GetBase())[1] = 'y'; | 189 static_cast<char*>(mapping2->GetBase())[1] = 'y'; |
| 190 EXPECT_EQ('y', static_cast<char*>(mapping1->GetBase())[51]); | 190 EXPECT_EQ('y', static_cast<char*>(mapping1->GetBase())[51]); |
| 191 } | 191 } |
| 192 | 192 |
| 193 TEST(PlatformSharedBufferTest, FromSharedMemoryHandle) { | 193 TEST(PlatformSharedBufferTest, FromSharedMemoryHandle) { |
| 194 const size_t kBufferSize = 1234; | 194 const size_t kBufferSize = 1234; |
| 195 base::SharedMemoryCreateOptions options; | 195 base::SharedMemoryCreateOptions options; |
| 196 options.size = kBufferSize; | 196 options.size = kBufferSize; |
| 197 #if defined(OS_MACOSX) && !defined(OS_IOS) |
| 198 options.type = base::SharedMemoryHandle::POSIX; |
| 199 #endif |
| 197 base::SharedMemory shared_memory; | 200 base::SharedMemory shared_memory; |
| 198 ASSERT_TRUE(shared_memory.Create(options)); | 201 ASSERT_TRUE(shared_memory.Create(options)); |
| 199 ASSERT_TRUE(shared_memory.Map(kBufferSize)); | 202 ASSERT_TRUE(shared_memory.Map(kBufferSize)); |
| 200 | 203 |
| 201 base::SharedMemoryHandle shm_handle = | 204 base::SharedMemoryHandle shm_handle = |
| 202 base::SharedMemory::DuplicateHandle(shared_memory.handle()); | 205 base::SharedMemory::DuplicateHandle(shared_memory.handle()); |
| 203 scoped_refptr<PlatformSharedBuffer> simple_buffer( | 206 scoped_refptr<PlatformSharedBuffer> simple_buffer( |
| 204 PlatformSharedBuffer::CreateFromSharedMemoryHandle( | 207 PlatformSharedBuffer::CreateFromSharedMemoryHandle( |
| 205 kBufferSize, false /* read_only */, shm_handle)); | 208 kBufferSize, false /* read_only */, shm_handle)); |
| 206 ASSERT_TRUE(simple_buffer); | 209 ASSERT_TRUE(simple_buffer); |
| 207 | 210 |
| 208 scoped_ptr<PlatformSharedBufferMapping> mapping = | 211 scoped_ptr<PlatformSharedBufferMapping> mapping = |
| 209 simple_buffer->Map(0, kBufferSize); | 212 simple_buffer->Map(0, kBufferSize); |
| 210 ASSERT_TRUE(mapping); | 213 ASSERT_TRUE(mapping); |
| 211 | 214 |
| 212 const int kOffset = 123; | 215 const int kOffset = 123; |
| 213 char* base_memory = static_cast<char*>(shared_memory.memory()); | 216 char* base_memory = static_cast<char*>(shared_memory.memory()); |
| 214 char* mojo_memory = static_cast<char*>(mapping->GetBase()); | 217 char* mojo_memory = static_cast<char*>(mapping->GetBase()); |
| 215 base_memory[kOffset] = 0; | 218 base_memory[kOffset] = 0; |
| 216 EXPECT_EQ(0, mojo_memory[kOffset]); | 219 EXPECT_EQ(0, mojo_memory[kOffset]); |
| 217 base_memory[kOffset] = 'a'; | 220 base_memory[kOffset] = 'a'; |
| 218 EXPECT_EQ('a', mojo_memory[kOffset]); | 221 EXPECT_EQ('a', mojo_memory[kOffset]); |
| 219 mojo_memory[kOffset] = 'z'; | 222 mojo_memory[kOffset] = 'z'; |
| 220 EXPECT_EQ('z', base_memory[kOffset]); | 223 EXPECT_EQ('z', base_memory[kOffset]); |
| 221 } | 224 } |
| 222 | 225 |
| 223 } // namespace | 226 } // namespace |
| 224 } // namespace edk | 227 } // namespace edk |
| 225 } // namespace mojo | 228 } // namespace mojo |
| OLD | NEW |