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 7 from profile_chrome import controllers_unittest 8 from profile_chrome import systrace_controller 9 10 11 class 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 result = controller.PullTrace() 31 32 self.assertFalse(controller.IsTracingOn()) 33 try: 34 with open(result) as f: 35 self.assertTrue('CPU#' in f.read()) 36 finally: 37 os.remove(result) 38