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.
5 from measurements
import thread_times
6 from measurements
import smoothness_unittest
7 from metrics
import timeline
8 from telemetry
.core
import wpr_modes
9 from telemetry
.unittest_util
import options_for_unittests
10 from telemetry
.unittest_util
import page_test_test_case
11 from telemetry
.unittest_util
import test
15 class ThreadTimesUnitTest(page_test_test_case
.PageTestTestCase
):
17 self
._options
= options_for_unittests
.GetCopy()
18 self
._options
.browser_options
.wpr_mode
= wpr_modes
.WPR_OFF
20 @test.Disabled('android')
22 ps
= self
.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html')
23 measurement
= thread_times
.ThreadTimes()
24 timeline_options
= self
._options
25 results
= self
.RunMeasurement(measurement
, ps
, options
= timeline_options
)
26 self
.assertEquals(0, len(results
.failures
))
28 for category
in timeline
.TimelineThreadCategories
.values():
29 cpu_time_name
= timeline
.ThreadCpuTimeResultName(category
)
30 cpu_time
= results
.FindAllPageSpecificValuesNamed(cpu_time_name
)
31 self
.assertEquals(len(cpu_time
), 1)
33 def testBasicForPageWithNoGesture(self
):
34 ps
= self
.CreateEmptyPageSet()
35 ps
.AddPage(smoothness_unittest
.AnimatedPage(ps
))
37 measurement
= thread_times
.ThreadTimes()
38 timeline_options
= self
._options
39 results
= self
.RunMeasurement(measurement
, ps
, options
= timeline_options
)
40 self
.assertEquals(0, len(results
.failures
))
42 for category
in timeline
.TimelineThreadCategories
.values():
43 cpu_time_name
= timeline
.ThreadCpuTimeResultName(category
)
44 cpu_time
= results
.FindAllPageSpecificValuesNamed(cpu_time_name
)
45 self
.assertEquals(len(cpu_time
), 1)
47 def testWithSilkDetails(self
):
48 ps
= self
.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html')
49 measurement
= thread_times
.ThreadTimes(report_silk_details
=True)
50 results
= self
.RunMeasurement(measurement
, ps
, options
= self
._options
)
51 self
.assertEquals(0, len(results
.failures
))
53 main_thread
= "renderer_main"
54 expected_trace_categories
= ["blink", "cc", "idle"]
55 for trace_category
in expected_trace_categories
:
56 value_name
= timeline
.ThreadDetailResultName(main_thread
, trace_category
)
57 values
= results
.FindAllPageSpecificValuesNamed(value_name
)
58 self
.assertEquals(len(values
), 1)
60 def testCleanUpTrace(self
):
61 self
.TestTracingCleanedUp(thread_times
.ThreadTimes
, self
._options
)