xref: /aosp_15_r20/external/perfetto/test/trace_processor/diff_tests/parser/etm/tests.py (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1#!/usr/bin/env python3
2# Copyright (C) 2024 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 a
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 python.generators.diff_tests.testing import Csv, Path, DataPath
17from python.generators.diff_tests.testing import DiffTestBlueprint
18from python.generators.diff_tests.testing import TestSuite
19
20
21class Etm(TestSuite):
22
23  def test_sessions(self):
24    return DiffTestBlueprint(
25        trace=DataPath('simpleperf/cs_etm_u.perf'),
26        query='''
27          SELECT start_ts, cpu, size
28          FROM
29            __intrinsic_etm_v4_configuration AS C,
30             __intrinsic_etm_v4_session AS s
31             ON c.id = s.configuration_id,
32             __intrinsic_etm_v4_trace AS t
33             ON s.id = t.session_id
34          WHERE start_ts < 21077000721310
35          ORDER BY start_ts ASC
36        ''',
37        out=Csv('''
38         "start_ts","cpu","size"
39          21076849718299,8,238
40          21076860480953,8,238
41          21076871238359,8,238
42          21076882058915,8,238
43          21076892817338,8,238
44          21076903628740,8,238
45          21076914454749,8,238
46          21076924779741,8,238
47          21076935681637,8,238
48          21076946070594,8,360
49          21076956953243,8,238
50          21076967922726,8,238
51          21076978919593,8,238
52          21076989801225,8,356
53        '''))
54
55  def test_decode_all(self):
56    return DiffTestBlueprint(
57        trace=DataPath('simpleperf/cs_etm_u.perf'),
58        query='''
59          SELECT count(*)
60          FROM
61            __intrinsic_etm_v4_trace t,
62            __intrinsic_etm_decode_trace d
63            ON t.id = d.trace_id
64        ''',
65        out=Csv('''
66          "count(*)"
67          5871
68        '''))
69
70  def test_decode_trace(self):
71    return DiffTestBlueprint(
72        trace=DataPath('simpleperf/cs_etm_u.perf'),
73        query='''
74          SELECT *
75          FROM
76            __intrinsic_etm_decode_trace
77          WHERE trace_id = 0
78        ''',
79        out=Csv('''
80          "trace_index","element_index","element_type","timestamp","cycle_count","exception_level","context_id","isa","start_address","end_address","mapping_id"
81          12,0,"NO_SYNC","[NULL]","[NULL]","[NULL]","[NULL]","UNKNOWN",-1,-1,"[NULL]"
82          40,1,"TRACE_ON","[NULL]","[NULL]","[NULL]","[NULL]","UNKNOWN",-1,-1,"[NULL]"
83          40,2,"PE_CONTEXT","[NULL]","[NULL]",0,315,"AARCH64",-1,-1,"[NULL]"
84          40,3,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487860616,-1,13
85          50,4,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487537936,-1,13
86          60,5,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",434500225096,-1,1
87          70,6,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487560912,-1,13
88          76,7,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487493696,-1,13
89          85,8,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487561064,-1,13
90          91,9,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487412480,-1,13
91          97,10,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487818588,-1,13
92          107,11,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487819616,-1,13
93          112,12,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487821296,-1,13
94          130,13,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487386304,-1,13
95          137,14,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487799440,-1,13
96          144,15,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487387072,-1,13
97          152,16,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487799592,-1,13
98          159,17,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487386304,-1,13
99          166,18,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487799440,-1,13
100          173,19,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487387072,-1,13
101          180,20,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487799592,-1,13
102          187,21,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487827048,-1,13
103          199,22,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487386304,-1,13
104          206,23,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487799440,-1,13
105          213,24,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487387072,-1,13
106          221,25,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487799592,-1,13
107          229,26,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487548832,-1,13
108          235,27,"ADDR_NACC","[NULL]","[NULL]",0,315,"AARCH64",523487677904,-1,13
109        '''))