Index: chrome/test/page_cycler/page_cycler_test.cc |
diff --git a/chrome/test/page_cycler/page_cycler_test.cc b/chrome/test/page_cycler/page_cycler_test.cc |
index 308581a3df15f25f79e4d6074707d4b49f002c61..e3aae9643b75661eb1e284c87880284b3e4b7851 100644 |
--- a/chrome/test/page_cycler/page_cycler_test.cc |
+++ b/chrome/test/page_cycler/page_cycler_test.cc |
@@ -16,7 +16,6 @@ |
#include "chrome/test/automation/window_proxy.h" |
#include "chrome/test/chrome_process_util.h" |
#include "chrome/test/ui/ui_test.h" |
-#include "chrome/test/perf/mem_usage.h" |
#include "googleurl/src/gurl.h" |
#include "net/base/net_util.h" |
@@ -84,8 +83,6 @@ class PageCyclerTest : public UITest { |
ASSERT_FALSE(timings->empty()); |
} |
-#if defined(OS_WIN) |
- // TODO(port): Port chrome_process_util and remove windowsisms. |
void PrintIOPerfInfo(const char* test_name) { |
FilePath data_dir; |
PathService::Get(chrome::DIR_USER_DATA, &data_dir); |
@@ -100,10 +97,10 @@ class PageCyclerTest : public UITest { |
} |
scoped_ptr<base::ProcessMetrics> process_metrics; |
- IO_COUNTERS io_counters; |
process_metrics.reset( |
base::ProcessMetrics::CreateProcessMetrics(process_handle)); |
- ZeroMemory(&io_counters, sizeof(io_counters)); |
+ IoCounters io_counters; |
+ memset(&io_counters, 0, sizeof(io_counters)); |
if (process_metrics.get()->GetIOCounters(&io_counters)) { |
// Print out IO performance. We assume that the values can be |
@@ -163,35 +160,50 @@ class PageCyclerTest : public UITest { |
ChromeProcessList::const_iterator it; |
for (it = chrome_processes.begin(); it != chrome_processes.end(); ++it) { |
- size_t peak_virtual_size; |
- size_t current_virtual_size; |
- size_t peak_working_set_size; |
- size_t current_working_set_size; |
- if (GetMemoryInfo(*it, &peak_virtual_size, ¤t_virtual_size, |
- &peak_working_set_size, ¤t_working_set_size)) { |
- std::string chrome_name = (*it == browser_process_pid) ? "_b" : "_r"; |
- |
- std::string trace_name(test_name); |
- PrintResult("vm_peak", chrome_name, |
- "vm_pk" + chrome_name + trace_name, |
- peak_virtual_size, "bytes", |
- true /* important */); |
- PrintResult("vm_final", chrome_name, |
- "vm_f" + chrome_name + trace_name, |
- current_virtual_size, "bytes", |
- false /* not important */); |
- PrintResult("ws_peak", chrome_name, |
- "ws_pk" + chrome_name + trace_name, |
- peak_working_set_size, "bytes", |
- true /* important */); |
- PrintResult("ws_final", chrome_name, |
- "ws_pk" + chrome_name + trace_name, |
- current_working_set_size, "bytes", |
- false /* not important */); |
+ base::ProcessHandle process_handle; |
+ if (!base::OpenProcessHandle(*it, &process_handle)) { |
+ NOTREACHED(); |
} |
+ |
+ scoped_ptr<base::ProcessMetrics> process_metrics; |
+ process_metrics.reset( |
+ base::ProcessMetrics::CreateProcessMetrics(process_handle)); |
+ |
+ std::string chrome_name = (*it == browser_process_pid) ? "_b" : "_r"; |
+ |
+ std::string trace_name(test_name); |
+#if defined(OS_WIN) |
+ PrintResult("vm_peak", chrome_name, |
+ "vm_pk" + chrome_name + trace_name, |
+ process_metrics->GetPeakPagefileUsage(), "bytes", |
+ true /* important */); |
+ PrintResult("vm_final", chrome_name, |
+ "vm_f" + chrome_name + trace_name, |
+ process_metrics->GetPagefileUsage(), "bytes", |
+ false /* not important */); |
+ PrintResult("ws_peak", chrome_name, |
+ "ws_pk" + chrome_name + trace_name, |
+ process_metrics->GetPeakWorkingSetSize(), "bytes", |
+ true /* important */); |
+ PrintResult("ws_final", chrome_name, |
+ "ws_f" + chrome_name + trace_name, |
+ process_metrics->GetWorkingSetSize(), "bytes", |
+ false /* not important */); |
+#elif defined(OS_LINUX) |
+ PrintResult("vm_size_final", chrome_name, |
+ "vm_size_f" + chrome_name + trace_name, |
+ process_metrics->GetPagefileUsage(), "bytes", |
+ true /* important */); |
+ PrintResult("vm_rss_final", chrome_name, |
+ "vm_rss_f" + chrome_name + trace_name, |
+ process_metrics->GetWorkingSetSize(), "bytes", |
+ true /* important */); |
+#else |
+ NOTIMPLEMENTED(); |
+#endif |
+ base::CloseProcessHandle(process_handle); |
} |
} |
-#endif // defined(OS_WIN) |
// When use_http is true, the test name passed here will be used directly in |
// the path to the test data, so it must be safe for use in a URL without |
@@ -204,11 +216,8 @@ class PageCyclerTest : public UITest { |
if (timings.empty()) |
return; |
-#if defined(OS_WIN) |
- // TODO(port): Enable when Print{MemoryUsage,IOPerf}Info are ported. |
PrintMemoryUsageInfo(""); |
PrintIOPerfInfo(""); |
-#endif // defined(OS_WIN) |
wprintf(L"\nPages: [%ls]\n", pages.c_str()); |
PrintResultList("times", "", "t", timings, "ms", |
@@ -224,7 +233,13 @@ class PageCyclerReferenceTest : public PageCyclerTest { |
FilePath dir; |
PathService::Get(chrome::DIR_TEST_TOOLS, &dir); |
dir = dir.AppendASCII("reference_build"); |
+#if defined(OS_WIN) |
dir = dir.AppendASCII("chrome"); |
+#elif defined(OS_LINUX) |
+ dir = dir.AppendASCII("chrome_linux"); |
+#elif defined(OS_MACOSX) |
+ dir = dir.AppendASCII("chrome_mac"); |
+#endif |
browser_directory_ = dir; |
UITest::SetUp(); |
} |
@@ -236,11 +251,8 @@ class PageCyclerReferenceTest : public PageCyclerTest { |
if (timings.empty()) |
return; |
-#if defined(OS_WIN) |
- // TODO(port): Enable when Print{MemoryUsage,IOPerf}Info are ported. |
PrintMemoryUsageInfo("_ref"); |
PrintIOPerfInfo("_ref"); |
-#endif // defined(OS_WIN) |
PrintResultList("times", "", "t_ref", timings, "ms", |
true /* important */); |