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 json
6
7from profile_chrome import chrome_tracing_agent
8from systrace import decorators
9from systrace.tracing_agents import agents_unittest
10
11
12class ChromeAgentTest(agents_unittest.BaseAgentTest):
13  # TODO(washingtonp): This test seems to fail on the version of Android
14  # currently on the Trybot servers (KTU84P), although it works on Android M.
15  # Either upgrade the version of Android on the Trybot servers or determine
16  # if there is a way to run this agent on Android KTU84P.
17  @decorators.Disabled
18  def testGetCategories(self):
19    curr_browser = self.GetChromeProcessID()
20    if curr_browser == None:
21      self.StartBrowser()
22
23    categories = \
24        chrome_tracing_agent.ChromeTracingAgent.GetCategories(
25            self.device, self.package_info)
26
27    self.assertEquals(len(categories), 2)
28    self.assertTrue(categories[0])
29    self.assertTrue(categories[1])
30
31  # TODO(washingtonp): This test is pretty flaky on the version of Android
32  # currently on the Trybot servers (KTU84P), although it works on Android M.
33  # Either upgrade the version of Android on the Trybot servers or determine
34  # if there is a way to run this agent on Android KTU84P.
35  @decorators.Disabled
36  def testTracing(self):
37    curr_browser = self.GetChromeProcessID()
38    if curr_browser == None:
39      self.StartBrowser()
40
41    categories = '*'
42    ring_buffer = False
43    agent = chrome_tracing_agent.ChromeTracingAgent(self.device,
44                                                    self.package_info,
45                                                    ring_buffer)
46    agent.StartAgentTracing(chrome_tracing_agent.ChromeConfig(categories, None,
47        None, None, None, None, None, None, ring_buffer, self.device,
48        self.package_info))
49    agent.StopAgentTracing()
50    result = agent.GetResults()
51    json.loads(result.raw_data)
52