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 5import os 6 7from profile_chrome import controllers_unittest 8from profile_chrome import systrace_controller 9 10 11class SystraceControllerTest(controllers_unittest.BaseControllerTest): 12 def testGetCategories(self): 13 categories = \ 14 systrace_controller.SystraceController.GetCategories(self.device) 15 self.assertTrue(categories) 16 assert 'gfx' in ' '.join(categories) 17 18 def testTracing(self): 19 categories = ['gfx', 'input', 'view'] 20 ring_buffer = False 21 controller = systrace_controller.SystraceController(self.device, 22 categories, 23 ring_buffer) 24 25 interval = 1 26 try: 27 controller.StartTracing(interval) 28 finally: 29 controller.StopTracing() 30 31 result = controller.PullTrace() 32 try: 33 with open(result) as f: 34 self.assertTrue('CPU#' in f.read()) 35 finally: 36 os.remove(result) 37