xref: /aosp_15_r20/external/angle/build/fuchsia/test/monitors.py (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2024 The Chromium Authors
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker""" The module to provide measurements when it's supported. """
5*8975f5c5SAndroid Build Coastguard Worker
6*8975f5c5SAndroid Build Coastguard Workerimport os
7*8975f5c5SAndroid Build Coastguard Workerimport sys
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard Workerfrom contextlib import AbstractContextManager
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Workerfrom common import DIR_SRC_ROOT
12*8975f5c5SAndroid Build Coastguard Worker
13*8975f5c5SAndroid Build Coastguard WorkerPROTO_DIR = os.path.abspath(
14*8975f5c5SAndroid Build Coastguard Worker    os.path.join(DIR_SRC_ROOT, 'build', 'util', 'lib', 'proto'))
15*8975f5c5SAndroid Build Coastguard Workerif os.path.isdir(PROTO_DIR):
16*8975f5c5SAndroid Build Coastguard Worker    sys.path.append(PROTO_DIR)
17*8975f5c5SAndroid Build Coastguard Worker    # pylint: disable=import-error, unused-import
18*8975f5c5SAndroid Build Coastguard Worker    from measures import average, clear, count, data_points, dump, tag, \
19*8975f5c5SAndroid Build Coastguard Worker            time_consumption
20*8975f5c5SAndroid Build Coastguard Workerelse:
21*8975f5c5SAndroid Build Coastguard Worker
22*8975f5c5SAndroid Build Coastguard Worker    class Dummy(AbstractContextManager):
23*8975f5c5SAndroid Build Coastguard Worker        """Dummy implementation when measures components do not exist."""
24*8975f5c5SAndroid Build Coastguard Worker
25*8975f5c5SAndroid Build Coastguard Worker        # pylint: disable=no-self-use
26*8975f5c5SAndroid Build Coastguard Worker        def record(self, *_) -> None:
27*8975f5c5SAndroid Build Coastguard Worker            """Dummy implementation of Measure.record."""
28*8975f5c5SAndroid Build Coastguard Worker
29*8975f5c5SAndroid Build Coastguard Worker        # pylint: disable=no-self-use
30*8975f5c5SAndroid Build Coastguard Worker        def dump(self) -> None:
31*8975f5c5SAndroid Build Coastguard Worker            """Dummy implementation of Measure.dump."""
32*8975f5c5SAndroid Build Coastguard Worker            # Shouldn't be called.
33*8975f5c5SAndroid Build Coastguard Worker            assert False
34*8975f5c5SAndroid Build Coastguard Worker
35*8975f5c5SAndroid Build Coastguard Worker        # pylint: disable=no-self-use
36*8975f5c5SAndroid Build Coastguard Worker        def __enter__(self) -> None:
37*8975f5c5SAndroid Build Coastguard Worker            pass
38*8975f5c5SAndroid Build Coastguard Worker
39*8975f5c5SAndroid Build Coastguard Worker        # pylint: disable=no-self-use
40*8975f5c5SAndroid Build Coastguard Worker        def __exit__(self, *_) -> bool:
41*8975f5c5SAndroid Build Coastguard Worker            return False
42*8975f5c5SAndroid Build Coastguard Worker
43*8975f5c5SAndroid Build Coastguard Worker    def average(*_) -> Dummy:
44*8975f5c5SAndroid Build Coastguard Worker        """Dummy implementation of measures.average."""
45*8975f5c5SAndroid Build Coastguard Worker        return Dummy()
46*8975f5c5SAndroid Build Coastguard Worker
47*8975f5c5SAndroid Build Coastguard Worker    def count(*_) -> Dummy:
48*8975f5c5SAndroid Build Coastguard Worker        """Dummy implementation of measures.count."""
49*8975f5c5SAndroid Build Coastguard Worker        return Dummy()
50*8975f5c5SAndroid Build Coastguard Worker
51*8975f5c5SAndroid Build Coastguard Worker    def clear(*_) -> None:
52*8975f5c5SAndroid Build Coastguard Worker        """Dummy implementation of measures.clear."""
53*8975f5c5SAndroid Build Coastguard Worker
54*8975f5c5SAndroid Build Coastguard Worker    def data_points(*_) -> Dummy:
55*8975f5c5SAndroid Build Coastguard Worker        """Dummy implementation of measures.data_points."""
56*8975f5c5SAndroid Build Coastguard Worker        return Dummy()
57*8975f5c5SAndroid Build Coastguard Worker
58*8975f5c5SAndroid Build Coastguard Worker    def time_consumption(*_) -> Dummy:
59*8975f5c5SAndroid Build Coastguard Worker        """Dummy implementation of measures.time_consumption."""
60*8975f5c5SAndroid Build Coastguard Worker        return Dummy()
61*8975f5c5SAndroid Build Coastguard Worker
62*8975f5c5SAndroid Build Coastguard Worker    def dump(*_) -> None:
63*8975f5c5SAndroid Build Coastguard Worker        """Dummy implementation of measures.dump."""
64*8975f5c5SAndroid Build Coastguard Worker
65*8975f5c5SAndroid Build Coastguard Worker    def tag(*_) -> None:
66*8975f5c5SAndroid Build Coastguard Worker        """Dummy implementation of measures.tag."""
67