blob: 3bd713501a5b04347ff6baa55ed1f8a72db46df4 [file] [log] [blame]
#!/usr/bin/env python
# Copyright (c) 2017 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 logging
import unittest
from systrace import decorators
from systrace import run_systrace
from systrace.tracing_agents import walt_agent
class WaltAgentTest(unittest.TestCase):
"""
The WALT agent pulls the trace log from the Android phone, and does not
communicate with the WALT device directly. This makes the agent similar
to atrace. Since the host only connects to the Android phone, more exhaustive
testing would require mocking DeviceUtils.
"""
@decorators.HostOnlyTest
def test_construct_walt_args(self):
options, _ = run_systrace.parse_options(['./run_systrace.py',
'--walt'])
self.assertTrue(walt_agent.get_config(options).is_walt_enabled)
options, _ = run_systrace.parse_options(['./run_systrace.py'])
self.assertFalse(walt_agent.get_config(options).is_walt_enabled)
@decorators.HostOnlyTest
def test_format_clock_sync_marker(self):
actual_marker = walt_agent.format_clock_sync_marker(
'some_sync_id', 12345678901234)
expected_marker = ('<0>-0 (-----) [001] ...1 12345.6789012: ' +
'tracing_mark_write: trace_event_clock_sync: ' +
'name=some_sync_id\n')
self.assertEqual(actual_marker, expected_marker)
@decorators.HostOnlyTest
def test_get_results_string(self):
agent = walt_agent.WaltAgent()
agent._trace_contents = '<trace contents here>\n'
agent._clock_sync_marker = '<clock sync marker here>\n'
result = agent._get_trace_result()
self.assertEquals(result, '# tracer: \n# clock_type=LINUX_CLOCK_MONOTONIC\n'
'<trace contents here>\n<clock sync marker here>\n')
if __name__ == "__main__":
logging.getLogger().setLevel(logging.DEBUG)
unittest.main(verbosity=2)