| Index: ipc/ipc_message_attachment_set_posix_unittest.cc
|
| diff --git a/ipc/ipc_message_attachment_set_posix_unittest.cc b/ipc/ipc_message_attachment_set_posix_unittest.cc
|
| index 0bd143df4dee9eeb497599412d17803dcd05edb9..5ebed84070ce3748485a231c040839ff9a5c7755 100644
|
| --- a/ipc/ipc_message_attachment_set_posix_unittest.cc
|
| +++ b/ipc/ipc_message_attachment_set_posix_unittest.cc
|
| @@ -34,12 +34,6 @@
|
| return true;
|
| }
|
|
|
| -int GetFdAt(MessageAttachmentSet* set, int id) {
|
| - return static_cast<internal::PlatformFileAttachment&>(
|
| - *set->GetAttachmentAt(id))
|
| - .TakePlatformFile();
|
| -}
|
| -
|
| // The MessageAttachmentSet will try and close some of the descriptor numbers
|
| // which we given it. This is the base descriptor value. It's great enough such
|
| // that no real descriptor will accidently be closed.
|
| @@ -88,6 +82,44 @@
|
| set->CommitAllDescriptors();
|
| }
|
|
|
| +#if defined(OS_ANDROID)
|
| +#define MAYBE_SetDescriptors DISABLED_SetDescriptors
|
| +#else
|
| +#define MAYBE_SetDescriptors SetDescriptors
|
| +#endif
|
| +TEST(MessageAttachmentSet, MAYBE_SetDescriptors) {
|
| + scoped_refptr<MessageAttachmentSet> set(new MessageAttachmentSet);
|
| +
|
| + ASSERT_TRUE(set->empty());
|
| + set->AddDescriptorsToOwn(NULL, 0);
|
| + ASSERT_TRUE(set->empty());
|
| +
|
| + const int fd = GetSafeFd();
|
| + static const int fds[] = {fd};
|
| + set->AddDescriptorsToOwn(fds, 1);
|
| + ASSERT_TRUE(!set->empty());
|
| + ASSERT_EQ(set->size(), 1u);
|
| +
|
| + set->CommitAllDescriptors();
|
| +
|
| + ASSERT_TRUE(VerifyClosed(fd));
|
| +}
|
| +
|
| +TEST(MessageAttachmentSet, PeekDescriptors) {
|
| + scoped_refptr<MessageAttachmentSet> set(new MessageAttachmentSet);
|
| +
|
| + set->PeekDescriptors(NULL);
|
| + ASSERT_TRUE(
|
| + set->AddAttachment(new internal::PlatformFileAttachment(kFDBase)));
|
| +
|
| + int fds[1];
|
| + fds[0] = 0;
|
| + set->PeekDescriptors(fds);
|
| + ASSERT_EQ(fds[0], kFDBase);
|
| + set->CommitAllDescriptors();
|
| + ASSERT_TRUE(set->empty());
|
| +}
|
| +
|
| TEST(MessageAttachmentSet, WalkInOrder) {
|
| scoped_refptr<MessageAttachmentSet> set(new MessageAttachmentSet);
|
|
|
| @@ -100,9 +132,11 @@
|
| ASSERT_TRUE(
|
| set->AddAttachment(new internal::PlatformFileAttachment(kFDBase + 2)));
|
|
|
| - ASSERT_EQ(GetFdAt(set.get(), 0), kFDBase);
|
| - ASSERT_EQ(GetFdAt(set.get(), 1), kFDBase + 1);
|
| - ASSERT_EQ(GetFdAt(set.get(), 2), kFDBase + 2);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(0)->TakePlatformFile(), kFDBase);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(1)->TakePlatformFile(),
|
| + kFDBase + 1);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(2)->TakePlatformFile(),
|
| + kFDBase + 2);
|
|
|
| set->CommitAllDescriptors();
|
| }
|
| @@ -119,8 +153,8 @@
|
| ASSERT_TRUE(
|
| set->AddAttachment(new internal::PlatformFileAttachment(kFDBase + 2)));
|
|
|
| - ASSERT_EQ(GetFdAt(set.get(), 0), kFDBase);
|
| - ASSERT_FALSE(set->GetAttachmentAt(2));
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(0)->TakePlatformFile(), kFDBase);
|
| + ASSERT_FALSE(set->GetNonBrokerableAttachmentAt(2));
|
|
|
| set->CommitAllDescriptors();
|
| }
|
| @@ -137,15 +171,21 @@
|
| ASSERT_TRUE(
|
| set->AddAttachment(new internal::PlatformFileAttachment(kFDBase + 2)));
|
|
|
| - ASSERT_EQ(GetFdAt(set.get(), 0), kFDBase);
|
| - ASSERT_EQ(GetFdAt(set.get(), 1), kFDBase + 1);
|
| - ASSERT_EQ(GetFdAt(set.get(), 2), kFDBase + 2);
|
| - ASSERT_EQ(GetFdAt(set.get(), 0), kFDBase);
|
| - ASSERT_EQ(GetFdAt(set.get(), 1), kFDBase + 1);
|
| - ASSERT_EQ(GetFdAt(set.get(), 2), kFDBase + 2);
|
| - ASSERT_EQ(GetFdAt(set.get(), 0), kFDBase);
|
| - ASSERT_EQ(GetFdAt(set.get(), 1), kFDBase + 1);
|
| - ASSERT_EQ(GetFdAt(set.get(), 2), kFDBase + 2);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(0)->TakePlatformFile(), kFDBase);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(1)->TakePlatformFile(),
|
| + kFDBase + 1);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(2)->TakePlatformFile(),
|
| + kFDBase + 2);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(0)->TakePlatformFile(), kFDBase);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(1)->TakePlatformFile(),
|
| + kFDBase + 1);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(2)->TakePlatformFile(),
|
| + kFDBase + 2);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(0)->TakePlatformFile(), kFDBase);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(1)->TakePlatformFile(),
|
| + kFDBase + 1);
|
| + ASSERT_EQ(set->GetNonBrokerableAttachmentAt(2)->TakePlatformFile(),
|
| + kFDBase + 2);
|
|
|
| set->CommitAllDescriptors();
|
| }
|
|
|