Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / tools / perf / measurements / thread_times_unittest.py
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.core import wpr_modes
9 from telemetry.unittest import options_for_unittests
10 from telemetry.unittest import page_test_test_case
11 from telemetry.unittest import test
12
13
14
15 class ThreadTimesUnitTest(page_test_test_case.PageTestTestCase):
16   def setUp(self):
17     self._options = options_for_unittests.GetCopy()
18     self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF
19
20   @test.Disabled('android')
21   def testBasic(self):
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))
27
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)
32
33   def testBasicForPageWithNoGesture(self):
34     ps = self.CreateEmptyPageSet()
35     ps.AddPage(smoothness_unittest.AnimatedPage(ps))
36
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))
41
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)
46
47   def testWithSilkDetails(self):
48     ps = self.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html')
49     measurement = thread_times.ThreadTimes()
50     self._options.report_silk_details = True
51     results = self.RunMeasurement(measurement, ps, options = self._options)
52     self.assertEquals(0, len(results.failures))
53
54     main_thread = "renderer_main"
55     expected_trace_categories = ["blink", "cc", "idle"]
56     for trace_category in expected_trace_categories:
57       value_name = timeline.ThreadDetailResultName(main_thread, trace_category)
58       values = results.FindAllPageSpecificValuesNamed(value_name)
59       self.assertEquals(len(values), 1)
60
61   def testCleanUpTrace(self):
62     self.TestTracingCleanedUp(thread_times.ThreadTimes, self._options)