xref: /aosp_15_r20/external/perfetto/test/trace_processor/diff_tests/stdlib/counters/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 DataPath
17from python.generators.diff_tests.testing import Csv, TextProto
18from python.generators.diff_tests.testing import DiffTestBlueprint
19from python.generators.diff_tests.testing import TestSuite
20
21
22class StdlibCounterIntervals(TestSuite):
23
24  def test_intervals_counter_leading(self):
25    return DiffTestBlueprint(
26        trace=DataPath('counters.json'),
27        query="""
28        INCLUDE PERFETTO MODULE counters.intervals;
29
30          WITH data(id, ts, value, track_id) AS (
31            VALUES
32            (0, 0, 10, 1),
33            (1, 0, 10, 2),
34            (2, 10, 10, 1),
35            (3, 10, 20, 2),
36            (4, 20, 30, 1)
37          )
38          SELECT * FROM counter_leading_intervals!(data);
39        """,
40        out=Csv("""
41        "id","ts","dur","track_id","value","next_value","delta_value"
42        0,0,20,1,10.000000,30.000000,"[NULL]"
43        4,20,19980,1,30.000000,"[NULL]",20.000000
44        1,0,10,2,10.000000,20.000000,"[NULL]"
45        3,10,19990,2,20.000000,"[NULL]",10.000000
46        """))
47