0

[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}
This commit is contained in:
nednguyen
2015-05-12 12:59:26 -07:00
committed by Commit bot
parent 88dc419e95
commit 7e0ecde037
10 changed files with 38 additions and 46 deletions

@ -134,7 +134,6 @@ def _AddTracingResults(thread, results):
class _OilpanGCTimesBase(page_test.PageTest):
def __init__(self, action_name=''):
super(_OilpanGCTimesBase, self).__init__(action_name)
self._timeline_model = None
def WillNavigateToPage(self, page, tab):
# FIXME: Remove webkit.console when blink.console lands in chromium and
@ -148,12 +147,10 @@ class _OilpanGCTimesBase(page_test.PageTest):
tab.browser.platform.tracing_controller.Start(options, category_filter,
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):
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:
if thread.name == _CR_RENDERER_MAIN:
_AddTracingResults(thread, results)
@ -173,9 +170,10 @@ class OilpanGCTimesForSmoothness(_OilpanGCTimesBase):
self._interaction = runner.CreateInteraction(_RUN_SMOOTH_ACTIONS)
self._interaction.Begin()
def DidRunActions(self, page, tab):
def ValidateAndMeasurePage(self, page, tab, results):
self._interaction.End()
super(OilpanGCTimesForSmoothness, self).DidRunActions(page, tab)
super(OilpanGCTimesForSmoothness, self).ValidateAndMeasurePage(
page, tab, results)
class OilpanGCTimesForBlinkPerf(_OilpanGCTimesBase):
@ -189,9 +187,10 @@ class OilpanGCTimesForBlinkPerf(_OilpanGCTimesBase):
page.script_to_evaluate_on_commit = self._blink_perf_js
super(OilpanGCTimesForBlinkPerf, self).WillNavigateToPage(page, tab)
def DidRunActions(self, page, tab):
def ValidateAndMeasurePage(self, page, tab, results):
tab.WaitForJavaScriptExpression('testRunner.isDone', 600)
super(OilpanGCTimesForBlinkPerf, self).DidRunActions(page, tab)
super(OilpanGCTimesForBlinkPerf, self).ValidateAndMeasurePage(
page, tab, results)
class OilpanGCTimesForInternals(OilpanGCTimesForBlinkPerf):

@ -4,6 +4,7 @@
from measurements import oilpan_gc_times
from telemetry.core import util
from telemetry.results import page_test_results
from telemetry.timeline import model
from telemetry.timeline import slice as slice_data
@ -11,6 +12,9 @@ from telemetry.unittest_util import options_for_unittests
from telemetry.unittest_util import page_test_test_case
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):
def __init__(self, page_set):
@ -90,9 +94,12 @@ class OilpanGCTimesTest(page_test_test_case.PageTestTestCase):
data = self._GenerateDataForParsingOldFormat()
measurement = oilpan_gc_times._OilpanGCTimesBase()
measurement._renderer_process = data._renderer_process
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
self.assertEquals(7, len(getMetric(results, 'oilpan_coalesce')))
@ -121,9 +128,12 @@ class OilpanGCTimesTest(page_test_test_case.PageTestTestCase):
data = self._GenerateDataForParsing()
measurement = oilpan_gc_times._OilpanGCTimesBase()
measurement._renderer_process = data._renderer_process
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
self.assertEquals(8, len(getMetric(results, 'oilpan_coalesce')))

@ -53,14 +53,15 @@ class TaskExecutionTime(page_test.PageTest):
tab.browser.platform.tracing_controller.Start(
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()
timeline_model = TimelineModel(trace_data)
self._renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id)
self._browser_process = timeline_model.browser_process
self._AddResults(results)
def ValidateAndMeasurePage(self, page, tab, results):
def _AddResults(self, results):
self._results = results
for thread in self._BROWSER_THREADS:

@ -161,7 +161,7 @@ class TaskExecutionTimeUnitTest(page_test_test_case.PageTestTestCase):
data.AddSlice('task' + str(duration), 0, duration)
# 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
# returned in the results.
@ -187,7 +187,7 @@ class TaskExecutionTimeUnitTest(page_test_test_case.PageTestTestCase):
data.AddSlice('slow', 0, 1000)
# Run the code we are testing and return results.
self._measurement.ValidateAndMeasurePage(None, None, data.results)
self._measurement._AddResults(data.results)
return data
def _GenerateResultsFromMockedIdleData(self):
@ -217,7 +217,7 @@ class TaskExecutionTimeUnitTest(page_test_test_case.PageTestTestCase):
data.AddSlice('not_idle', slice_start_time, fast_slice_duration)
# Run the code we are testing.
self._measurement.ValidateAndMeasurePage(None, None, data.results)
self._measurement._AddResults(data.results)
return data

@ -23,7 +23,6 @@ class V8GCTimes(page_test.PageTest):
def __init__(self):
super(V8GCTimes, self).__init__()
self._renderer_process = None
def WillNavigateToPage(self, page, tab):
category_filter = tracing_category_filter.TracingCategoryFilter()
@ -37,14 +36,11 @@ class V8GCTimes(page_test.PageTest):
tab.browser.platform.tracing_controller.Start(
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()
timeline_model = TimelineModel(trace_data)
self._renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id)
def ValidateAndMeasurePage(self, page, tab, results):
self._AddV8MetricsToResults(self._renderer_process, results)
renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id)
self._AddV8MetricsToResults(renderer_process, results)
def _AddV8MetricsToResults(self, process, results):
if process is None:

@ -53,7 +53,8 @@ class V8GCTimesTestPageHelper(object):
self._model.FinalizeImport()
# 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)
return results

@ -160,9 +160,6 @@ class PageTest(object):
"""Override to do operations right after the page is navigated and after
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):
"""Called after the test run method was run, even if it failed."""
@ -207,7 +204,6 @@ class PageTest(object):
action_runner = action_runner_module.ActionRunner(
tab, skip_waits=page.skip_waits)
page.RunPageInteractions(action_runner)
self.DidRunActions(page, tab)
self.ValidateAndMeasurePage(page, tab, results)
def RunNavigateSteps(self, page, tab):

@ -43,10 +43,6 @@ class RecorderPageTest(page_test.PageTest): # pylint: disable=W0223
if self.page_test:
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):
if self.page_test:
self.page_test.CleanUpAfterPage(page, tab)

@ -55,9 +55,6 @@ class MockPageTest(page_test.PageTest):
def DidNavigateToPage(self, page, tab):
self.func_calls.append('DidNavigateToPage')
def DidRunActions(self, page, tab):
self.func_calls.append('DidRunActions')
def ValidateAndMeasurePage(self, page, tab, results):
self.func_calls.append('ValidateAndMeasurePage')
@ -121,10 +118,9 @@ class RecordWprUnitTests(tab_test_case.TabTestCase):
record_page_test.page_test = MockBenchmark().test()
page = MockPage(page_set=MockPageSet(url=self._url), url=self._url)
record_page_test.RunPage(page, self._tab, results=None)
self.assertEqual(2, len(record_page_test.page_test.func_calls))
self.assertEqual('DidRunActions', record_page_test.page_test.func_calls[0])
self.assertEqual(1, len(record_page_test.page_test.func_calls))
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.
def testWprRecorderWithPageSet(self):

@ -130,14 +130,11 @@ class SmoothGestureTest(page_test_test_case.PageTestTestCase):
tab.browser.platform.tracing_controller.Start(
options, tracing_category_filter.TracingCategoryFilter())
def DidRunActions(self, _page, tab):
def ValidateAndMeasurePage(self, _page, tab, _results):
models.append(model_module.TimelineModel(
tab.browser.platform.tracing_controller.Stop()))
tab_ids.append(tab.id)
def ValidateAndMeasurePage(self, _page, _tab, _results):
pass
self.RunMeasurement(ScrollingGestureTestMeasurement(), ps)
timeline_model = models[0]
renderer_thread = timeline_model.GetRendererThreadFromTabId(