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 StartupMetrics(TestSuite): 23 24 def test_android_startup(self): 25 return DiffTestBlueprint( 26 trace=Path('android_startup.py'), 27 query=Metric('android_startup'), 28 out=Path('android_startup.out')) 29 30 def test_android_startup_slow(self): 31 return DiffTestBlueprint( 32 trace=Path('android_startup_slow.py'), 33 query=Metric('android_startup'), 34 out=Path('android_startup_slow.out')) 35 36 def test_android_startup_minsdk33(self): 37 return DiffTestBlueprint( 38 trace=Path('android_startup_minsdk33.py'), 39 query=Metric('android_startup'), 40 out=Path('android_startup_minsdk33.out')) 41 42 def test_android_startup_breakdown(self): 43 return DiffTestBlueprint( 44 trace=Path('android_startup_breakdown.py'), 45 query=Metric('android_startup'), 46 out=Path('android_startup_breakdown.out')) 47 48 def test_android_startup_breakdown_slow(self): 49 return DiffTestBlueprint( 50 trace=Path('android_startup_breakdown_slow.py'), 51 query=Metric('android_startup'), 52 out=Path('android_startup_breakdown_slow.out')) 53 54 def test_android_startup_process_track(self): 55 return DiffTestBlueprint( 56 trace=Path('android_startup_process_track.py'), 57 query=Metric('android_startup'), 58 out=Path('android_startup_process_track.out')) 59 60 def test_android_startup_attribution(self): 61 return DiffTestBlueprint( 62 trace=Path('android_startup_attribution.py'), 63 query=Metric('android_startup'), 64 out=Path('android_startup_attribution.out')) 65 66 def test_android_startup_attribution_slow(self): 67 return DiffTestBlueprint( 68 trace=Path('android_startup_attribution_slow.py'), 69 query=Metric('android_startup'), 70 out=Path('android_startup_attribution_slow.out')) 71 72 # Other metrics associated with startup. 73 def test_android_batt_counters(self): 74 return DiffTestBlueprint( 75 trace=Path('android_startup_battery.py'), 76 query=Metric('android_batt'), 77 out=TextProto(r""" 78 android_batt{ 79 battery_counters{ 80 timestamp_ns: 100000000000 81 charge_counter_uah: 5500000 82 capacity_percent: 0.2 83 current_ua: 990000 84 current_avg_ua: 12 85 voltage_uv: 8448000.0 86 } 87 battery_counters { 88 timestamp_ns: 200000000000 89 charge_counter_uah: 5490000 90 capacity_percent: 0.8 91 current_ua: 710000 92 current_avg_ua: 93 93 voltage_uv: 8448000.0 94 } 95 battery_counters { 96 timestamp_ns: 300000000000 97 charge_counter_uah: 5480000 98 capacity_percent: 0.5 99 current_ua: 510000 100 current_avg_ua: 5 101 voltage_uv: 8452000.0 102 } 103 battery_counters { 104 timestamp_ns: 400000000000 105 charge_counter_uah: 5470000 106 capacity_percent: 0.3 107 current_avg_ua: 25 108 voltage_uv: 8460000.0 109 } 110 battery_aggregates { 111 avg_power_mw: 6223.666666666667 112 avg_power_from_charge_diff_mw: 2253.599999999949 113 } 114 } 115 """)) 116 117 def test_android_startup_cpu(self): 118 return DiffTestBlueprint( 119 trace=Path('android_startup_cpu.py'), 120 query=Metric('android_cpu'), 121 out=Path('android_startup_cpu.out')) 122 123 def test_android_startup_powrails(self): 124 return DiffTestBlueprint( 125 trace=Path('android_startup_powrails.py'), 126 query=Metric('android_powrails'), 127 out=Path('android_startup_powrails.out')) 128