Roll src/third_party/WebKit 9d2dfea:3aea697 (svn 201972:201973)
[chromium-blink-merge.git] / tools / profile_chrome / perf_controller_unittest.py
blob44bfbfa8cca85f980c8c6aaaeed3c91f23ae040e
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 import os
6 import json
8 from profile_chrome import controllers_unittest
9 from profile_chrome import perf_controller
10 from profile_chrome import ui
12 from pylib import constants
15 class PerfProfilerControllerTest(controllers_unittest.BaseControllerTest):
16 def testGetCategories(self):
17 if not perf_controller.PerfProfilerController.IsSupported():
18 return
19 categories = \
20 perf_controller.PerfProfilerController.GetCategories(self.device)
21 assert 'cycles' in ' '.join(categories)
23 def testTracing(self):
24 if not perf_controller.PerfProfilerController.IsSupported():
25 return
26 ui.EnableTestMode()
27 categories = ['cycles']
28 controller = perf_controller.PerfProfilerController(self.device,
29 categories)
31 interval = 1
32 try:
33 controller.StartTracing(interval)
34 finally:
35 controller.StopTracing()
37 result = controller.PullTrace()
38 try:
39 with open(result) as f:
40 json.loads(f.read())
41 finally:
42 os.remove(result)