Index: base/message_pump_libevent_unittest.cc |
diff --git a/base/message_pump_libevent_unittest.cc b/base/message_pump_libevent_unittest.cc |
index acc33c077296c5667bf58af59d5eb8499b7687d1..a5380b7aa2fafa204c7917d863bcf0e2970b8ccb 100644 |
--- a/base/message_pump_libevent_unittest.cc |
+++ b/base/message_pump_libevent_unittest.cc |
@@ -6,6 +6,7 @@ |
#include <unistd.h> |
+#include "base/eintr_wrapper.h" |
#include "base/message_loop.h" |
#include "base/threading/thread.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -101,15 +102,23 @@ class DeleteWatcher : public MessagePumpLibevent::Watcher { |
}; |
TEST_F(MessagePumpLibeventTest, DeleteWatcher) { |
+ int pipefds[2]; |
+ int err = pipe(pipefds); |
+ ASSERT_EQ(0, err); |
+ int fd = pipefds[1]; |
scoped_refptr<MessagePumpLibevent> pump(new MessagePumpLibevent); |
MessagePumpLibevent::FileDescriptorWatcher* watcher = |
new MessagePumpLibevent::FileDescriptorWatcher; |
DeleteWatcher delegate(watcher); |
pump->WatchFileDescriptor( |
- 0, false, MessagePumpLibevent::WATCH_READ_WRITE, watcher, &delegate); |
+ fd, false, MessagePumpLibevent::WATCH_READ_WRITE, watcher, &delegate); |
// Spoof a libevent notification. |
OnLibeventNotification(pump, watcher); |
+ if (HANDLE_EINTR(close(pipefds[0])) < 0) |
+ PLOG(ERROR) << "close"; |
+ if (HANDLE_EINTR(close(pipefds[1])) < 0) |
+ PLOG(ERROR) << "close"; |
} |
class StopWatcher : public MessagePumpLibevent::Watcher { |
@@ -134,14 +143,22 @@ class StopWatcher : public MessagePumpLibevent::Watcher { |
}; |
TEST_F(MessagePumpLibeventTest, StopWatcher) { |
+ int pipefds[2]; |
+ int err = pipe(pipefds); |
+ ASSERT_EQ(0, err); |
+ int fd = pipefds[1]; |
jar (doing other things)
2012/07/09 21:12:23
I hate seeing growth of replicated code...
WDYT
Shouqun Liu
2012/07/10 05:42:41
Yes, agree with you. I have made the following ch
|
scoped_refptr<MessagePumpLibevent> pump(new MessagePumpLibevent); |
MessagePumpLibevent::FileDescriptorWatcher watcher; |
StopWatcher delegate(&watcher); |
pump->WatchFileDescriptor( |
- 0, false, MessagePumpLibevent::WATCH_READ_WRITE, &watcher, &delegate); |
+ fd, false, MessagePumpLibevent::WATCH_READ_WRITE, &watcher, &delegate); |
// Spoof a libevent notification. |
OnLibeventNotification(pump, &watcher); |
+ if (HANDLE_EINTR(close(pipefds[0])) < 0) |
+ PLOG(ERROR) << "close"; |
+ if (HANDLE_EINTR(close(pipefds[1])) < 0) |
+ PLOG(ERROR) << "close"; |
} |
} // namespace |