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

Unified Diff: content/test/out_of_proc_test_runner.cc

Issue 8036044: Add (not yet working) content_browsertests target. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 3 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
« no previous file with comments | « content/content_tests.gypi ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/test/out_of_proc_test_runner.cc
===================================================================
--- content/test/out_of_proc_test_runner.cc (revision 102172)
+++ content/test/out_of_proc_test_runner.cc (working copy)
@@ -21,26 +21,29 @@
#include "base/test/test_timeouts.h"
#include "base/time.h"
#include "base/utf_string_conversions.h"
-#include "chrome/common/chrome_switches.h"
-#include "chrome/test/base/chrome_test_suite.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "chrome/test/base/test_launcher_utils.h"
+#include "content/test/browser_test.h"
sky 2011/09/27 15:31:52 Are these classes landing separately?
+#include "content/test/browser_test_suite.h"
#include "net/base/escape.h"
#include "testing/gtest/include/gtest/gtest.h"
#if defined(OS_WIN)
#include "base/base_switches.h"
-#include "chrome/common/chrome_constants.h"
#include "content/common/sandbox_policy.h"
#include "sandbox/src/dep.h"
#include "sandbox/src/sandbox_factory.h"
#include "sandbox/src/sandbox_types.h"
#endif // defined(OS_WIN)
+#if defined(BROWSER_TESTS_USE_CHROME)
+#include "chrome/common/chrome_switches.h"
+#include "chrome/common/chrome_constants.h"
+
#if defined(OS_MACOSX)
#include "chrome/browser/chrome_browser_application_mac.h"
#endif // defined(OS_MACOSX)
+#endif // defined(BROWSER_TESTS_USE_CHROME)
+
#if defined(OS_WIN)
// The entry point signature of chrome.dll.
typedef int (*DLL_MAIN)(HINSTANCE, sandbox::SandboxInterfaceInfo*, wchar_t*);
@@ -303,6 +306,28 @@
}
}
+namespace {
+
+// A multiplier for slow tests. We generally avoid multiplying
+// test timeouts by any constants. Here it is used as last resort
+// to implement the SLOW_ test prefix.
+static const int kSlowTestTimeoutMultiplier = 5;
+
+} // namespace
+
+int GetTestTerminationTimeout(const std::string& test_name,
+ int default_timeout_ms) {
+ int timeout_ms = default_timeout_ms;
+
+ // Make it possible for selected tests to request a longer timeout.
+ // Generally tests should really avoid doing too much, and splitting
+ // a test instead of using SLOW prefix is strongly preferred.
+ if (test_name.find("SLOW_") != std::string::npos)
+ timeout_ms *= kSlowTestTimeoutMultiplier;
+
+ return timeout_ms;
+}
+
// Runs test specified by |test_name| in a child process,
// and returns the exit code.
int RunTest(const std::string& test_name, int default_timeout_ms) {
@@ -324,8 +349,10 @@
// has been shut down and will actually crash).
switches.erase(kGTestRepeatFlag);
+#if defined(BROWSER_TESTS_USE_CHROME)
// Strip out user-data-dir if present. We will add it back in again later.
switches.erase(switches::kUserDataDir);
+#endif // defined(BROWSER_TESTS_USE_CHROME)
for (CommandLine::SwitchMap::const_iterator iter = switches.begin();
iter != switches.end(); ++iter) {
@@ -342,6 +369,7 @@
// failure status back to the parent.
new_cmd_line.AppendSwitch(base::TestSuite::kStrictFailureHandling);
+#if defined(BROWSER_TESTS_USE_CHROME)
// Create a new user data dir and pass it to the child.
ScopedTempDir temp_dir;
if (!temp_dir.CreateUniqueTempDir() || !temp_dir.IsValid()) {
@@ -352,6 +380,7 @@
// file:// access for ChromeOS.
new_cmd_line.AppendSwitch(switches::kAllowFileAccess);
+#endif // defined(BROWSER_TESTS_USE_CHROME)
const char* browser_wrapper = getenv("BROWSER_WRAPPER");
if (browser_wrapper) {
@@ -378,9 +407,8 @@
if (!base::LaunchProcess(new_cmd_line, options, &process_handle))
return false;
- int timeout_ms =
- test_launcher_utils::GetTestTerminationTimeout(test_name,
- default_timeout_ms);
+ int timeout_ms = GetTestTerminationTimeout(test_name,
+ default_timeout_ms);
int exit_code = 0;
if (!base::WaitForExitCodeWithTimeout(process_handle, &exit_code,
@@ -576,10 +604,10 @@
}
}
#endif
- return ChromeTestSuite(argc, argv).Run();
+ return BrowserTestSuite(argc, argv).Run();
}
-#if defined(OS_WIN)
+#if defined(OS_WIN) && defined(BROWSER_TESTS_USE_CHROME)
if (command_line->HasSwitch(switches::kProcessType)) {
// This is a child process, call ChromeMain.
FilePath chrome_path(command_line->GetProgram().DirName());
@@ -595,7 +623,7 @@
sandbox_info.target_services = sandbox::SandboxFactory::GetTargetServices();
return entry_point(GetModuleHandle(NULL), &sandbox_info, GetCommandLineW());
}
-#endif
+#endif // defined(OS_WIN) && defined(BROWSER_TESTS_USE_CHROME)
int32 total_shards;
int32 shard_index;
« no previous file with comments | « content/content_tests.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698