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

Unified Diff: webkit/tools/test_shell/test_shell_main.cc

Issue 15028002: Delete test_shell. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add dummy test_shell build target. Created 7 years, 7 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
Index: webkit/tools/test_shell/test_shell_main.cc
diff --git a/webkit/tools/test_shell/test_shell_main.cc b/webkit/tools/test_shell/test_shell_main.cc
deleted file mode 100644
index 38e70e017deacd443f5cfa2ce2a3a902ffd9f017..0000000000000000000000000000000000000000
--- a/webkit/tools/test_shell/test_shell_main.cc
+++ /dev/null
@@ -1,270 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/at_exit.h"
-#include "base/basictypes.h"
-#include "base/command_line.h"
-#include "base/debug/stack_trace.h"
-#include "base/debug/trace_event.h"
-#include "base/environment.h"
-#include "base/event_recorder.h"
-#include "base/file_util.h"
-#include "base/files/file_path.h"
-#include "base/i18n/icu_util.h"
-#include "base/message_loop.h"
-#include "base/metrics/stats_table.h"
-#include "base/path_service.h"
-#include "base/process_util.h"
-#include "base/rand_util.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/sys_info.h"
-#include "base/utf_string_conversions.h"
-#include "net/base/net_module.h"
-#include "net/base/net_util.h"
-#include "net/cookies/cookie_monster.h"
-#include "net/http/http_cache.h"
-#include "net/http/http_util.h"
-#include "net/test/spawned_test_server.h"
-#include "net/url_request/url_request_context.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebKit.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptController.h"
-#include "ui/base/window_open_disposition.h"
-#include "ui/gl/gl_implementation.h"
-#include "ui/gl/gl_switches.h"
-#include "webkit/glue/webkit_glue.h"
-#include "webkit/glue/webpreferences.h"
-#include "webkit/tools/test_shell/simple_resource_loader_bridge.h"
-#include "webkit/tools/test_shell/test_shell.h"
-#include "webkit/tools/test_shell/test_shell_platform_delegate.h"
-#include "webkit/tools/test_shell/test_shell_request_context.h"
-#include "webkit/tools/test_shell/test_shell_switches.h"
-#include "webkit/tools/test_shell/test_shell_webkit_init.h"
-
-#if defined(OS_WIN)
-#pragma warning(disable: 4996)
-#endif
-
-static const size_t kPathBufSize = 2048;
-
-using WebKit::WebScriptController;
-
-namespace {
-
-// StatsTable initialization parameters.
-const char* const kStatsFilePrefix = "testshell_";
-int kStatsFileThreads = 20;
-int kStatsFileCounters = 200;
-
-void RemoveSharedMemoryFile(std::string& filename) {
- // Stats uses SharedMemory under the hood. On posix, this results in a file
- // on disk.
-#if defined(OS_POSIX)
- base::SharedMemory memory;
- memory.Delete(filename);
-#endif
-}
-
-} // namespace
-
-int main(int argc, char* argv[]) {
- base::debug::EnableInProcessStackDumping();
- base::EnableTerminationOnHeapCorruption();
-
- // Some tests may use base::Singleton<>, thus we need to instanciate
- // the AtExitManager or else we will leak objects.
- base::AtExitManager at_exit_manager;
-
- TestShellPlatformDelegate::PreflightArgs(&argc, &argv);
- CommandLine::Init(argc, argv);
- const CommandLine& parsed_command_line = *CommandLine::ForCurrentProcess();
-
- TestShellPlatformDelegate platform(parsed_command_line);
-
- if (parsed_command_line.HasSwitch(test_shell::kStartupDialog))
- TestShell::ShowStartupDebuggingDialog();
-
- if (parsed_command_line.HasSwitch(test_shell::kCheckLayoutTestSystemDeps)) {
- exit(platform.CheckLayoutTestSystemDependencies() ? 0 : 1);
- }
-
- // Allocate a message loop for this thread. Although it is not used
- // directly, its constructor sets up some necessary state.
- MessageLoopForUI main_message_loop;
-
- scoped_ptr<base::Environment> env(base::Environment::Create());
- bool suppress_error_dialogs = (
- env->HasVar("CHROME_HEADLESS") ||
- parsed_command_line.HasSwitch(test_shell::kNoErrorDialogs));
- bool ux_theme = parsed_command_line.HasSwitch(test_shell::kUxTheme);
-#if defined(OS_MACOSX)
- // The "classic theme" flag is meaningless on OS X. But there is a bunch
- // of code that sets up the environment for running pixel tests that only
- // runs if it's set to true.
- bool classic_theme = true;
-#else
- bool classic_theme =
- parsed_command_line.HasSwitch(test_shell::kClassicTheme);
-#endif // !OS_MACOSX
-#if defined(OS_WIN)
- bool generic_theme = parsed_command_line.HasSwitch(test_shell::kGenericTheme);
-#else
- // Stop compiler warnings about unused variables.
- static_cast<void>(ux_theme);
-#endif
-
- bool enable_gp_fault_error_box = false;
- enable_gp_fault_error_box =
- parsed_command_line.HasSwitch(test_shell::kGPFaultErrorBox);
-
- bool allow_external_pages =
- parsed_command_line.HasSwitch(test_shell::kAllowExternalPages);
-
- if (parsed_command_line.HasSwitch(test_shell::kEnableAccel2DCanvas))
- TestShell::SetAccelerated2dCanvasEnabled(true);
- if (parsed_command_line.HasSwitch(test_shell::kEnableAccelCompositing))
- TestShell::SetAcceleratedCompositingEnabled(true);
-
- bool layout_test_mode = false;
- TestShell::InitLogging(suppress_error_dialogs,
- layout_test_mode,
- enable_gp_fault_error_box);
-
- // Initialize WebKit for this scope.
- TestShellWebKitInit test_shell_webkit_init(layout_test_mode);
-
- // Suppress abort message in v8 library in debugging mode (but not
- // actually under a debugger). V8 calls abort() when it hits
- // assertion errors.
- if (suppress_error_dialogs) {
- platform.SuppressErrorReporting();
- }
-
- net::HttpCache::Mode cache_mode = net::HttpCache::NORMAL;
-
- if (parsed_command_line.HasSwitch(test_shell::kEnableFileCookies))
- net::CookieMonster::EnableFileScheme();
-
- base::FilePath cache_path =
- parsed_command_line.GetSwitchValuePath(test_shell::kCacheDir);
- if (cache_path.empty()) {
- PathService::Get(base::DIR_EXE, &cache_path);
- cache_path = cache_path.AppendASCII("cache");
- }
-
- // Initializing with a default context, which means no on-disk cookie DB,
- // and no support for directory listings.
- SimpleResourceLoaderBridge::Init(cache_path, cache_mode, layout_test_mode);
-
- // Load ICU data tables
- icu_util::Initialize();
-
- // Config the modules that need access to a limited set of resources.
- net::NetModule::SetResourceProvider(TestShell::ResourceProvider);
-
- platform.InitializeGUI();
-
- TestShell::InitializeTestShell(layout_test_mode, allow_external_pages);
-
- if (parsed_command_line.HasSwitch(test_shell::kAllowScriptsToCloseWindows))
- TestShell::SetAllowScriptsToCloseWindows();
-
- if (parsed_command_line.HasSwitch(test_shell::kEnableSmoothScrolling))
- TestShell::GetWebPreferences()->enable_scroll_animator = true;
-
- // Disable user themes for layout tests so pixel tests are consistent.
-#if defined(OS_WIN)
- TestShellWebTheme::Engine engine;
-#endif
- if (classic_theme)
- platform.SelectUnifiedTheme();
-#if defined(OS_WIN)
- if (generic_theme)
- test_shell_webkit_init.SetThemeEngine(&engine);
-#endif
-
- // Unless specifically requested otherwise, default to OSMesa for GL.
- if (!parsed_command_line.HasSwitch(switches::kUseGL))
- gfx::InitializeGLBindings(gfx::kGLImplementationOSMesaGL);
-
- // Treat the first argument as the initial URL to open.
- GURL starting_url;
-
- base::FilePath path;
- PathService::Get(base::DIR_SOURCE_ROOT, &path);
- path = path.AppendASCII("webkit").AppendASCII("data")
- .AppendASCII("test_shell").AppendASCII("index.html");
- starting_url = net::FilePathToFileURL(path);
-
- const CommandLine::StringVector& args = parsed_command_line.GetArgs();
- if (!args.empty()) {
- GURL url(args[0]);
- if (url.is_valid()) {
- starting_url = url;
- } else {
- // Treat as a relative file path.
- base::FilePath path = base::MakeAbsoluteFilePath(base::FilePath(args[0]));
- starting_url = net::FilePathToFileURL(path);
- }
- }
-
- // Get the JavaScript flags. The test runner might send a quoted string which
- // needs to be unquoted before further processing.
- std::string js_flags =
- parsed_command_line.GetSwitchValueASCII(test_shell::kJavaScriptFlags);
- js_flags = net::HttpUtil::Unquote(js_flags);
- // Split the JavaScript flags into a list.
- std::vector<std::string> js_flags_list;
- size_t start = 0;
- while (true) {
- size_t comma_pos = js_flags.find_first_of(',', start);
- std::string flags;
- if (comma_pos == std::string::npos) {
- flags = js_flags.substr(start, js_flags.length() - start);
- } else {
- flags = js_flags.substr(start, comma_pos - start);
- start = comma_pos + 1;
- }
- js_flags_list.push_back(flags);
- if (comma_pos == std::string::npos)
- break;
- }
- TestShell::SetJavaScriptFlags(js_flags_list);
-
- // Test shell always exposes the GC.
- webkit_glue::SetJavaScriptFlags("--expose-gc");
-
- // Load and initialize the stats table. Attempt to construct a somewhat
- // unique name to isolate separate instances from each other.
-
- // truncate the random # to 32 bits for the benefit of Mac OS X, to
- // avoid tripping over its maximum shared memory segment name length
- std::string stats_filename = kStatsFilePrefix +
- base::Uint64ToString(base::RandUint64() & 0xFFFFFFFFL);
- RemoveSharedMemoryFile(stats_filename);
- base::StatsTable *table = new base::StatsTable(stats_filename,
- kStatsFileThreads,
- kStatsFileCounters);
- base::StatsTable::set_current(table);
-
- TestShell* shell;
- if (TestShell::CreateNewWindow(starting_url, &shell)) {
- shell->Show(WebKit::WebNavigationPolicyNewWindow);
-
- if (parsed_command_line.HasSwitch(test_shell::kDumpStatsTable))
- shell->DumpStatsTableOnExit();
-
- webkit_glue::SetJavaScriptFlags(TestShell::GetJSFlagsForLoad(0));
- MessageLoop::current()->Run();
- }
-
- TestShell::ShutdownTestShell();
- TestShell::CleanupLogging();
-
- // Tear down shared StatsTable; prevents unit_tests from leaking it.
- base::StatsTable::set_current(NULL);
- delete table;
- RemoveSharedMemoryFile(stats_filename);
-
- return 0;
-}

Powered by Google App Engine
This is Rietveld 408576698