1 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 from measurements import thread_times 6 from measurements import smoothness_unittest 7 from metrics import timeline 8 from telemetry import test 9 from telemetry.core import wpr_modes 10 from telemetry.page import page_measurement_unittest_base 11 12 from telemetry.unittest import options_for_unittests 13 14 15 16 class ThreadTimesUnitTest( 17 page_measurement_unittest_base.PageMeasurementUnitTestBase): 18 def setUp(self): 19 self._options = options_for_unittests.GetCopy() 20 self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF 21 22 @test.Disabled('android') 23 def testBasic(self): 24 ps = self.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html') 25 measurement = thread_times.ThreadTimes() 26 timeline_options = self._options 27 results = self.RunMeasurement(measurement, ps, options = timeline_options) 28 self.assertEquals(0, len(results.failures)) 29 30 for category in timeline.TimelineThreadCategories.values(): 31 cpu_time_name = timeline.ThreadCpuTimeResultName(category) 32 cpu_time = results.FindAllPageSpecificValuesNamed(cpu_time_name) 33 self.assertEquals(len(cpu_time), 1) 34 35 def testBasicForPageWithNoGesture(self): 36 ps = self.CreateEmptyPageSet() 37 ps.AddPage(smoothness_unittest.AnimatedPage(ps)) 38 39 measurement = thread_times.ThreadTimes() 40 timeline_options = self._options 41 results = self.RunMeasurement(measurement, ps, options = timeline_options) 42 self.assertEquals(0, len(results.failures)) 43 44 for category in timeline.TimelineThreadCategories.values(): 45 cpu_time_name = timeline.ThreadCpuTimeResultName(category) 46 cpu_time = results.FindAllPageSpecificValuesNamed(cpu_time_name) 47 self.assertEquals(len(cpu_time), 1) 48 49 50 def testCleanUpTrace(self): 51 self.TestTracingCleanedUp(thread_times.ThreadTimes, self._options) 52