17332cdb42368a904cbf7418de329868989e592daChris Craik# Copyright 2016 The Chromium Authors. All rights reserved. 27332cdb42368a904cbf7418de329868989e592daChris Craik# Use of this source code is governed by a BSD-style license that can be 37332cdb42368a904cbf7418de329868989e592daChris Craik# found in the LICENSE file. 47332cdb42368a904cbf7418de329868989e592daChris Craik 57332cdb42368a904cbf7418de329868989e592daChris Craikimport optparse 67332cdb42368a904cbf7418de329868989e592daChris Craikimport tempfile 77332cdb42368a904cbf7418de329868989e592daChris Craik 87332cdb42368a904cbf7418de329868989e592daChris Craikfrom systrace import trace_result 97332cdb42368a904cbf7418de329868989e592daChris Craikfrom systrace import tracing_agents 107332cdb42368a904cbf7418de329868989e592daChris Craik 117332cdb42368a904cbf7418de329868989e592daChris Craik 127332cdb42368a904cbf7418de329868989e592daChris Craikclass FakeAgent2(object): 137332cdb42368a904cbf7418de329868989e592daChris Craik def __init__(self, contents='fake-contents'): 147332cdb42368a904cbf7418de329868989e592daChris Craik self.contents = contents 157332cdb42368a904cbf7418de329868989e592daChris Craik self.stopped = False 167332cdb42368a904cbf7418de329868989e592daChris Craik self.config = None 177332cdb42368a904cbf7418de329868989e592daChris Craik self.filename = None 187332cdb42368a904cbf7418de329868989e592daChris Craik 197332cdb42368a904cbf7418de329868989e592daChris Craik # pylint: disable=unused-argument 207332cdb42368a904cbf7418de329868989e592daChris Craik def StartAgentTracing(self, config, timeout=None): 217332cdb42368a904cbf7418de329868989e592daChris Craik self.config = config 227332cdb42368a904cbf7418de329868989e592daChris Craik return True 237332cdb42368a904cbf7418de329868989e592daChris Craik 247332cdb42368a904cbf7418de329868989e592daChris Craik # pylint: disable=unused-argument 257332cdb42368a904cbf7418de329868989e592daChris Craik def StopAgentTracing(self, timeout=None): 267332cdb42368a904cbf7418de329868989e592daChris Craik self.stopped = True 277332cdb42368a904cbf7418de329868989e592daChris Craik return True 287332cdb42368a904cbf7418de329868989e592daChris Craik 297332cdb42368a904cbf7418de329868989e592daChris Craik # pylint: disable=unused-argument 307332cdb42368a904cbf7418de329868989e592daChris Craik def GetResults(self, timeout=None): 317332cdb42368a904cbf7418de329868989e592daChris Craik trace_data = open(self._PullTrace()).read() 327332cdb42368a904cbf7418de329868989e592daChris Craik return trace_result.TraceResult('fakeDataTwo', trace_data) 337332cdb42368a904cbf7418de329868989e592daChris Craik 347332cdb42368a904cbf7418de329868989e592daChris Craik def _PullTrace(self): 357332cdb42368a904cbf7418de329868989e592daChris Craik with tempfile.NamedTemporaryFile(delete=False) as f: 367332cdb42368a904cbf7418de329868989e592daChris Craik self.filename = f.name 377332cdb42368a904cbf7418de329868989e592daChris Craik f.write(self.contents) 387332cdb42368a904cbf7418de329868989e592daChris Craik return f.name 397332cdb42368a904cbf7418de329868989e592daChris Craik 407332cdb42368a904cbf7418de329868989e592daChris Craik # pylint: disable=no-self-use 417332cdb42368a904cbf7418de329868989e592daChris Craik def SupportsExplicitClockSync(self): 427332cdb42368a904cbf7418de329868989e592daChris Craik return False 437332cdb42368a904cbf7418de329868989e592daChris Craik 447332cdb42368a904cbf7418de329868989e592daChris Craik # pylint: disable=unused-argument, no-self-use 457332cdb42368a904cbf7418de329868989e592daChris Craik def RecordClockSyncMarker(self, sync_id, did_record_sync_marker_callback): 467332cdb42368a904cbf7418de329868989e592daChris Craik print ('Clock sync marker cannot be recorded since explicit clock sync ' 477332cdb42368a904cbf7418de329868989e592daChris Craik 'is not supported.') 487332cdb42368a904cbf7418de329868989e592daChris Craik 497332cdb42368a904cbf7418de329868989e592daChris Craik def __repr__(self): 507332cdb42368a904cbf7418de329868989e592daChris Craik return 'faketracetwo' 517332cdb42368a904cbf7418de329868989e592daChris Craik 527332cdb42368a904cbf7418de329868989e592daChris Craik 537332cdb42368a904cbf7418de329868989e592daChris Craikclass FakeConfig(tracing_agents.TracingConfig): 547332cdb42368a904cbf7418de329868989e592daChris Craik def __init__(self): 557332cdb42368a904cbf7418de329868989e592daChris Craik tracing_agents.TracingConfig.__init__(self) 567332cdb42368a904cbf7418de329868989e592daChris Craik 577332cdb42368a904cbf7418de329868989e592daChris Craik 587332cdb42368a904cbf7418de329868989e592daChris Craik# pylint: disable=unused-argument 597332cdb42368a904cbf7418de329868989e592daChris Craikdef try_create_agent(config): 607332cdb42368a904cbf7418de329868989e592daChris Craik return FakeAgent2() 617332cdb42368a904cbf7418de329868989e592daChris Craik 627332cdb42368a904cbf7418de329868989e592daChris Craikdef add_options(parser): 637332cdb42368a904cbf7418de329868989e592daChris Craik options = optparse.OptionGroup(parser, 'Fake options.') 647332cdb42368a904cbf7418de329868989e592daChris Craik return options 657332cdb42368a904cbf7418de329868989e592daChris Craik 667332cdb42368a904cbf7418de329868989e592daChris Craik# pylint: disable=unused-argument 677332cdb42368a904cbf7418de329868989e592daChris Craikdef get_config(options): 687332cdb42368a904cbf7418de329868989e592daChris Craik return FakeConfig() 69