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

Unified Diff: chromeos/process_proxy/process_output_watcher_unittest.cc

Issue 1258193002: User MessageLoopForIO::WatchFileDescriptor in proces_output_watcher (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 4 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
« no previous file with comments | « chromeos/process_proxy/process_output_watcher.cc ('k') | chromeos/process_proxy/process_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/process_proxy/process_output_watcher_unittest.cc
diff --git a/chromeos/process_proxy/process_output_watcher_unittest.cc b/chromeos/process_proxy/process_output_watcher_unittest.cc
index 529ba18433bc6a5c580b22fba84f0ef214ea5454..2f2eb9996dfa7b0647dbb4958cf653b2892cc7bb 100644
--- a/chromeos/process_proxy/process_output_watcher_unittest.cc
+++ b/chromeos/process_proxy/process_output_watcher_unittest.cc
@@ -21,6 +21,8 @@
namespace chromeos {
+namespace {
+
struct TestCase {
TestCase(const std::string& input, bool send_terminating_null)
: input(input),
@@ -83,6 +85,12 @@ class ProcessWatcherExpectations {
size_t received_from_out_;
};
+void StopProcessOutputWatcher(scoped_ptr<ProcessOutputWatcher> watcher) {
+ // Just deleting |watcher| if sufficient.
+}
+
+} // namespace
+
class ProcessOutputWatcherTest : public testing::Test {
public:
ProcessOutputWatcherTest() : output_watch_thread_started_(false),
@@ -96,13 +104,6 @@ class ProcessOutputWatcherTest : public testing::Test {
output_watch_thread_->Stop();
}
- void StartWatch(int pt, int stop) {
- // This will delete itself.
- ProcessOutputWatcher* crosh_watcher = new ProcessOutputWatcher(pt, stop,
- base::Bind(&ProcessOutputWatcherTest::OnRead, base::Unretained(this)));
- crosh_watcher->Start();
- }
-
void OnRead(ProcessOutputType type, const std::string& output) {
ASSERT_FALSE(failed_);
// There may be an EXIT signal sent during test tear down (which is sent
@@ -134,17 +135,20 @@ class ProcessOutputWatcherTest : public testing::Test {
void RunTest(const std::vector<TestCase>& test_cases) {
ASSERT_FALSE(output_watch_thread_started_);
output_watch_thread_.reset(new base::Thread("ProcessOutpuWatchThread"));
- output_watch_thread_started_ = output_watch_thread_->Start();
+ output_watch_thread_started_ = output_watch_thread_->StartWithOptions(
+ base::Thread::Options(base::MessageLoop::TYPE_IO, 0));
ASSERT_TRUE(output_watch_thread_started_);
- int pt_pipe[2], stop_pipe[2];
+ int pt_pipe[2];
ASSERT_FALSE(HANDLE_EINTR(pipe(pt_pipe)));
- ASSERT_FALSE(HANDLE_EINTR(pipe(stop_pipe)));
+
+ scoped_ptr<ProcessOutputWatcher> crosh_watcher(new ProcessOutputWatcher(
+ pt_pipe[0],
+ base::Bind(&ProcessOutputWatcherTest::OnRead, base::Unretained(this))));
output_watch_thread_->task_runner()->PostTask(
- FROM_HERE,
- base::Bind(&ProcessOutputWatcherTest::StartWatch,
- base::Unretained(this), pt_pipe[0], stop_pipe[0]));
+ FROM_HERE, base::Bind(&ProcessOutputWatcher::Start,
+ base::Unretained(crosh_watcher.get())));
for (size_t i = 0; i < test_cases.size(); i++) {
expectations_.SetTestCase(test_cases[i]);
@@ -168,10 +172,10 @@ class ProcessOutputWatcherTest : public testing::Test {
break;
}
- // Send stop signal. It is not important which string we send.
- EXPECT_TRUE(base::WriteFileDescriptor(stop_pipe[1], "q", 1));
+ output_watch_thread_->task_runner()->PostTask(
+ FROM_HERE,
+ base::Bind(&StopProcessOutputWatcher, base::Passed(&crosh_watcher)));
- EXPECT_NE(-1, IGNORE_EINTR(close(stop_pipe[1])));
EXPECT_NE(-1, IGNORE_EINTR(close(pt_pipe[1])));
}
« no previous file with comments | « chromeos/process_proxy/process_output_watcher.cc ('k') | chromeos/process_proxy/process_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698