# 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 json
from profile_chrome import agents_unittest
from profile_chrome import perf_tracing_agent
from profile_chrome import ui
from systrace import decorators
class PerfProfilerAgentTest(agents_unittest.BaseAgentTest):
@decorators.ClientOnlyTest
def testGetCategories(self):
if not perf_tracing_agent.PerfProfilerAgent.IsSupported():
return
categories = \
perf_tracing_agent.PerfProfilerAgent.GetCategories(self.device)
assert 'cycles' in ' '.join(categories)
# TODO(washingtonp): Try enabling this test for the SimpleperfProfilerAgent,
# which will be added later.
@decorators.Disabled
def testTracing(self):
if not perf_tracing_agent.PerfProfilerAgent.IsSupported():
return
ui.EnableTestMode()
categories = 'cycles'
agent = perf_tracing_agent.PerfProfilerAgent(self.device)
try:
agent.StartAgentTracing(perf_tracing_agent.PerfConfig(categories,
self.device))
finally:
agent.StopAgentTracing()
result = agent.GetResults()
json.loads(result.raw_data)