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

Side by Side Diff: base/message_pump_io_ios_unittest.cc

Issue 11412101: Provide an iOS message pump for IO implementation. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Response to review Created 8 years, 1 month 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/message_pump_io_ios.h"
6
7 #include <unistd.h>
8
9 #include "base/message_loop.h"
10 #include "base/threading/thread.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace {
14
15 class MessagePumpIOSForIOTest : public testing::Test {
16 public:
17 MessagePumpIOSForIOTest()
18 : ui_loop_(MessageLoop::TYPE_UI),
19 io_thread_("MessagePumpIOSForIOTestIOThread") {}
20 virtual ~MessagePumpIOSForIOTest() {}
21
22 virtual void SetUp() {
23 base::Thread::Options options(MessageLoop::TYPE_IO, 0);
24 ASSERT_TRUE(io_thread_.StartWithOptions(options));
25 ASSERT_EQ(MessageLoop::TYPE_IO, io_thread_.message_loop()->type());
26 }
27
28 MessageLoop* ui_loop() { return &ui_loop_; }
29 MessageLoopForIO* io_loop() const {
30 return static_cast<MessageLoopForIO*>(io_thread_.message_loop());
31 }
32
33 private:
34 MessageLoop ui_loop_;
35 base::Thread io_thread_;
36 DISALLOW_COPY_AND_ASSIGN(MessagePumpIOSForIOTest);
37 };
38
39 // Concrete implementation of base::MessagePumpIOSForIO::Watcher that does
40 // nothing useful.
41 class StupidWatcher : public base::MessagePumpIOSForIO::Watcher {
42 public:
43 virtual ~StupidWatcher() {}
44
45 // base:MessagePumpIOSForIO::Watcher interface
46 virtual void OnFileCanReadWithoutBlocking(int fd) {}
47 virtual void OnFileCanWriteWithoutBlocking(int fd) {}
48 };
49
50 } // namespace
51
52 #if GTEST_HAS_DEATH_TEST
53
54 // Test to make sure that we catch calling WatchFileDescriptor off of the
55 // wrong thread.
56 TEST_F(MessagePumpIOSForIOTest, TestWatchingFromBadThread) {
57 base::MessagePumpIOSForIO::FileDescriptorWatcher watcher;
58 StupidWatcher delegate;
59
60 ASSERT_DEBUG_DEATH(io_loop()->WatchFileDescriptor(
61 STDOUT_FILENO, false, MessageLoopForIO::WATCH_READ, &watcher, &delegate),
62 "Check failed: "
63 "watch_file_descriptor_caller_checker_.CalledOnValidThread()");
64 }
65
66 #endif // GTEST_HAS_DEATH_TEST
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698