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

Unified Diff: chrome/test/ui/ui_test.cc

Issue 27240: Make startup_tests build and run on Linux (except reference tests). (Closed)
Patch Set: small bugfix in process_util Created 11 years, 10 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 | « chrome/test/ui/ui_test.h ('k') | chrome/test/ui/ui_tests.scons » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/ui/ui_test.cc
diff --git a/chrome/test/ui/ui_test.cc b/chrome/test/ui/ui_test.cc
index 2ad0952ce1ea156b01bb83b7092908d1808b0c46..fdcad822b656f5603bdc46e7fd10e998fa5d99bb 100644
--- a/chrome/test/ui/ui_test.cc
+++ b/chrome/test/ui/ui_test.cc
@@ -24,13 +24,14 @@
#include "chrome/common/debug_flags.h"
#include "chrome/common/logging_chrome.h"
#include "chrome/common/json_value_serializer.h"
+#include "chrome/test/automation/automation_proxy.h"
+#include "chrome/test/automation/browser_proxy.h"
#include "googleurl/src/gurl.h"
#include "net/base/net_util.h"
#if defined(OS_WIN)
// TODO(port): these just need to be ported.
#include "chrome/common/chrome_process_filter.h"
-#include "chrome/test/automation/browser_proxy.h"
#include "chrome/test/automation/tab_proxy.h"
#include "chrome/test/automation/window_proxy.h"
#endif
@@ -211,7 +212,6 @@ void UITest::InitializeTimeouts() {
}
void UITest::LaunchBrowserAndServer() {
-#if defined(OS_WIN)
// Set up IPC testing interface server.
server_.reset(new AutomationProxy(command_execution_timeout_ms_));
@@ -219,26 +219,17 @@ void UITest::LaunchBrowserAndServer() {
if (wait_for_initial_loads_)
ASSERT_TRUE(server_->WaitForInitialLoads());
else
- Sleep(2000);
+ PlatformThread::Sleep(2000);
automation()->SetFilteredInet(true);
-#else
- // TODO(port): depends on AutomationProxy.
- NOTIMPLEMENTED();
-#endif
}
void UITest::CloseBrowserAndServer() {
QuitBrowser();
CleanupAppProcesses();
-#if defined(OS_WIN)
// Shut down IPC testing interface.
server_.reset();
-#else
- // TODO(port): depends on AutomationProxy.
- NOTIMPLEMENTED();
-#endif
}
void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) {
@@ -265,7 +256,6 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) {
if (dom_automation_enabled_)
command_line.AppendSwitch(switches::kDomAutomationController);
-#if defined(OS_WIN)
if (include_testing_id_) {
if (use_existing_browser_) {
// TODO(erikkay): The new switch depends on a browser instance already
@@ -280,10 +270,6 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) {
server_->channel_id());
}
}
-#else
- // TODO(port): depends on AutomationProxy.
- NOTIMPLEMENTED();
-#endif
if (!show_error_dialogs_ &&
!CommandLine::ForCurrentProcess()->HasSwitch(kEnableErrorDialogs)) {
@@ -346,7 +332,6 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) {
if (clear_profile)
ASSERT_TRUE(DieFileDie(user_data_dir_, true));
-#if defined(OS_WIN)
if (!template_user_data_.empty()) {
// Recursively copy the template directory to the user_data_dir.
ASSERT_TRUE(file_util::CopyRecursiveDirNoCache(template_user_data_,
@@ -355,13 +340,21 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) {
browser_launch_time_ = TimeTicks::Now();
+#if defined(OS_WIN)
bool started = base::LaunchApp(command_line,
false, // Don't wait for process object
// (doesn't work for us)
!show_window_,
&process_);
- ASSERT_EQ(started, true);
+#elif defined(OS_POSIX)
+ bool started = base::LaunchApp(command_line.argv(),
+ server_->fds_to_map(),
+ false, // Don't wait.
+ &process_);
+#endif
+ ASSERT_TRUE(started);
+#if defined(OS_WIN)
if (use_existing_browser_) {
DWORD pid = 0;
HWND hwnd = FindWindowEx(HWND_MESSAGE, NULL, chrome::kMessageWindowClass,
@@ -381,7 +374,6 @@ void UITest::LaunchBrowser(const CommandLine& arguments, bool clear_profile) {
}
void UITest::QuitBrowser() {
-#if defined(OS_WIN)
typedef std::vector<BrowserProxy*> BrowserVector;
// There's nothing to do here if the browser is not running.
@@ -416,7 +408,7 @@ void UITest::QuitBrowser() {
#ifdef WAIT_FOR_DEBUGGER_ON_OPEN
timeout = 500000;
#endif
- if (WAIT_TIMEOUT == WaitForSingleObject(process_, timeout)) {
+ if (!base::WaitForSingleProcess(process_, timeout)) {
// We need to force the browser to quit because it didn't quit fast
// enough. Take no chance and kill every chrome processes.
CleanupAppProcesses();
@@ -424,19 +416,15 @@ void UITest::QuitBrowser() {
}
// Don't forget to close the handle
- CloseHandle(process_);
+ base::CloseProcessHandle(process_);
process_ = NULL;
-#else
- // TODO(port): depends on AutomationProxy.
- NOTIMPLEMENTED();
-#endif // OS_WIN
}
void UITest::AssertAppNotRunning(const std::wstring& error_message) {
#if defined(OS_WIN)
ASSERT_EQ(0, GetBrowserProcessCount()) << error_message;
#else
- // TODO(port): depends on AutomationProxy.
+ // TODO(port): Enable when chrome_process_filter is ported.
NOTIMPLEMENTED();
#endif
}
@@ -570,6 +558,7 @@ std::wstring UITest::GetActiveTabTitle() {
EXPECT_TRUE(tab_proxy->GetTabTitle(&title));
return title;
}
+#endif // defined(OS_WIN)
bool UITest::IsBrowserRunning() {
return CrashAwareSleep(0);
@@ -579,6 +568,9 @@ bool UITest::CrashAwareSleep(int time_out_ms) {
return base::CrashAwareSleep(process_, time_out_ms);
}
+#if defined(OS_WIN)
+// TODO(port): Port these.
+
/*static*/
int UITest::GetBrowserProcessCount() {
BrowserProcessFilter filter(L"");
@@ -724,37 +716,6 @@ bool UITest::CloseBrowser(BrowserProxy* browser,
return result;
}
-void UITest::PrintResult(const std::wstring& measurement,
- const std::wstring& modifier,
- const std::wstring& trace,
- size_t value,
- const std::wstring& units,
- bool important) {
- std::wstring value_str = StringPrintf(L"%d", value);
- PrintResultsImpl(measurement, modifier, trace, value_str,
- L"", L"", units, important);
-}
-
-void UITest::PrintResultMeanAndError(const std::wstring& measurement,
- const std::wstring& modifier,
- const std::wstring& trace,
- const std::wstring& mean_and_error,
- const std::wstring& units,
- bool important) {
- PrintResultsImpl(measurement, modifier, trace, mean_and_error,
- L"{", L"}", units, important);
-}
-
-void UITest::PrintResultList(const std::wstring& measurement,
- const std::wstring& modifier,
- const std::wstring& trace,
- const std::wstring& values,
- const std::wstring& units,
- bool important) {
- PrintResultsImpl(measurement, modifier, trace, values,
- L"[", L"]", units, important);
-}
-
GURL UITest::GetTestUrl(const std::wstring& test_directory,
const std::wstring &test_case) {
std::wstring path;
@@ -791,6 +752,39 @@ void UITest::WaitForFinish(const std::string &name,
EXPECT_EQ(true, test_result);
}
+#endif // OS_WIN
+
+void UITest::PrintResult(const std::wstring& measurement,
+ const std::wstring& modifier,
+ const std::wstring& trace,
+ size_t value,
+ const std::wstring& units,
+ bool important) {
+ std::wstring value_str = StringPrintf(L"%d", value);
+ PrintResultsImpl(measurement, modifier, trace, value_str,
+ L"", L"", units, important);
+}
+
+void UITest::PrintResultMeanAndError(const std::wstring& measurement,
+ const std::wstring& modifier,
+ const std::wstring& trace,
+ const std::wstring& mean_and_error,
+ const std::wstring& units,
+ bool important) {
+ PrintResultsImpl(measurement, modifier, trace, mean_and_error,
+ L"{", L"}", units, important);
+}
+
+void UITest::PrintResultList(const std::wstring& measurement,
+ const std::wstring& modifier,
+ const std::wstring& trace,
+ const std::wstring& values,
+ const std::wstring& units,
+ bool important) {
+ PrintResultsImpl(measurement, modifier, trace, values,
+ L"[", L"]", units, important);
+}
+
void UITest::PrintResultsImpl(const std::wstring& measurement,
const std::wstring& modifier,
const std::wstring& trace,
@@ -807,5 +801,3 @@ void UITest::PrintResultsImpl(const std::wstring& measurement,
trace.c_str(), prefix.c_str(), values.c_str(), suffix.c_str(),
units.c_str());
}
-
-#endif // OS_WIN
« no previous file with comments | « chrome/test/ui/ui_test.h ('k') | chrome/test/ui/ui_tests.scons » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698