def testWriteArgs(self): result = StringIO.StringIO() perfetto_trace_writer.write_thread_descriptor_event( output=result, pid=1, tid=2, ts=0, ) perfetto_trace_writer.write_event( output=result, ph="M", category="", name="", ts=0, args={ 'int': 123, 'double': 1.23, 'string': 'onetwothree' }, tid=2, ) expected_output = ( '\n\x13@\x00P\x80\x80@\xc8\x02\x01\xe2\x02\x04\x08\x01\x10' '\x02\xd0\x03@\nT@\x00P\x80\x80@Z;\x18\x01"\x07R\x03int {"\x11' 'R\x06double)\xaeG\xe1z\x14\xae\xf3?"\x15R\x06string2\x0bonetwothree2' '\x04\x08\x01\x10Mb\x0c\n\x04\x08\x01\x12\x00\x12\x04\x08\x01\x12\x00' '\xd0\x03@') self.assertEqual(expected_output, result.getvalue())
def _write_header(): tid = threading.current_thread().ident if not tid: tid = os.getpid() if _format == PROTOBUF: tid = threading.current_thread().ident perfetto_trace_writer.write_thread_descriptor_event( output=_log_file, pid=os.getpid(), tid=tid, ts=trace_time.Now(), ) perfetto_trace_writer.write_event( output=_log_file, ph="M", category="process_argv", name="process_argv", ts=trace_time.Now(), args=sys.argv, tid=tid, ) else: if _format == JSON: _log_file.write('[') elif _format == JSON_WITH_METADATA: _log_file.write('{"traceEvents": [\n') else: raise TraceException("Unknown format: %s" % _format) from py_trace_event import checkFileCode encoding = checkFileCode(_log_file) print str(encoding) json.dump( { "ph": "M", "category": "process_argv", "pid": os.getpid(), "tid": threading.current_thread().ident, "ts": trace_time.Now(), "name": "process_argv", "args": { "argv": sys.argv }, }, _log_file, encoding=encoding) _log_file.write('\n')
def _write_header(): if _format == PROTOBUF: tid = threading.current_thread().ident perfetto_trace_writer.write_clock_snapshot( output=_log_file, tid=tid, telemetry_ts=_telemetry_ts, boottime_ts=_boottime_ts, ) perfetto_trace_writer.write_thread_descriptor_event( output=_log_file, pid=os.getpid(), tid=tid, ts=trace_time.Now(), ) perfetto_trace_writer.write_event( output=_log_file, ph="M", category="process_argv", name="process_argv", ts=trace_time.Now(), args={"argv": sys.argv}, tid=tid, ) else: if _format == JSON: _log_file.write('[') elif _format == JSON_WITH_METADATA: _log_file.write('{"traceEvents": [\n') else: raise TraceException("Unknown format: %s" % _format) json.dump( { "ph": "M", "category": "process_argv", "pid": os.getpid(), "tid": threading.current_thread().ident, "ts": trace_time.Now(), "name": "process_argv", "args": { "argv": sys.argv }, }, _log_file) _log_file.write('\n')
def _write_cur_events(): if _format == PROTOBUF: for e in _cur_events: perfetto_trace_writer.write_event( output=_log_file, ph=e["ph"], category=e["category"], name=e["name"], ts=e["ts"], args=e["args"], tid=threading.current_thread().ident, ) elif _format in (JSON, JSON_WITH_METADATA): for e in _cur_events: _log_file.write(",\n") json.dump(e, _log_file) else: raise TraceException("Unknown format: %s" % _format) del _cur_events[:]
def _write_cur_events(): if _format == PROTOBUF: for e in _cur_events: perfetto_trace_writer.write_event( output=_log_file, ph=e["ph"], category=e["category"], name=e["name"], ts=e["ts"], args=e["args"], tid=threading.current_thread().ident, ) elif _format in (JSON, JSON_WITH_METADATA): for e in _cur_events: _log_file.write(",\n") json.dump(e, _log_file) else: raise TraceException("Unknown format: %s" % _format) del _cur_events[:]
def _write_header(): tid = threading.current_thread().ident if not tid: tid = os.getpid() if _format == PROTOBUF: tid = threading.current_thread().ident perfetto_trace_writer.write_thread_descriptor_event( output=_log_file, pid=os.getpid(), tid=tid, ts=trace_time.Now(), ) perfetto_trace_writer.write_event( output=_log_file, ph="M", category="process_argv", name="process_argv", ts=trace_time.Now(), args=sys.argv, tid=tid, ) else: if _format == JSON: _log_file.write('[') elif _format == JSON_WITH_METADATA: _log_file.write('{"traceEvents": [\n') else: raise TraceException("Unknown format: %s" % _format) json.dump({ "ph": "M", "category": "process_argv", "pid": os.getpid(), "tid": threading.current_thread().ident, "ts": trace_time.Now(), "name": "process_argv", "args": {"argv": sys.argv}, }, _log_file) _log_file.write('\n')
def testWriteTwoEvents(self): result = StringIO.StringIO() perfetto_trace_writer.write_thread_descriptor_event( output=result, pid=1, tid=2, ts=1556716807306000, ) perfetto_trace_writer.write_event( output=result, ph="M", category="category", name="event_name", ts=1556716807406000, args={}, tid=2, ) expected_output = ( '\n\x17P\x80\x80@\xc8\x02\x01\xe2\x02\r\x08\x01\x10' '\x020\x90\xf6\xc2\x82\xb6\xfa\xe1\x02\n2P\x80\x80@Z\x0c\x08' '\xa0\x8d\x06\x18\x012\x04\x08\x01\x10Mb\x1e\n\x0c\x08\x01' '\x12\x08category\x12\x0e\x08\x01\x12\nevent_name') self.assertEqual(expected_output, result.getvalue())
def testWriteTwoEvents(self): result = StringIO.StringIO() perfetto_trace_writer.write_thread_descriptor_event( output=result, pid=1, tid=2, ts=2076949764620672, ) perfetto_trace_writer.write_event( output=result, ph="M", category="category", name="event_name", ts=2076949764620673, args={}, tid=2, ) expected_output = ( '\n\x18P\x80\x80@\xc8\x02\x01\xe2\x02\x0e\x08\x01\x10\x020\x80\xb8' '\xaf\xc4\xe8\xd9\xb3\xe9\x1c\n1P\x80\x80@Z\x0b\x08\xe8\x07\x18\x002' '\x04\x08\x00\x10Mb\x1e\n\x0c\x08\x00\x12\x08category' '\x12\x0e\x08\x00\x12\nevent_name') self.assertEqual(expected_output, result.getvalue())
def testWriteTwoEvents(self): result = StringIO.StringIO() perfetto_trace_writer.write_thread_descriptor_event( output=result, pid=1, tid=2, ts=1556716807306000, ) perfetto_trace_writer.write_event( output=result, ph="M", category="category", name="event_name", ts=1556716807406000, args={}, tid=2, ) expected_output = ( '\n\x1b@\x80\xec\xea\xda\x83\xb6\xa4\xcd\x15P\x80\x80@' '\xc8\x02\x01\xe2\x02\x04\x08\x01\x10\x02\xd0\x03@\n;@' '\x80\xb0\xc2\x8a\x84\xb6\xa4\xcd\x15P\x80\x80@Z\x08' '\x18\x012\x04\x08\x01\x10Mb\x1e\n\x0c\x08\x01\x12\x08' 'category\x12\x0e\x08\x01\x12\nevent_name\xd0\x03@') self.assertEqual(expected_output, result.getvalue())