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 31 foo AS ( 32 SELECT 0 AS id, 0 AS ts, 10 AS value, 1 AS track_id 33 UNION ALL 34 SELECT 1 AS id, 0 AS ts, 10 AS value, 2 AS track_id 35 UNION ALL 36 SELECT 2 AS id, 10 AS ts, 10 AS value, 1 AS track_id 37 UNION ALL 38 SELECT 3 AS id, 10 AS ts, 20 AS value, 2 AS track_id 39 UNION ALL 40 SELECT 4 AS id, 20 AS ts, 30 AS value, 1 AS track_id 41 ) 42 SELECT * FROM counter_leading_intervals !(foo); 43 """, 44 out=Csv(""" 45 "id","ts","dur","track_id","value","next_value","delta_value" 46 0,0,20,1,10,30,"[NULL]" 47 4,20,19980,1,30,"[NULL]",20 48 1,0,10,2,10,20,"[NULL]" 49 3,10,19990,2,20,"[NULL]",10 50 """)) 51