Commit 01593529 authored by phoglund@chromium.org's avatar phoglund@chromium.org

Implements CPU measurement of a WebRTC call on Mac.

There's special Mach port magic required to measure CPU on a process other than the current process. Since we want to measure both the renderer and browser process CPU we need to do this.

BUG=

Review URL: https://chromiumcodereview.appspot.com/24024003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222045 0039d316-1c4b-4281-b951-d872f2087c98
parent 4778ee43
...@@ -223,15 +223,13 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, ...@@ -223,15 +223,13 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest,
ASSERT_TRUE(peerconnection_server_.Stop()); ASSERT_TRUE(peerconnection_server_.Stop());
} }
// TODO(phoglund): figure out how to do mach port brokering on Mac.
#if !defined(OS_MACOSX)
IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest,
MANUAL_RendererCpuUsage20Seconds) { MANUAL_RendererCpuUsage20Seconds) {
ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
ASSERT_TRUE(peerconnection_server_.Start()); ASSERT_TRUE(peerconnection_server_.Start());
base::FilePath results_file; base::FilePath results_file;
EXPECT_TRUE(file_util::CreateTemporaryFile(&results_file)); ASSERT_TRUE(file_util::CreateTemporaryFile(&results_file));
ui_test_utils::NavigateToURL( ui_test_utils::NavigateToURL(
browser(), embedded_test_server()->GetURL(kMainWebrtcTestHtmlPage)); browser(), embedded_test_server()->GetURL(kMainWebrtcTestHtmlPage));
...@@ -241,11 +239,21 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, ...@@ -241,11 +239,21 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest,
base::ProcessHandle renderer_pid = base::ProcessHandle renderer_pid =
left_tab->GetRenderProcessHost()->GetHandle(); left_tab->GetRenderProcessHost()->GetHandle();
#if defined(OS_MACOSX)
// TODO(phoglund): This will not report correct values on mac:
// move renderer process measurement to content browser test.
scoped_ptr<base::ProcessMetrics> renderer_process_metrics(
base::ProcessMetrics::CreateProcessMetrics(renderer_pid, NULL));
scoped_ptr<base::ProcessMetrics> browser_process_metrics(
base::ProcessMetrics::CreateProcessMetrics(
base::Process::Current().handle(), NULL));
#else
scoped_ptr<base::ProcessMetrics> renderer_process_metrics( scoped_ptr<base::ProcessMetrics> renderer_process_metrics(
base::ProcessMetrics::CreateProcessMetrics(renderer_pid)); base::ProcessMetrics::CreateProcessMetrics(renderer_pid));
scoped_ptr<base::ProcessMetrics> browser_process_metrics( scoped_ptr<base::ProcessMetrics> browser_process_metrics(
base::ProcessMetrics::CreateProcessMetrics( base::ProcessMetrics::CreateProcessMetrics(
base::Process::Current().handle())); base::Process::Current().handle()));
#endif
// Start measuring CPU. // Start measuring CPU.
renderer_process_metrics->GetCPUUsage(); renderer_process_metrics->GetCPUUsage();
...@@ -282,7 +290,6 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, ...@@ -282,7 +290,6 @@ IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest,
ASSERT_TRUE(peerconnection_server_.Stop()); ASSERT_TRUE(peerconnection_server_.Stop());
} }
#endif
IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest, IN_PROC_BROWSER_TEST_F(WebrtcBrowserTest,
MANUAL_TestMediaStreamTrackEnableDisable) { MANUAL_TestMediaStreamTrackEnableDisable) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment