| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import os |
| |
| from profile_chrome import controllers_unittest |
| from profile_chrome import systrace_controller |
| |
| |
| class SystraceControllerTest(controllers_unittest.BaseControllerTest): |
| def testGetCategories(self): |
| categories = \ |
| systrace_controller.SystraceController.GetCategories(self.device) |
| self.assertTrue(categories) |
| assert 'gfx' in ' '.join(categories) |
| |
| def testTracing(self): |
| categories = ['gfx', 'input', 'view'] |
| ring_buffer = False |
| controller = systrace_controller.SystraceController(self.device, |
| categories, |
| ring_buffer) |
| |
| interval = 1 |
| try: |
| controller.StartTracing(interval) |
| finally: |
| controller.StopTracing() |
| |
| result = controller.PullTrace() |
| try: |
| with open(result) as f: |
| self.assertTrue('CPU#' in f.read()) |
| finally: |
| os.remove(result) |