// Copyright 2014 The Chromium OS Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include <brillo/unittest_utils.h> #include <fcntl.h> #include <sys/socket.h> #include <sys/types.h> #include <unistd.h> #include <base/logging.h> #include <gtest/gtest.h> namespace brillo { const int ScopedPipe::kPipeSize = 4096; ScopedPipe::ScopedPipe() { int fds[2]; if (pipe(fds) != 0) { PLOG(FATAL) << "Creating a pipe()"; } reader = fds[0]; writer = fds[1]; EXPECT_EQ(kPipeSize, fcntl(writer, F_SETPIPE_SZ, kPipeSize)); } ScopedPipe::~ScopedPipe() { if (reader != -1) close(reader); if (writer != -1) close(writer); } ScopedSocketPair::ScopedSocketPair() { int fds[2]; if (socketpair(PF_LOCAL, SOCK_STREAM, 0, fds) != 0) { PLOG(FATAL) << "Creating a socketpair()"; } left = fds[0]; right = fds[1]; } ScopedSocketPair::~ScopedSocketPair() { if (left != -1) close(left); if (right != -1) close(right); } } // namespace brillo