Home | History | Annotate | Download | only in profile_chrome
      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 import os
      6 import json
      7 
      8 from profile_chrome import controllers_unittest
      9 from profile_chrome import perf_controller
     10 from profile_chrome import ui
     11 
     12 
     13 class PerfProfilerControllerTest(controllers_unittest.BaseControllerTest):
     14   def testGetCategories(self):
     15     if not perf_controller.PerfProfilerController.IsSupported():
     16       return
     17     categories = \
     18         perf_controller.PerfProfilerController.GetCategories(self.device)
     19     assert 'cycles' in ' '.join(categories)
     20 
     21   def testTracing(self):
     22     if not perf_controller.PerfProfilerController.IsSupported():
     23       return
     24     ui.EnableTestMode()
     25     categories = ['cycles']
     26     controller = perf_controller.PerfProfilerController(self.device,
     27                                                         categories)
     28 
     29     interval = 1
     30     try:
     31       controller.StartTracing(interval)
     32     finally:
     33       controller.StopTracing()
     34 
     35     result = controller.PullTrace()
     36     try:
     37       with open(result) as f:
     38         json.loads(f.read())
     39     finally:
     40       os.remove(result)
     41