diff options
author | thomasvl@chromium.org <thomasvl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-17 18:23:25 +0000 |
---|---|---|
committer | thomasvl@chromium.org <thomasvl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-17 18:23:25 +0000 |
commit | 95c1aac9bbd395e30fb4003d947f3f61089d6312 (patch) | |
tree | c50c31f0e1f9dad1fc306efaf07db1112e4f854d /chrome/test/page_cycler | |
parent | a7281024bc3adc15e818ed641acca01507130342 (diff) | |
download | chromium_src-95c1aac9bbd395e30fb4003d947f3f61089d6312.zip chromium_src-95c1aac9bbd395e30fb4003d947f3f61089d6312.tar.gz chromium_src-95c1aac9bbd395e30fb4003d947f3f61089d6312.tar.bz2 |
Add a helper on mac for collecting memory size info from a list of processes.
Spawn PS to collect the data and parse the output.
Add ifdef checks in the page cyclers so on mac we can use the other helper since base methods can't ever be made to work.
BUG=none
TEST=memory info should now show in the waterfall and on the perf graphs for the page cycler tests.
Review URL: http://codereview.chromium.org/125254
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18635 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/page_cycler')
-rw-r--r-- | chrome/test/page_cycler/page_cycler_test.cc | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/chrome/test/page_cycler/page_cycler_test.cc b/chrome/test/page_cycler/page_cycler_test.cc index 04d563c..f8a80d0 100644 --- a/chrome/test/page_cycler/page_cycler_test.cc +++ b/chrome/test/page_cycler/page_cycler_test.cc @@ -214,6 +214,7 @@ class PageCyclerTest : public UITest { int browser_process_pid = ChromeBrowserProcessId(data_dir); ChromeProcessList chrome_processes(GetRunningChromeProcesses(data_dir)); +#if !defined(OS_MACOSX) ChromeProcessList::const_iterator it; for (it = chrome_processes.begin(); it != chrome_processes.end(); ++it) { base::ProcessHandle process_handle; @@ -259,6 +260,36 @@ class PageCyclerTest : public UITest { #endif base::CloseProcessHandle(process_handle); } + +#else // !defined(OS_MACOSX) + + // There is no way to get memory info from one process on another process + // without privileges, this means the base methods for doing this can't be + // made to work. Instead we use a helper that invokes ps to collect the + // data so we have it for the unittest. + + MacChromeProcessInfoList process_infos( + GetRunningMacProcessInfo(chrome_processes)); + MacChromeProcessInfoList::const_iterator it; + for (it = process_infos.begin(); it != process_infos.end(); ++it) { + const MacChromeProcessInfo &process_info = *it; + + std::string chrome_name = + (process_info.pid == browser_process_pid) ? "_b" : "_r"; + std::string trace_name(test_name); + + PrintResult("vm_size_final", chrome_name, + "vm_size_f" + chrome_name + trace_name, + static_cast<size_t>(process_info.vsz_in_kb) * 1024, "bytes", + true /* important */); + PrintResult("vm_rss_final", chrome_name, + "vm_rss_f" + chrome_name + trace_name, + static_cast<size_t>(process_info.rsz_in_kb) * 1024, "bytes", + true /* important */); + } + +#endif // !defined(OS_MACOSX) + } // When use_http is true, the test name passed here will be used directly in |