• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python3
2# Copyright (C) 2022 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16from os import sys, path
17
18import synth_common
19
20PROCESS_A_NAME = 'test_process_a'
21PROCESS_B_NAME = 'test_process_b'
22PROCESS_C_NAME = 'test_process_c'
23PROCESS_A_PID = 1
24PROCESS_B_PID = 2
25PROCESS_C_PID = 3
26PROCESS_A_PPID = 4
27PROCESS_B_PPID = 5
28PROCESS_C_PPID = 6
29PROCESS_A_TID = 7
30# These values need to be the same to keep track of process ids in kernel space
31PROCESS_B_TID = PROCESS_B_PID
32PROCESS_C_TID = PROCESS_C_PID
33
34trace = synth_common.create_trace()
35trace.add_packet()
36trace.add_process(PROCESS_A_PID, PROCESS_A_PPID, PROCESS_A_NAME)
37trace.add_process(PROCESS_B_PID, PROCESS_B_PPID, PROCESS_B_NAME)
38trace.add_process(PROCESS_C_PID, PROCESS_C_PPID, PROCESS_C_NAME)
39trace.add_thread(PROCESS_A_TID, PROCESS_A_PID, cmdline='Binder')
40trace.add_ftrace_packet(cpu=0)
41
42trace.add_binder_transaction(
43    transaction_id=1,
44    ts_start=1,
45    ts_end=2,
46    tid=PROCESS_A_TID,
47    pid=PROCESS_A_PID,
48    reply_id=2,
49    reply_ts_start=3,
50    reply_ts_end=4,
51    reply_tid=PROCESS_B_TID,
52    reply_pid=PROCESS_B_PID)
53trace.add_binder_transaction(
54    transaction_id=3,
55    ts_start=5,
56    ts_end=6,
57    tid=PROCESS_A_TID,
58    pid=PROCESS_A_PID,
59    reply_id=4,
60    reply_ts_start=7,
61    reply_ts_end=8,
62    reply_tid=PROCESS_C_TID,
63    reply_pid=PROCESS_C_PID)
64
65sys.stdout.buffer.write(trace.trace.SerializeToString())
66