| Index: ipc/file_descriptor_set_posix_unittest.cc
|
| diff --git a/ipc/file_descriptor_set_posix_unittest.cc b/ipc/file_descriptor_set_posix_unittest.cc
|
| deleted file mode 100644
|
| index 34ef465edc05cb5e519ef414b3b76e6243e8c418..0000000000000000000000000000000000000000
|
| --- a/ipc/file_descriptor_set_posix_unittest.cc
|
| +++ /dev/null
|
| @@ -1,183 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// This test is POSIX only.
|
| -
|
| -#include "ipc/file_descriptor_set_posix.h"
|
| -
|
| -#include <unistd.h>
|
| -#include <fcntl.h>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/posix/eintr_wrapper.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace {
|
| -
|
| -// Get a safe file descriptor for test purposes.
|
| -int GetSafeFd() {
|
| - return open("/dev/null", O_RDONLY);
|
| -}
|
| -
|
| -// Returns true if fd was already closed. Closes fd if not closed.
|
| -bool VerifyClosed(int fd) {
|
| - const int duped = dup(fd);
|
| - if (duped != -1) {
|
| - EXPECT_NE(IGNORE_EINTR(close(duped)), -1);
|
| - EXPECT_NE(IGNORE_EINTR(close(fd)), -1);
|
| - return false;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -// The FileDescriptorSet 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.
|
| -static const int kFDBase = 50000;
|
| -
|
| -TEST(FileDescriptorSet, BasicAdd) {
|
| - scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
|
| -
|
| - ASSERT_EQ(set->size(), 0u);
|
| - ASSERT_TRUE(set->empty());
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase));
|
| - ASSERT_EQ(set->size(), 1u);
|
| - ASSERT_TRUE(!set->empty());
|
| -
|
| - // Empties the set and stops a warning about deleting a set with unconsumed
|
| - // descriptors
|
| - set->CommitAll();
|
| -}
|
| -
|
| -TEST(FileDescriptorSet, BasicAddAndClose) {
|
| - scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
|
| -
|
| - ASSERT_EQ(set->size(), 0u);
|
| - ASSERT_TRUE(set->empty());
|
| - const int fd = GetSafeFd();
|
| - ASSERT_TRUE(set->AddToOwn(base::ScopedFD(fd)));
|
| - ASSERT_EQ(set->size(), 1u);
|
| - ASSERT_TRUE(!set->empty());
|
| -
|
| - set->CommitAll();
|
| -
|
| - ASSERT_TRUE(VerifyClosed(fd));
|
| -}
|
| -TEST(FileDescriptorSet, MaxSize) {
|
| - scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
|
| -
|
| - for (size_t i = 0; i < FileDescriptorSet::kMaxDescriptorsPerMessage; ++i)
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase + 1 + i));
|
| -
|
| - ASSERT_TRUE(!set->AddToBorrow(kFDBase));
|
| -
|
| - set->CommitAll();
|
| -}
|
| -
|
| -TEST(FileDescriptorSet, SetDescriptors) {
|
| - scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
|
| -
|
| - 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->CommitAll();
|
| -
|
| - ASSERT_TRUE(VerifyClosed(fd));
|
| -}
|
| -
|
| -TEST(FileDescriptorSet, PeekDescriptors) {
|
| - scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
|
| -
|
| - set->PeekDescriptors(NULL);
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase));
|
| -
|
| - int fds[1];
|
| - fds[0] = 0;
|
| - set->PeekDescriptors(fds);
|
| - ASSERT_EQ(fds[0], kFDBase);
|
| - set->CommitAll();
|
| - ASSERT_TRUE(set->empty());
|
| -}
|
| -
|
| -TEST(FileDescriptorSet, WalkInOrder) {
|
| - scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
|
| -
|
| - // TODO(morrita): This test is wrong. TakeDescriptorAt() shouldn't be
|
| - // used to retrieve borrowed descriptors. That never happens in production.
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase));
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase + 1));
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase + 2));
|
| -
|
| - ASSERT_EQ(set->TakeDescriptorAt(0), kFDBase);
|
| - ASSERT_EQ(set->TakeDescriptorAt(1), kFDBase + 1);
|
| - ASSERT_EQ(set->TakeDescriptorAt(2), kFDBase + 2);
|
| -
|
| - set->CommitAll();
|
| -}
|
| -
|
| -TEST(FileDescriptorSet, WalkWrongOrder) {
|
| - scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
|
| -
|
| - // TODO(morrita): This test is wrong. TakeDescriptorAt() shouldn't be
|
| - // used to retrieve borrowed descriptors. That never happens in production.
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase));
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase + 1));
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase + 2));
|
| -
|
| - ASSERT_EQ(set->TakeDescriptorAt(0), kFDBase);
|
| - ASSERT_EQ(set->TakeDescriptorAt(2), -1);
|
| -
|
| - set->CommitAll();
|
| -}
|
| -
|
| -TEST(FileDescriptorSet, WalkCycle) {
|
| - scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
|
| -
|
| - // TODO(morrita): This test is wrong. TakeDescriptorAt() shouldn't be
|
| - // used to retrieve borrowed descriptors. That never happens in production.
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase));
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase + 1));
|
| - ASSERT_TRUE(set->AddToBorrow(kFDBase + 2));
|
| -
|
| - ASSERT_EQ(set->TakeDescriptorAt(0), kFDBase);
|
| - ASSERT_EQ(set->TakeDescriptorAt(1), kFDBase + 1);
|
| - ASSERT_EQ(set->TakeDescriptorAt(2), kFDBase + 2);
|
| - ASSERT_EQ(set->TakeDescriptorAt(0), kFDBase);
|
| - ASSERT_EQ(set->TakeDescriptorAt(1), kFDBase + 1);
|
| - ASSERT_EQ(set->TakeDescriptorAt(2), kFDBase + 2);
|
| - ASSERT_EQ(set->TakeDescriptorAt(0), kFDBase);
|
| - ASSERT_EQ(set->TakeDescriptorAt(1), kFDBase + 1);
|
| - ASSERT_EQ(set->TakeDescriptorAt(2), kFDBase + 2);
|
| -
|
| - set->CommitAll();
|
| -}
|
| -
|
| -TEST(FileDescriptorSet, DontClose) {
|
| - scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
|
| -
|
| - const int fd = GetSafeFd();
|
| - ASSERT_TRUE(set->AddToBorrow(fd));
|
| - set->CommitAll();
|
| -
|
| - ASSERT_FALSE(VerifyClosed(fd));
|
| -}
|
| -
|
| -TEST(FileDescriptorSet, DoClose) {
|
| - scoped_refptr<FileDescriptorSet> set(new FileDescriptorSet);
|
| -
|
| - const int fd = GetSafeFd();
|
| - ASSERT_TRUE(set->AddToOwn(base::ScopedFD(fd)));
|
| - set->CommitAll();
|
| -
|
| - ASSERT_TRUE(VerifyClosed(fd));
|
| -}
|
| -
|
| -} // namespace
|
|
|