OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 // Creates an instance of the test_shell. | 5 // Creates an instance of the test_shell. |
6 #include "build/build_config.h" | 6 #include "build/build_config.h" |
7 | 7 |
8 #include <stdlib.h> // required by _set_abort_behavior | 8 #include <stdlib.h> // required by _set_abort_behavior |
9 | 9 |
10 #if defined(OS_WIN) | 10 #if defined(OS_WIN) |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 #ifdef _CRTDBG_MAP_ALLOC | 127 #ifdef _CRTDBG_MAP_ALLOC |
128 _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); | 128 _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); |
129 _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE); | 129 _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE); |
130 #endif | 130 #endif |
131 // Some tests may use base::Singleton<>, thus we need to instanciate | 131 // Some tests may use base::Singleton<>, thus we need to instanciate |
132 // the AtExitManager or else we will leak objects. | 132 // the AtExitManager or else we will leak objects. |
133 base::AtExitManager at_exit_manager; | 133 base::AtExitManager at_exit_manager; |
134 | 134 |
135 #if defined(OS_LINUX) | 135 #if defined(OS_LINUX) |
136 gtk_init(&argc, &argv); | 136 gtk_init(&argc, &argv); |
137 // Only parse the command line after GTK's had a crack at it. | |
138 CommandLine::SetArgcArgv(argc, argv); | |
139 #endif | 137 #endif |
140 | 138 |
141 CommandLine parsed_command_line; | 139 // Only parse the command line after GTK's had a crack at it. |
| 140 CommandLine::Init(argc, argv); |
| 141 |
| 142 const CommandLine& parsed_command_line = *CommandLine::ForCurrentProcess(); |
142 if (parsed_command_line.HasSwitch(test_shell::kStartupDialog)) | 143 if (parsed_command_line.HasSwitch(test_shell::kStartupDialog)) |
143 TestShell::ShowStartupDebuggingDialog(); | 144 TestShell::ShowStartupDebuggingDialog(); |
144 | 145 |
145 if (parsed_command_line.HasSwitch(test_shell::kCheckLayoutTestSystemDeps)) { | 146 if (parsed_command_line.HasSwitch(test_shell::kCheckLayoutTestSystemDeps)) { |
146 exit(CheckLayoutTestSystemDependencies() ? 0 : 1); | 147 exit(CheckLayoutTestSystemDependencies() ? 0 : 1); |
147 } | 148 } |
148 | 149 |
149 // Allocate a message loop for this thread. Although it is not used | 150 // Allocate a message loop for this thread. Although it is not used |
150 // directly, its constructor sets up some necessary state. | 151 // directly, its constructor sets up some necessary state. |
151 MessageLoopForUI main_message_loop; | 152 MessageLoopForUI main_message_loop; |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 | 259 |
259 // Default to a homepage if we're interactive. | 260 // Default to a homepage if we're interactive. |
260 if (!layout_test_mode) { | 261 if (!layout_test_mode) { |
261 PathService::Get(base::DIR_SOURCE_ROOT, &uri); | 262 PathService::Get(base::DIR_SOURCE_ROOT, &uri); |
262 file_util::AppendToPath(&uri, L"webkit"); | 263 file_util::AppendToPath(&uri, L"webkit"); |
263 file_util::AppendToPath(&uri, L"data"); | 264 file_util::AppendToPath(&uri, L"data"); |
264 file_util::AppendToPath(&uri, L"test_shell"); | 265 file_util::AppendToPath(&uri, L"test_shell"); |
265 file_util::AppendToPath(&uri, L"index.html"); | 266 file_util::AppendToPath(&uri, L"index.html"); |
266 } | 267 } |
267 | 268 |
268 if (parsed_command_line.GetLooseValueCount() > 0) { | 269 std::vector<std::wstring> loose_values = parsed_command_line.GetLooseValues(); |
269 CommandLine::LooseValueIterator iter( | 270 if (loose_values.size() > 0) |
270 parsed_command_line.GetLooseValuesBegin()); | 271 uri = loose_values[0]; |
271 uri = *iter; | |
272 } | |
273 | 272 |
274 std::wstring js_flags = | 273 std::wstring js_flags = |
275 parsed_command_line.GetSwitchValue(test_shell::kJavaScriptFlags); | 274 parsed_command_line.GetSwitchValue(test_shell::kJavaScriptFlags); |
276 // Test shell always exposes the GC. | 275 // Test shell always exposes the GC. |
277 CommandLine::AppendSwitch(&js_flags, L"expose-gc"); | 276 js_flags += L" --expose-gc"; |
278 webkit_glue::SetJavaScriptFlags(js_flags); | 277 webkit_glue::SetJavaScriptFlags(js_flags); |
279 // Also expose GCController to JavaScript. | 278 // Also expose GCController to JavaScript. |
280 webkit_glue::SetShouldExposeGCController(true); | 279 webkit_glue::SetShouldExposeGCController(true); |
281 | 280 |
282 // Load and initialize the stats table. Attempt to construct a somewhat | 281 // Load and initialize the stats table. Attempt to construct a somewhat |
283 // unique name to isolate separate instances from each other. | 282 // unique name to isolate separate instances from each other. |
284 StatsTable *table = new StatsTable( | 283 StatsTable *table = new StatsTable( |
285 kStatsFilePrefix + Uint64ToString(base::RandUint64()), | 284 kStatsFilePrefix + Uint64ToString(base::RandUint64()), |
286 kStatsFileThreads, | 285 kStatsFileThreads, |
287 kStatsFileCounters); | 286 kStatsFileCounters); |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 | 394 |
396 // Tear down shared StatsTable; prevents unit_tests from leaking it. | 395 // Tear down shared StatsTable; prevents unit_tests from leaking it. |
397 StatsTable::set_current(NULL); | 396 StatsTable::set_current(NULL); |
398 delete table; | 397 delete table; |
399 | 398 |
400 #ifdef _CRTDBG_MAP_ALLOC | 399 #ifdef _CRTDBG_MAP_ALLOC |
401 _CrtDumpMemoryLeaks(); | 400 _CrtDumpMemoryLeaks(); |
402 #endif | 401 #endif |
403 return 0; | 402 return 0; |
404 } | 403 } |
OLD | NEW |