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

Unified Diff: trunk/src/base/message_loop/message_pump_libevent_unittest.cc

Issue 16897005: Revert 206507 "Move message_pump to base/message_loop." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 6 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
Index: trunk/src/base/message_loop/message_pump_libevent_unittest.cc
===================================================================
--- trunk/src/base/message_loop/message_pump_libevent_unittest.cc (revision 206508)
+++ trunk/src/base/message_loop/message_pump_libevent_unittest.cc (working copy)
@@ -1,162 +0,0 @@
-// Copyright (c) 2012 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.
-
-#include "base/message_loop/message_pump_libevent.h"
-
-#include <unistd.h>
-
-#include "base/message_loop/message_loop.h"
-#include "base/posix/eintr_wrapper.h"
-#include "base/threading/thread.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/libevent/event.h"
-
-namespace base {
-
-class MessagePumpLibeventTest : public testing::Test {
- protected:
- MessagePumpLibeventTest()
- : ui_loop_(MessageLoop::TYPE_UI),
- io_thread_("MessagePumpLibeventTestIOThread") {}
- virtual ~MessagePumpLibeventTest() {}
-
- virtual void SetUp() OVERRIDE {
- Thread::Options options(MessageLoop::TYPE_IO, 0);
- ASSERT_TRUE(io_thread_.StartWithOptions(options));
- ASSERT_EQ(MessageLoop::TYPE_IO, io_thread_.message_loop()->type());
- int ret = pipe(pipefds_);
- ASSERT_EQ(0, ret);
- }
-
- virtual void TearDown() OVERRIDE {
- if (HANDLE_EINTR(close(pipefds_[0])) < 0)
- PLOG(ERROR) << "close";
- if (HANDLE_EINTR(close(pipefds_[1])) < 0)
- PLOG(ERROR) << "close";
- }
-
- MessageLoop* ui_loop() { return &ui_loop_; }
- MessageLoopForIO* io_loop() const {
- return static_cast<MessageLoopForIO*>(io_thread_.message_loop());
- }
-
- void OnLibeventNotification(
- MessagePumpLibevent* pump,
- MessagePumpLibevent::FileDescriptorWatcher* controller) {
- pump->OnLibeventNotification(0, EV_WRITE | EV_READ, controller);
- }
-
- int pipefds_[2];
-
- private:
- MessageLoop ui_loop_;
- Thread io_thread_;
-};
-
-namespace {
-
-// Concrete implementation of MessagePumpLibevent::Watcher that does
-// nothing useful.
-class StupidWatcher : public MessagePumpLibevent::Watcher {
- public:
- virtual ~StupidWatcher() {}
-
- // base:MessagePumpLibevent::Watcher interface
- virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE {}
- virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE {}
-};
-
-#if GTEST_HAS_DEATH_TEST && !defined(NDEBUG)
-
-// Test to make sure that we catch calling WatchFileDescriptor off of the
-// wrong thread.
-TEST_F(MessagePumpLibeventTest, TestWatchingFromBadThread) {
- MessagePumpLibevent::FileDescriptorWatcher watcher;
- StupidWatcher delegate;
-
- ASSERT_DEATH(io_loop()->WatchFileDescriptor(
- STDOUT_FILENO, false, MessageLoopForIO::WATCH_READ, &watcher, &delegate),
- "Check failed: "
- "watch_file_descriptor_caller_checker_.CalledOnValidThread()");
-}
-
-#endif // GTEST_HAS_DEATH_TEST && !defined(NDEBUG)
-
-class BaseWatcher : public MessagePumpLibevent::Watcher {
- public:
- explicit BaseWatcher(MessagePumpLibevent::FileDescriptorWatcher* controller)
- : controller_(controller) {
- DCHECK(controller_);
- }
- virtual ~BaseWatcher() {}
-
- // base:MessagePumpLibevent::Watcher interface
- virtual void OnFileCanReadWithoutBlocking(int /* fd */) OVERRIDE {
- NOTREACHED();
- }
-
- virtual void OnFileCanWriteWithoutBlocking(int /* fd */) OVERRIDE {
- NOTREACHED();
- }
-
- protected:
- MessagePumpLibevent::FileDescriptorWatcher* controller_;
-};
-
-class DeleteWatcher : public BaseWatcher {
- public:
- explicit DeleteWatcher(
- MessagePumpLibevent::FileDescriptorWatcher* controller)
- : BaseWatcher(controller) {}
-
- virtual ~DeleteWatcher() {
- DCHECK(!controller_);
- }
-
- virtual void OnFileCanWriteWithoutBlocking(int /* fd */) OVERRIDE {
- DCHECK(controller_);
- delete controller_;
- controller_ = NULL;
- }
-};
-
-TEST_F(MessagePumpLibeventTest, DeleteWatcher) {
- scoped_refptr<MessagePumpLibevent> pump(new MessagePumpLibevent);
- MessagePumpLibevent::FileDescriptorWatcher* watcher =
- new MessagePumpLibevent::FileDescriptorWatcher;
- DeleteWatcher delegate(watcher);
- pump->WatchFileDescriptor(pipefds_[1],
- false, MessagePumpLibevent::WATCH_READ_WRITE, watcher, &delegate);
-
- // Spoof a libevent notification.
- OnLibeventNotification(pump.get(), watcher);
-}
-
-class StopWatcher : public BaseWatcher {
- public:
- explicit StopWatcher(
- MessagePumpLibevent::FileDescriptorWatcher* controller)
- : BaseWatcher(controller) {}
-
- virtual ~StopWatcher() {}
-
- virtual void OnFileCanWriteWithoutBlocking(int /* fd */) OVERRIDE {
- controller_->StopWatchingFileDescriptor();
- }
-};
-
-TEST_F(MessagePumpLibeventTest, StopWatcher) {
- scoped_refptr<MessagePumpLibevent> pump(new MessagePumpLibevent);
- MessagePumpLibevent::FileDescriptorWatcher watcher;
- StopWatcher delegate(&watcher);
- pump->WatchFileDescriptor(pipefds_[1],
- false, MessagePumpLibevent::WATCH_READ_WRITE, &watcher, &delegate);
-
- // Spoof a libevent notification.
- OnLibeventNotification(pump.get(), &watcher);
-}
-
-} // namespace
-
-} // namespace base
« no previous file with comments | « trunk/src/base/message_loop/message_pump_libevent.cc ('k') | trunk/src/base/message_loop/message_pump_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698