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

Unified Diff: ipc/attachment_broker_mac_unittest.cc

Issue 1421933002: Revert of mac: Add auto-close and share-read-only functionality to SharedMemory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/memory/shared_memory_mac_unittest.cc ('k') | ipc/attachment_broker_privileged_mac_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ipc/attachment_broker_mac_unittest.cc
diff --git a/ipc/attachment_broker_mac_unittest.cc b/ipc/attachment_broker_mac_unittest.cc
index 4d1f5bc06159f1a63e487082c3dfc82614ad3146..795a165312721a673c79daddf803209166e38bf0 100644
--- a/ipc/attachment_broker_mac_unittest.cc
+++ b/ipc/attachment_broker_mac_unittest.cc
@@ -11,7 +11,6 @@
#include "base/files/file_util.h"
#include "base/files/scoped_file.h"
#include "base/files/scoped_temp_dir.h"
-#include "base/mac/mac_util.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/shared_memory.h"
#include "ipc/attachment_broker_privileged_mac.h"
@@ -112,8 +111,7 @@
// Returns |nullptr| on error.
scoped_ptr<base::SharedMemory> MapSharedMemoryHandle(
- const base::SharedMemoryHandle& shm,
- bool read_only) {
+ const base::SharedMemoryHandle& shm) {
if (!shm.IsValid()) {
LOG(ERROR) << "Invalid SharedMemoryHandle";
return nullptr;
@@ -126,7 +124,7 @@
}
scoped_ptr<base::SharedMemory> shared_memory(
- new base::SharedMemory(shm, read_only));
+ new base::SharedMemory(shm, false));
shared_memory->Map(size);
return shared_memory;
}
@@ -135,8 +133,7 @@
// consumes a reference to the underlying Mach port.
bool CheckContentsOfSharedMemoryHandle(const base::SharedMemoryHandle& shm,
const std::string& contents) {
- scoped_ptr<base::SharedMemory> shared_memory(
- MapSharedMemoryHandle(shm, false));
+ scoped_ptr<base::SharedMemory> shared_memory(MapSharedMemoryHandle(shm));
if (memcmp(shared_memory->memory(), contents.c_str(), contents.size()) != 0) {
LOG(ERROR) << "Shared Memory contents not equivalent";
@@ -191,10 +188,8 @@
const base::SharedMemoryHandle& handle1,
const base::SharedMemoryHandle& handle2,
const std::string& contents) {
- scoped_ptr<base::SharedMemory> shared_memory1(
- MapSharedMemoryHandle(handle1, false));
- scoped_ptr<base::SharedMemory> shared_memory2(
- MapSharedMemoryHandle(handle2, false));
+ scoped_ptr<base::SharedMemory> shared_memory1(MapSharedMemoryHandle(handle1));
+ scoped_ptr<base::SharedMemory> shared_memory2(MapSharedMemoryHandle(handle2));
if (memcmp(shared_memory1->memory(), contents.c_str(), contents.size()) !=
0) {
@@ -543,10 +538,6 @@
// it. The SharedMemoryHandle is sent to the privileged process using Chrome
// IPC. The privileged process checks that it received the same memory region.
TEST_F(IPCAttachmentBrokerMacTest, SendSharedMemoryHandle) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
CommonSetUp("SendSharedMemoryHandle");
SendMessage1(kDataBuffer1);
@@ -568,10 +559,6 @@
// Similar to SendSharedMemoryHandle, but sends a very long shared memory
// region.
TEST_F(IPCAttachmentBrokerMacTest, SendSharedMemoryHandleLong) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
CommonSetUp("SendSharedMemoryHandleLong");
std::string buffer(1 << 23, 'a');
@@ -595,10 +582,6 @@
// Similar to SendSharedMemoryHandle, but sends two different shared memory
// regions in two messages.
TEST_F(IPCAttachmentBrokerMacTest, SendTwoMessagesDifferentSharedMemoryHandle) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
CommonSetUp("SendTwoMessagesDifferentSharedMemoryHandle");
SendMessage1(kDataBuffer1);
@@ -630,10 +613,6 @@
// Similar to SendSharedMemoryHandle, but sends the same shared memory region in
// two messages.
TEST_F(IPCAttachmentBrokerMacTest, SendTwoMessagesSameSharedMemoryHandle) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
CommonSetUp("SendTwoMessagesSameSharedMemoryHandle");
{
@@ -679,10 +658,6 @@
// memory regions.
TEST_F(IPCAttachmentBrokerMacTest,
SendOneMessageWithTwoDifferentSharedMemoryHandles) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
CommonSetUp("SendOneMessageWithTwoDifferentSharedMemoryHandles");
{
@@ -725,10 +700,6 @@
// same memory region twice.
TEST_F(IPCAttachmentBrokerMacTest,
SendOneMessageWithTwoSameSharedMemoryHandles) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
CommonSetUp("SendOneMessageWithTwoSameSharedMemoryHandles");
{
@@ -767,10 +738,6 @@
// Sends one message with two Posix FDs and two Mach ports.
TEST_F(IPCAttachmentBrokerMacTest, SendPosixFDAndMachPort) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
base::ScopedTempDir temp_dir;
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
base::FilePath fp1, fp2;
@@ -834,10 +801,6 @@
// process. This is an unrealistic scenario, but simulates an unprivileged
// process sending an attachment to another unprivileged process.
TEST_F(IPCAttachmentBrokerMacTest, SendSharedMemoryHandleToSelf) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
SetBroker(new MockBroker);
CommonSetUp("SendSharedMemoryHandleToSelf");
@@ -889,10 +852,6 @@
// Similar to SendSharedMemoryHandle, but uses a ChannelProxy instead of a
// Channel.
TEST_F(IPCAttachmentBrokerMacTest, SendSharedMemoryHandleChannelProxy) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
Init("SendSharedMemoryHandleChannelProxy");
MachPreForkSetUp();
@@ -941,88 +900,4 @@
"SendSharedMemoryHandleChannelProxy");
}
-// Similar to SendSharedMemoryHandle, but first makes a copy of the handle using
-// ShareToProcess().
-TEST_F(IPCAttachmentBrokerMacTest, ShareToProcess) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
- CommonSetUp("ShareToProcess");
-
- {
- scoped_ptr<base::SharedMemory> shared_memory(
- MakeSharedMemory(kDataBuffer1));
- base::SharedMemoryHandle new_handle;
- ASSERT_TRUE(shared_memory->ShareToProcess(0, &new_handle));
- IPC::Message* message =
- new TestSharedMemoryHandleMsg1(100, new_handle, 200);
- sender()->Send(message);
- }
-
- base::MessageLoop::current()->Run();
- CommonTearDown();
-}
-
-void ShareToProcessCallback(IPC::Sender* sender, const IPC::Message& message) {
- bool success = CheckContentsOfMessage1(message, kDataBuffer1);
- SendControlMessage(sender, success);
-}
-
-MULTIPROCESS_IPC_TEST_CLIENT_MAIN(ShareToProcess) {
- return CommonPrivilegedProcessMain(&ShareToProcessCallback, "ShareToProcess");
-}
-
-// Similar to ShareToProcess, but instead shares the memory object only with
-// read permissions.
-TEST_F(IPCAttachmentBrokerMacTest, ShareReadOnlyToProcess) {
- // Mach-based SharedMemory isn't support on OSX 10.6.
- if (base::mac::IsOSSnowLeopard())
- return;
-
- CommonSetUp("ShareReadOnlyToProcess");
-
- {
- scoped_ptr<base::SharedMemory> shared_memory(
- MakeSharedMemory(kDataBuffer1));
- base::SharedMemoryHandle new_handle;
- ASSERT_TRUE(shared_memory->ShareReadOnlyToProcess(0, &new_handle));
- IPC::Message* message =
- new TestSharedMemoryHandleMsg1(100, new_handle, 200);
- sender()->Send(message);
- }
-
- base::MessageLoop::current()->Run();
- CommonTearDown();
-}
-
-void ShareReadOnlyToProcessCallback(IPC::Sender* sender,
- const IPC::Message& message) {
- base::SharedMemoryHandle shm(GetSharedMemoryHandleFromMsg1(message));
-
- // Try to map the memory as writable.
- scoped_ptr<base::SharedMemory> shared_memory(
- MapSharedMemoryHandle(shm, false));
- ASSERT_EQ(nullptr, shared_memory->memory());
-
- // Now try as read-only.
- scoped_ptr<base::SharedMemory> shared_memory2(
- MapSharedMemoryHandle(shm.Duplicate(), true));
- int current_prot, max_prot;
- ASSERT_TRUE(IPC::GetMachProtections(shared_memory2->memory(),
- shared_memory2->mapped_size(),
- &current_prot, &max_prot));
- ASSERT_EQ(VM_PROT_READ, current_prot);
- ASSERT_EQ(VM_PROT_READ, max_prot);
-
- bool success =
- memcmp(shared_memory2->memory(), kDataBuffer1, strlen(kDataBuffer1)) == 0;
- SendControlMessage(sender, success);
-}
-
-MULTIPROCESS_IPC_TEST_CLIENT_MAIN(ShareReadOnlyToProcess) {
- return CommonPrivilegedProcessMain(&ShareReadOnlyToProcessCallback,
- "ShareReadOnlyToProcess");
-}
-
} // namespace
« no previous file with comments | « base/memory/shared_memory_mac_unittest.cc ('k') | ipc/attachment_broker_privileged_mac_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698