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