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

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

Issue 1232973002: Crash tests when BrowserTestBase::SetUp is not called (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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/browser_test_base.h ('k') | content/public/test/content_browser_test.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/browser_test_base.h" 5 #include "content/public/test/browser_test_base.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/debug/stack_trace.h" 9 #include "base/debug/stack_trace.h"
10 #include "base/i18n/icu_util.h" 10 #include "base/i18n/icu_util.h"
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 quit.Run(); 130 quit.Run();
131 } 131 }
132 132
133 } // namespace 133 } // namespace
134 134
135 extern int BrowserMain(const MainFunctionParams&); 135 extern int BrowserMain(const MainFunctionParams&);
136 136
137 BrowserTestBase::BrowserTestBase() 137 BrowserTestBase::BrowserTestBase()
138 : expected_exit_code_(0), 138 : expected_exit_code_(0),
139 enable_pixel_output_(false), 139 enable_pixel_output_(false),
140 use_software_compositing_(false) { 140 use_software_compositing_(false),
141 set_up_called_(false) {
141 #if defined(OS_MACOSX) 142 #if defined(OS_MACOSX)
142 base::mac::SetOverrideAmIBundled(true); 143 base::mac::SetOverrideAmIBundled(true);
143 #endif 144 #endif
144 145
145 #if defined(USE_AURA) 146 #if defined(USE_AURA)
146 #if defined(USE_X11) 147 #if defined(USE_X11)
147 aura::test::SetUseOverrideRedirectWindowByDefault(true); 148 aura::test::SetUseOverrideRedirectWindowByDefault(true);
148 #endif 149 #endif
149 aura::test::InitializeAuraEventGeneratorDelegate(); 150 aura::test::InitializeAuraEventGeneratorDelegate();
150 #endif 151 #endif
151 152
152 #if defined(OS_POSIX) 153 #if defined(OS_POSIX)
153 handle_sigterm_ = true; 154 handle_sigterm_ = true;
154 #endif 155 #endif
155 156
156 // This is called through base::TestSuite initially. It'll also be called 157 // This is called through base::TestSuite initially. It'll also be called
157 // inside BrowserMain, so tell the code to ignore the check that it's being 158 // inside BrowserMain, so tell the code to ignore the check that it's being
158 // called more than once 159 // called more than once
159 base::i18n::AllowMultipleInitializeCallsForTesting(); 160 base::i18n::AllowMultipleInitializeCallsForTesting();
160 161
161 embedded_test_server_.reset(new net::test_server::EmbeddedTestServer); 162 embedded_test_server_.reset(new net::test_server::EmbeddedTestServer);
162 } 163 }
163 164
164 BrowserTestBase::~BrowserTestBase() { 165 BrowserTestBase::~BrowserTestBase() {
165 #if defined(OS_ANDROID) 166 #if defined(OS_ANDROID)
166 // RemoteTestServer can cause wait on the UI thread. 167 // RemoteTestServer can cause wait on the UI thread.
167 base::ThreadRestrictions::ScopedAllowWait allow_wait; 168 base::ThreadRestrictions::ScopedAllowWait allow_wait;
168 test_server_.reset(NULL); 169 test_server_.reset(NULL);
169 #endif 170 #endif
171
172 CHECK(set_up_called_) << "SetUp was not called. This probably means that the "
173 "developer has overridden the method and not called "
174 "the superclass version. In this case, the test "
175 "does not run and reports a false positive result.";
170 } 176 }
171 177
172 void BrowserTestBase::SetUp() { 178 void BrowserTestBase::SetUp() {
179 set_up_called_ = true;
180
173 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 181 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
174 182
175 // Override the child process connection timeout since tests can exceed that 183 // Override the child process connection timeout since tests can exceed that
176 // when sharded. 184 // when sharded.
177 command_line->AppendSwitchASCII( 185 command_line->AppendSwitchASCII(
178 switches::kIPCConnectionTimeout, 186 switches::kIPCConnectionTimeout,
179 base::IntToString(TestTimeouts::action_max_timeout().InSeconds())); 187 base::IntToString(TestTimeouts::action_max_timeout().InSeconds()));
180 188
181 // The tests assume that file:// URIs can freely access other file:// URIs. 189 // The tests assume that file:// URIs can freely access other file:// URIs.
182 command_line->AppendSwitch(switches::kAllowFileAccessFromFiles); 190 command_line->AppendSwitch(switches::kAllowFileAccessFromFiles);
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 use_software_compositing_ = true; 356 use_software_compositing_ = true;
349 } 357 }
350 358
351 bool BrowserTestBase::UsingOSMesa() const { 359 bool BrowserTestBase::UsingOSMesa() const {
352 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); 360 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess();
353 return cmd->GetSwitchValueASCII(switches::kUseGL) == 361 return cmd->GetSwitchValueASCII(switches::kUseGL) ==
354 gfx::kGLImplementationOSMesaName; 362 gfx::kGLImplementationOSMesaName;
355 } 363 }
356 364
357 } // namespace content 365 } // namespace content
OLDNEW
« no previous file with comments | « content/public/test/browser_test_base.h ('k') | content/public/test/content_browser_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698