• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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