Commit 7e0ecde0 authored by nednguyen's avatar nednguyen Committed by Commit bot

[Telemetry] Kill PageTest.DidRunActions hook.

This can be merged to ValidateAndMeasurePage method.

BUG=455391, 470147
CQ_EXTRA_TRYBOTS=tryserver.chromium.perf:linux_perf_bisect;tryserver.chromium.perf:mac_perf_bisect;tryserver.chromium.perf:android_nexus5_perf_bisect

Review URL: https://codereview.chromium.org/1124033004

Cr-Commit-Position: refs/heads/master@{#329468}
parent 88dc419e
...@@ -134,7 +134,6 @@ def _AddTracingResults(thread, results): ...@@ -134,7 +134,6 @@ def _AddTracingResults(thread, results):
class _OilpanGCTimesBase(page_test.PageTest): class _OilpanGCTimesBase(page_test.PageTest):
def __init__(self, action_name=''): def __init__(self, action_name=''):
super(_OilpanGCTimesBase, self).__init__(action_name) super(_OilpanGCTimesBase, self).__init__(action_name)
self._timeline_model = None
def WillNavigateToPage(self, page, tab): def WillNavigateToPage(self, page, tab):
# FIXME: Remove webkit.console when blink.console lands in chromium and # FIXME: Remove webkit.console when blink.console lands in chromium and
...@@ -148,12 +147,10 @@ class _OilpanGCTimesBase(page_test.PageTest): ...@@ -148,12 +147,10 @@ class _OilpanGCTimesBase(page_test.PageTest):
tab.browser.platform.tracing_controller.Start(options, category_filter, tab.browser.platform.tracing_controller.Start(options, category_filter,
timeout=1000) timeout=1000)
def DidRunActions(self, page, tab):
timeline_data = tab.browser.platform.tracing_controller.Stop()
self._timeline_model = TimelineModel(timeline_data)
def ValidateAndMeasurePage(self, page, tab, results): def ValidateAndMeasurePage(self, page, tab, results):
threads = self._timeline_model.GetAllThreads() timeline_data = tab.browser.platform.tracing_controller.Stop()
timeline_model = TimelineModel(timeline_data)
threads = timeline_model.GetAllThreads()
for thread in threads: for thread in threads:
if thread.name == _CR_RENDERER_MAIN: if thread.name == _CR_RENDERER_MAIN:
_AddTracingResults(thread, results) _AddTracingResults(thread, results)
...@@ -173,9 +170,10 @@ class OilpanGCTimesForSmoothness(_OilpanGCTimesBase): ...@@ -173,9 +170,10 @@ class OilpanGCTimesForSmoothness(_OilpanGCTimesBase):
self._interaction = runner.CreateInteraction(_RUN_SMOOTH_ACTIONS) self._interaction = runner.CreateInteraction(_RUN_SMOOTH_ACTIONS)
self._interaction.Begin() self._interaction.Begin()
def DidRunActions(self, page, tab): def ValidateAndMeasurePage(self, page, tab, results):
self._interaction.End() self._interaction.End()
super(OilpanGCTimesForSmoothness, self).DidRunActions(page, tab) super(OilpanGCTimesForSmoothness, self).ValidateAndMeasurePage(
page, tab, results)
class OilpanGCTimesForBlinkPerf(_OilpanGCTimesBase): class OilpanGCTimesForBlinkPerf(_OilpanGCTimesBase):
...@@ -189,9 +187,10 @@ class OilpanGCTimesForBlinkPerf(_OilpanGCTimesBase): ...@@ -189,9 +187,10 @@ class OilpanGCTimesForBlinkPerf(_OilpanGCTimesBase):
page.script_to_evaluate_on_commit = self._blink_perf_js page.script_to_evaluate_on_commit = self._blink_perf_js
super(OilpanGCTimesForBlinkPerf, self).WillNavigateToPage(page, tab) super(OilpanGCTimesForBlinkPerf, self).WillNavigateToPage(page, tab)
def DidRunActions(self, page, tab): def ValidateAndMeasurePage(self, page, tab, results):
tab.WaitForJavaScriptExpression('testRunner.isDone', 600) tab.WaitForJavaScriptExpression('testRunner.isDone', 600)
super(OilpanGCTimesForBlinkPerf, self).DidRunActions(page, tab) super(OilpanGCTimesForBlinkPerf, self).ValidateAndMeasurePage(
page, tab, results)
class OilpanGCTimesForInternals(OilpanGCTimesForBlinkPerf): class OilpanGCTimesForInternals(OilpanGCTimesForBlinkPerf):
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
from measurements import oilpan_gc_times from measurements import oilpan_gc_times
from telemetry.core import util
from telemetry.results import page_test_results from telemetry.results import page_test_results
from telemetry.timeline import model from telemetry.timeline import model
from telemetry.timeline import slice as slice_data from telemetry.timeline import slice as slice_data
...@@ -11,6 +12,9 @@ from telemetry.unittest_util import options_for_unittests ...@@ -11,6 +12,9 @@ from telemetry.unittest_util import options_for_unittests
from telemetry.unittest_util import page_test_test_case from telemetry.unittest_util import page_test_test_case
from telemetry.page import page as page_module from telemetry.page import page as page_module
util.AddDirToPythonPath(util.GetTelemetryDir(), 'third_party', 'mock')
import mock # pylint: disable=import-error
class TestOilpanGCTimesPage(page_module.Page): class TestOilpanGCTimesPage(page_module.Page):
def __init__(self, page_set): def __init__(self, page_set):
...@@ -90,9 +94,12 @@ class OilpanGCTimesTest(page_test_test_case.PageTestTestCase): ...@@ -90,9 +94,12 @@ class OilpanGCTimesTest(page_test_test_case.PageTestTestCase):
data = self._GenerateDataForParsingOldFormat() data = self._GenerateDataForParsingOldFormat()
measurement = oilpan_gc_times._OilpanGCTimesBase() measurement = oilpan_gc_times._OilpanGCTimesBase()
measurement._renderer_process = data._renderer_process
measurement._timeline_model = data._model tab = mock.MagicMock()
measurement.ValidateAndMeasurePage(None, None, data.results) with mock.patch(
'measurements.oilpan_gc_times.TimelineModel') as MockTimelineModel:
MockTimelineModel.return_value = data._model
measurement.ValidateAndMeasurePage(None, tab, data.results)
results = data.results results = data.results
self.assertEquals(7, len(getMetric(results, 'oilpan_coalesce'))) self.assertEquals(7, len(getMetric(results, 'oilpan_coalesce')))
...@@ -121,9 +128,12 @@ class OilpanGCTimesTest(page_test_test_case.PageTestTestCase): ...@@ -121,9 +128,12 @@ class OilpanGCTimesTest(page_test_test_case.PageTestTestCase):
data = self._GenerateDataForParsing() data = self._GenerateDataForParsing()
measurement = oilpan_gc_times._OilpanGCTimesBase() measurement = oilpan_gc_times._OilpanGCTimesBase()
measurement._renderer_process = data._renderer_process
measurement._timeline_model = data._model measurement._timeline_model = data._model
measurement.ValidateAndMeasurePage(None, None, data.results) tab = mock.MagicMock()
with mock.patch(
'measurements.oilpan_gc_times.TimelineModel') as MockTimelineModel:
MockTimelineModel.return_value = data._model
measurement.ValidateAndMeasurePage(None, tab, data.results)
results = data.results results = data.results
self.assertEquals(8, len(getMetric(results, 'oilpan_coalesce'))) self.assertEquals(8, len(getMetric(results, 'oilpan_coalesce')))
......
...@@ -53,14 +53,15 @@ class TaskExecutionTime(page_test.PageTest): ...@@ -53,14 +53,15 @@ class TaskExecutionTime(page_test.PageTest):
tab.browser.platform.tracing_controller.Start( tab.browser.platform.tracing_controller.Start(
options, category_filter, self._TIME_OUT_IN_SECONDS) options, category_filter, self._TIME_OUT_IN_SECONDS)
def DidRunActions(self, page, tab): def ValidateAndMeasurePage(self, page, tab, results):
trace_data = tab.browser.platform.tracing_controller.Stop() trace_data = tab.browser.platform.tracing_controller.Stop()
timeline_model = TimelineModel(trace_data) timeline_model = TimelineModel(trace_data)
self._renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id) self._renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id)
self._browser_process = timeline_model.browser_process self._browser_process = timeline_model.browser_process
self._AddResults(results)
def ValidateAndMeasurePage(self, page, tab, results): def _AddResults(self, results):
self._results = results self._results = results
for thread in self._BROWSER_THREADS: for thread in self._BROWSER_THREADS:
......
...@@ -161,7 +161,7 @@ class TaskExecutionTimeUnitTest(page_test_test_case.PageTestTestCase): ...@@ -161,7 +161,7 @@ class TaskExecutionTimeUnitTest(page_test_test_case.PageTestTestCase):
data.AddSlice('task' + str(duration), 0, duration) data.AddSlice('task' + str(duration), 0, duration)
# Run the code we are testing. # Run the code we are testing.
self._measurement.ValidateAndMeasurePage(None, None, data.results) self._measurement._AddResults(data.results)
# Check that the last (i.e. biggest) _NUMBER_OF_RESULTS_TO_DISPLAY get # Check that the last (i.e. biggest) _NUMBER_OF_RESULTS_TO_DISPLAY get
# returned in the results. # returned in the results.
...@@ -187,7 +187,7 @@ class TaskExecutionTimeUnitTest(page_test_test_case.PageTestTestCase): ...@@ -187,7 +187,7 @@ class TaskExecutionTimeUnitTest(page_test_test_case.PageTestTestCase):
data.AddSlice('slow', 0, 1000) data.AddSlice('slow', 0, 1000)
# Run the code we are testing and return results. # Run the code we are testing and return results.
self._measurement.ValidateAndMeasurePage(None, None, data.results) self._measurement._AddResults(data.results)
return data return data
def _GenerateResultsFromMockedIdleData(self): def _GenerateResultsFromMockedIdleData(self):
...@@ -217,7 +217,7 @@ class TaskExecutionTimeUnitTest(page_test_test_case.PageTestTestCase): ...@@ -217,7 +217,7 @@ class TaskExecutionTimeUnitTest(page_test_test_case.PageTestTestCase):
data.AddSlice('not_idle', slice_start_time, fast_slice_duration) data.AddSlice('not_idle', slice_start_time, fast_slice_duration)
# Run the code we are testing. # Run the code we are testing.
self._measurement.ValidateAndMeasurePage(None, None, data.results) self._measurement._AddResults(data.results)
return data return data
......
...@@ -23,7 +23,6 @@ class V8GCTimes(page_test.PageTest): ...@@ -23,7 +23,6 @@ class V8GCTimes(page_test.PageTest):
def __init__(self): def __init__(self):
super(V8GCTimes, self).__init__() super(V8GCTimes, self).__init__()
self._renderer_process = None
def WillNavigateToPage(self, page, tab): def WillNavigateToPage(self, page, tab):
category_filter = tracing_category_filter.TracingCategoryFilter() category_filter = tracing_category_filter.TracingCategoryFilter()
...@@ -37,14 +36,11 @@ class V8GCTimes(page_test.PageTest): ...@@ -37,14 +36,11 @@ class V8GCTimes(page_test.PageTest):
tab.browser.platform.tracing_controller.Start( tab.browser.platform.tracing_controller.Start(
options, category_filter, self._TIME_OUT_IN_SECONDS) options, category_filter, self._TIME_OUT_IN_SECONDS)
def DidRunActions(self, page, tab): def ValidateAndMeasurePage(self, page, tab, results):
trace_data = tab.browser.platform.tracing_controller.Stop() trace_data = tab.browser.platform.tracing_controller.Stop()
timeline_model = TimelineModel(trace_data) timeline_model = TimelineModel(trace_data)
renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id)
self._renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id) self._AddV8MetricsToResults(renderer_process, results)
def ValidateAndMeasurePage(self, page, tab, results):
self._AddV8MetricsToResults(self._renderer_process, results)
def _AddV8MetricsToResults(self, process, results): def _AddV8MetricsToResults(self, process, results):
if process is None: if process is None:
......
...@@ -53,7 +53,8 @@ class V8GCTimesTestPageHelper(object): ...@@ -53,7 +53,8 @@ class V8GCTimesTestPageHelper(object):
self._model.FinalizeImport() self._model.FinalizeImport()
# Measure the V8GCTimes metric and return the results # Measure the V8GCTimes metric and return the results
v8_gc_times_metric.ValidateAndMeasurePage(page, None, results) # pylint: disable=protected-access
v8_gc_times_metric._AddV8MetricsToResults(self._renderer_process, results)
results.DidRunPage(page) results.DidRunPage(page)
return results return results
......
...@@ -160,9 +160,6 @@ class PageTest(object): ...@@ -160,9 +160,6 @@ class PageTest(object):
"""Override to do operations right after the page is navigated and after """Override to do operations right after the page is navigated and after
all waiting for completion has occurred.""" all waiting for completion has occurred."""
def DidRunActions(self, page, tab):
"""Override to do operations after running the actions on the page."""
def CleanUpAfterPage(self, page, tab): def CleanUpAfterPage(self, page, tab):
"""Called after the test run method was run, even if it failed.""" """Called after the test run method was run, even if it failed."""
...@@ -207,7 +204,6 @@ class PageTest(object): ...@@ -207,7 +204,6 @@ class PageTest(object):
action_runner = action_runner_module.ActionRunner( action_runner = action_runner_module.ActionRunner(
tab, skip_waits=page.skip_waits) tab, skip_waits=page.skip_waits)
page.RunPageInteractions(action_runner) page.RunPageInteractions(action_runner)
self.DidRunActions(page, tab)
self.ValidateAndMeasurePage(page, tab, results) self.ValidateAndMeasurePage(page, tab, results)
def RunNavigateSteps(self, page, tab): def RunNavigateSteps(self, page, tab):
......
...@@ -43,10 +43,6 @@ class RecorderPageTest(page_test.PageTest): # pylint: disable=W0223 ...@@ -43,10 +43,6 @@ class RecorderPageTest(page_test.PageTest): # pylint: disable=W0223
if self.page_test: if self.page_test:
self.page_test.DidNavigateToPage(page, tab) self.page_test.DidNavigateToPage(page, tab)
def DidRunActions(self, page, tab):
if self.page_test:
self.page_test.DidRunActions(page, tab)
def CleanUpAfterPage(self, page, tab): def CleanUpAfterPage(self, page, tab):
if self.page_test: if self.page_test:
self.page_test.CleanUpAfterPage(page, tab) self.page_test.CleanUpAfterPage(page, tab)
......
...@@ -55,9 +55,6 @@ class MockPageTest(page_test.PageTest): ...@@ -55,9 +55,6 @@ class MockPageTest(page_test.PageTest):
def DidNavigateToPage(self, page, tab): def DidNavigateToPage(self, page, tab):
self.func_calls.append('DidNavigateToPage') self.func_calls.append('DidNavigateToPage')
def DidRunActions(self, page, tab):
self.func_calls.append('DidRunActions')
def ValidateAndMeasurePage(self, page, tab, results): def ValidateAndMeasurePage(self, page, tab, results):
self.func_calls.append('ValidateAndMeasurePage') self.func_calls.append('ValidateAndMeasurePage')
...@@ -121,10 +118,9 @@ class RecordWprUnitTests(tab_test_case.TabTestCase): ...@@ -121,10 +118,9 @@ class RecordWprUnitTests(tab_test_case.TabTestCase):
record_page_test.page_test = MockBenchmark().test() record_page_test.page_test = MockBenchmark().test()
page = MockPage(page_set=MockPageSet(url=self._url), url=self._url) page = MockPage(page_set=MockPageSet(url=self._url), url=self._url)
record_page_test.RunPage(page, self._tab, results=None) record_page_test.RunPage(page, self._tab, results=None)
self.assertEqual(2, len(record_page_test.page_test.func_calls)) self.assertEqual(1, len(record_page_test.page_test.func_calls))
self.assertEqual('DidRunActions', record_page_test.page_test.func_calls[0])
self.assertEqual('ValidateAndMeasurePage', self.assertEqual('ValidateAndMeasurePage',
record_page_test.page_test.func_calls[1]) record_page_test.page_test.func_calls[0])
@decorators.Disabled('chromeos') # crbug.com/404868. @decorators.Disabled('chromeos') # crbug.com/404868.
def testWprRecorderWithPageSet(self): def testWprRecorderWithPageSet(self):
......
...@@ -130,14 +130,11 @@ class SmoothGestureTest(page_test_test_case.PageTestTestCase): ...@@ -130,14 +130,11 @@ class SmoothGestureTest(page_test_test_case.PageTestTestCase):
tab.browser.platform.tracing_controller.Start( tab.browser.platform.tracing_controller.Start(
options, tracing_category_filter.TracingCategoryFilter()) options, tracing_category_filter.TracingCategoryFilter())
def DidRunActions(self, _page, tab): def ValidateAndMeasurePage(self, _page, tab, _results):
models.append(model_module.TimelineModel( models.append(model_module.TimelineModel(
tab.browser.platform.tracing_controller.Stop())) tab.browser.platform.tracing_controller.Stop()))
tab_ids.append(tab.id) tab_ids.append(tab.id)
def ValidateAndMeasurePage(self, _page, _tab, _results):
pass
self.RunMeasurement(ScrollingGestureTestMeasurement(), ps) self.RunMeasurement(ScrollingGestureTestMeasurement(), ps)
timeline_model = models[0] timeline_model = models[0]
renderer_thread = timeline_model.GetRendererThreadFromTabId( renderer_thread = timeline_model.GetRendererThreadFromTabId(
......
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