1#!/usr/bin/env python3 2# Copyright (C) 2023 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 Path, DataPath, Metric 17from python.generators.diff_tests.testing import Csv, Json, TextProto 18from python.generators.diff_tests.testing import DiffTestBlueprint 19from python.generators.diff_tests.testing import TestSuite 20 21 22class Ufs(TestSuite): 23 # UFS command 24 def test_ufshcd_command(self): 25 return DiffTestBlueprint( 26 trace=Path('ufshcd_command.textproto'), 27 query=""" 28 SELECT 29 ts, 30 value 31 FROM 32 counter AS c 33 JOIN 34 counter_track AS ct 35 ON c.track_id = ct.id 36 WHERE 37 ct.name = "io.ufs.command.count" 38 ORDER BY ts; 39 """, 40 out=Csv(""" 41 "ts","value" 42 10000,1.000000 43 10008,2.000000 44 10010,3.000000 45 10011,1.000000 46 """)) 47 48 def test_ufshcd_command_tag(self): 49 return DiffTestBlueprint( 50 trace=Path('ufshcd_command_tag.textproto'), 51 query=""" 52 SELECT ts, dur, slice.name 53 FROM slice 54 JOIN track ON slice.track_id = track.id 55 WHERE track.name GLOB 'io.ufs.command.tag*' 56 ORDER BY ts; 57 """, 58 out=Csv(""" 59 "ts","dur","name" 60 10000,800,"READ (10)" 61 10900,50,"WRITE (10) (GID=0x16)" 62 """)) 63