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

Side by Side Diff: chrome/browser/process_singleton_linux_unittest.cc

Issue 15984016: Call scoped_refptr<T>::get() rather than relying on implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/process_singleton.h" 5 #include "chrome/browser/process_singleton.h"
6 6
7 #include <signal.h> 7 #include <signal.h>
8 #include <sys/types.h> 8 #include <sys/types.h>
9 #include <sys/wait.h> 9 #include <sys/wait.h>
10 #include <unistd.h> 10 #include <unistd.h>
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 // Put the lock in a temporary directory. Doesn't need to be a 80 // Put the lock in a temporary directory. Doesn't need to be a
81 // full profile to test this code. 81 // full profile to test this code.
82 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 82 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
83 lock_path_ = temp_dir_.path().Append(chrome::kSingletonLockFilename); 83 lock_path_ = temp_dir_.path().Append(chrome::kSingletonLockFilename);
84 socket_path_ = temp_dir_.path().Append(chrome::kSingletonSocketFilename); 84 socket_path_ = temp_dir_.path().Append(chrome::kSingletonSocketFilename);
85 cookie_path_ = temp_dir_.path().Append(chrome::kSingletonCookieFilename); 85 cookie_path_ = temp_dir_.path().Append(chrome::kSingletonCookieFilename);
86 } 86 }
87 87
88 virtual void TearDown() { 88 virtual void TearDown() {
89 scoped_refptr<base::ThreadTestHelper> io_helper(new base::ThreadTestHelper( 89 scoped_refptr<base::ThreadTestHelper> io_helper(new base::ThreadTestHelper(
90 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO))); 90 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get()));
91 ASSERT_TRUE(io_helper->Run()); 91 ASSERT_TRUE(io_helper->Run());
92 92
93 // Destruct the ProcessSingleton object before the IO thread so that its 93 // Destruct the ProcessSingleton object before the IO thread so that its
94 // internals are destructed properly. 94 // internals are destructed properly.
95 if (process_singleton_on_thread_) { 95 if (process_singleton_on_thread_) {
96 worker_thread_->message_loop()->PostTask( 96 worker_thread_->message_loop()->PostTask(
97 FROM_HERE, 97 FROM_HERE,
98 base::Bind(&ProcessSingletonLinuxTest::DestructProcessSingleton, 98 base::Bind(&ProcessSingletonLinuxTest::DestructProcessSingleton,
99 base::Unretained(this))); 99 base::Unretained(this)));
100 100
101 scoped_refptr<base::ThreadTestHelper> helper( 101 scoped_refptr<base::ThreadTestHelper> helper(new base::ThreadTestHelper(
102 new base::ThreadTestHelper(worker_thread_->message_loop_proxy())); 102 worker_thread_->message_loop_proxy().get()));
103 ASSERT_TRUE(helper->Run()); 103 ASSERT_TRUE(helper->Run());
104 } 104 }
105 105
106 io_thread_.Stop(); 106 io_thread_.Stop();
107 testing::Test::TearDown(); 107 testing::Test::TearDown();
108 } 108 }
109 109
110 void CreateProcessSingletonOnThread() { 110 void CreateProcessSingletonOnThread() {
111 ASSERT_EQ(NULL, worker_thread_.get()); 111 ASSERT_EQ(NULL, worker_thread_.get());
112 worker_thread_.reset(new base::Thread("BlockingThread")); 112 worker_thread_.reset(new base::Thread("BlockingThread"));
113 worker_thread_->Start(); 113 worker_thread_->Start();
114 114
115 worker_thread_->message_loop()->PostTask( 115 worker_thread_->message_loop()->PostTask(
116 FROM_HERE, 116 FROM_HERE,
117 base::Bind(&ProcessSingletonLinuxTest:: 117 base::Bind(&ProcessSingletonLinuxTest::
118 CreateProcessSingletonInternal, 118 CreateProcessSingletonInternal,
119 base::Unretained(this))); 119 base::Unretained(this)));
120 120
121 scoped_refptr<base::ThreadTestHelper> helper( 121 scoped_refptr<base::ThreadTestHelper> helper(
122 new base::ThreadTestHelper( 122 new base::ThreadTestHelper(worker_thread_->message_loop_proxy().get()));
123 worker_thread_->message_loop_proxy()));
124 ASSERT_TRUE(helper->Run()); 123 ASSERT_TRUE(helper->Run());
125 } 124 }
126 125
127 TestableProcessSingleton* CreateProcessSingleton() { 126 TestableProcessSingleton* CreateProcessSingleton() {
128 return new TestableProcessSingleton(temp_dir_.path()); 127 return new TestableProcessSingleton(temp_dir_.path());
129 } 128 }
130 129
131 ProcessSingleton::NotifyResult NotifyOtherProcess( 130 ProcessSingleton::NotifyResult NotifyOtherProcess(
132 bool override_kill, 131 bool override_kill,
133 base::TimeDelta timeout) { 132 base::TimeDelta timeout) {
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 390
392 // Also change the hostname, so the remote does not retry. 391 // Also change the hostname, so the remote does not retry.
393 EXPECT_EQ(0, unlink(lock_path_.value().c_str())); 392 EXPECT_EQ(0, unlink(lock_path_.value().c_str()));
394 EXPECT_EQ(0, symlink("FAKEFOOHOST-1234", lock_path_.value().c_str())); 393 EXPECT_EQ(0, symlink("FAKEFOOHOST-1234", lock_path_.value().c_str()));
395 394
396 std::string url("about:blank"); 395 std::string url("about:blank");
397 EXPECT_EQ(ProcessSingleton::PROFILE_IN_USE, 396 EXPECT_EQ(ProcessSingleton::PROFILE_IN_USE,
398 NotifyOtherProcessOrCreate(url, TestTimeouts::action_timeout())); 397 NotifyOtherProcessOrCreate(url, TestTimeouts::action_timeout()));
399 } 398 }
400 399
OLDNEW
« no previous file with comments | « chrome/browser/printing/print_dialog_gtk.cc ('k') | chrome/browser/profiles/off_the_record_profile_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698