70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
# Copyright 2016 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 optparse
|
|
import tempfile
|
|
|
|
from systrace import trace_result
|
|
from systrace import tracing_agents
|
|
|
|
|
|
class FakeAgent(object):
|
|
def __init__(self, contents='fake-contents'):
|
|
self.contents = contents
|
|
self.stopped = False
|
|
self.filename = None
|
|
self.config = None
|
|
self.timeout = None
|
|
|
|
def StartAgentTracing(self, config, timeout=None):
|
|
self.config = config
|
|
self.timeout = timeout
|
|
return True
|
|
|
|
# pylint: disable=unused-argument
|
|
def StopAgentTracing(self, timeout=None):
|
|
self.stopped = True
|
|
return True
|
|
|
|
# pylint: disable=unused-argument
|
|
def GetResults(self, timeout=None):
|
|
trace_data = open(self._PullTrace()).read()
|
|
return trace_result.TraceResult('fakeData', trace_data)
|
|
|
|
def _PullTrace(self):
|
|
with tempfile.NamedTemporaryFile(delete=False) as f:
|
|
self.filename = f.name
|
|
f.write(self.contents)
|
|
return f.name
|
|
|
|
# pylint: disable=no-self-use
|
|
def SupportsExplicitClockSync(self):
|
|
return False
|
|
|
|
# pylint: disable=unused-argument, no-self-use
|
|
def RecordClockSyncMarker(self, sync_id, did_record_sync_marker_callback):
|
|
print ('Clock sync marker cannot be recorded since explicit clock sync '
|
|
'is not supported.')
|
|
|
|
def __repr__(self):
|
|
return 'faketrace'
|
|
|
|
|
|
class FakeConfig(tracing_agents.TracingConfig):
|
|
def __init__(self):
|
|
tracing_agents.TracingConfig.__init__(self)
|
|
|
|
|
|
# pylint: disable=unused-argument
|
|
def try_create_agent(config):
|
|
return FakeAgent()
|
|
|
|
def add_options(parser):
|
|
options = optparse.OptionGroup(parser, 'Fake options.')
|
|
return options
|
|
|
|
# pylint: disable=unused-argument
|
|
def get_config(options):
|
|
return FakeConfig()
|