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

Side by Side Diff: content/public/test/test_browser_thread_bundle.cc

Issue 562203002: Flush SimpleCache worker pool between all tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 2 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
« no previous file with comments | « content/public/test/content_test_suite_base.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/public/test/test_browser_thread_bundle.h" 5 #include "content/public/test/test_browser_thread_bundle.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "content/browser/browser_thread_impl.h" 9 #include "content/browser/browser_thread_impl.h"
10 #include "content/public/test/test_browser_thread.h" 10 #include "content/public/test/test_browser_thread.h"
11 11
12 namespace content { 12 namespace content {
13 13
14 TestBrowserThreadBundle::TestBrowserThreadBundle() { 14 TestBrowserThreadBundle::TestBrowserThreadBundle() {
15 Init(DEFAULT); 15 Init(DEFAULT);
16 } 16 }
17 17
18 TestBrowserThreadBundle::TestBrowserThreadBundle(int options) { 18 TestBrowserThreadBundle::TestBrowserThreadBundle(int options) {
19 Init(options); 19 Init(options);
20 } 20 }
21 21
22 TestBrowserThreadBundle::~TestBrowserThreadBundle() { 22 TestBrowserThreadBundle::~TestBrowserThreadBundle() {
23 // To avoid memory leaks, we must ensure that any tasks posted to the blocking 23 // To avoid memory leaks, we must ensure that any tasks posted to the blocking
24 // pool via PostTaskAndReply are able to reply back to the originating thread. 24 // pool via PostTaskAndReply are able to reply back to the originating thread.
25 // Thus we must flush the blocking pool while the browser threads still exist. 25 // Thus we must flush the blocking pool while the browser threads still exist.
26 base::RunLoop().RunUntilIdle(); 26 base::RunLoop().RunUntilIdle();
27 BrowserThreadImpl::FlushThreadPoolHelper(); 27 BrowserThreadImpl::FlushThreadPoolHelperForTesting();
28 28
29 // To ensure a clean teardown, each thread's message loop must be flushed 29 // To ensure a clean teardown, each thread's message loop must be flushed
30 // just before the thread is destroyed. But destroying a fake thread does not 30 // just before the thread is destroyed. But destroying a fake thread does not
31 // automatically flush the message loop, so we have to do it manually. 31 // automatically flush the message loop, so we have to do it manually.
32 // See http://crbug.com/247525 for discussion. 32 // See http://crbug.com/247525 for discussion.
33 base::RunLoop().RunUntilIdle(); 33 base::RunLoop().RunUntilIdle();
34 io_thread_.reset(); 34 io_thread_.reset();
35 base::RunLoop().RunUntilIdle(); 35 base::RunLoop().RunUntilIdle();
36 cache_thread_.reset(); 36 cache_thread_.reset();
37 base::RunLoop().RunUntilIdle(); 37 base::RunLoop().RunUntilIdle();
38 process_launcher_thread_.reset(); 38 process_launcher_thread_.reset();
39 base::RunLoop().RunUntilIdle(); 39 base::RunLoop().RunUntilIdle();
40 file_user_blocking_thread_.reset(); 40 file_user_blocking_thread_.reset();
41 base::RunLoop().RunUntilIdle(); 41 base::RunLoop().RunUntilIdle();
42 file_thread_.reset(); 42 file_thread_.reset();
43 base::RunLoop().RunUntilIdle(); 43 base::RunLoop().RunUntilIdle();
44 db_thread_.reset(); 44 db_thread_.reset();
45 base::RunLoop().RunUntilIdle(); 45 base::RunLoop().RunUntilIdle();
46 // This is the point at which we normally shut down the thread pool. So flush 46 // This is the point at which we normally shut down the thread pool. So flush
47 // it again in case any shutdown tasks have been posted to the pool from the 47 // it again in case any shutdown tasks have been posted to the pool from the
48 // threads above. 48 // threads above.
49 BrowserThreadImpl::FlushThreadPoolHelper(); 49 BrowserThreadImpl::FlushThreadPoolHelperForTesting();
50 base::RunLoop().RunUntilIdle(); 50 base::RunLoop().RunUntilIdle();
51 ui_thread_.reset(); 51 ui_thread_.reset();
52 base::RunLoop().RunUntilIdle(); 52 base::RunLoop().RunUntilIdle();
53 } 53 }
54 54
55 void TestBrowserThreadBundle::Init(int options) { 55 void TestBrowserThreadBundle::Init(int options) {
56 if (options & IO_MAINLOOP) { 56 if (options & IO_MAINLOOP) {
57 message_loop_.reset(new base::MessageLoopForIO()); 57 message_loop_.reset(new base::MessageLoopForIO());
58 } else { 58 } else {
59 message_loop_.reset(new base::MessageLoopForUI()); 59 message_loop_.reset(new base::MessageLoopForUI());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 if (options & REAL_IO_THREAD) { 109 if (options & REAL_IO_THREAD) {
110 io_thread_.reset(new TestBrowserThread(BrowserThread::IO)); 110 io_thread_.reset(new TestBrowserThread(BrowserThread::IO));
111 io_thread_->StartIOThread(); 111 io_thread_->StartIOThread();
112 } else { 112 } else {
113 io_thread_.reset( 113 io_thread_.reset(
114 new TestBrowserThread(BrowserThread::IO, message_loop_.get())); 114 new TestBrowserThread(BrowserThread::IO, message_loop_.get()));
115 } 115 }
116 } 116 }
117 117
118 } // namespace content 118 } // namespace content
OLDNEW
« no previous file with comments | « content/public/test/content_test_suite_base.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698