File: gpu_builders.py

package info (click to toggle)
chromium 139.0.7258.127-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,122,156 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (68 lines) | stat: -rw-r--r-- 2,475 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""GPU-specific implementation of the unexpected passes' builders module."""

from typing import Any, Dict, Optional, Set

from unexpected_passes_common import builders
from unexpected_passes_common import constants
from unexpected_passes_common import data_types

from chrome_telemetry_build import android_browser_types as abt


class GpuBuilders(builders.Builders):
  def __init__(self, suite: str, include_internal_builders: bool):
    super().__init__(suite, include_internal_builders)
    self._isolate_names: Optional[Set[str]] = None
    self._non_chromium_builders: Optional[Set[data_types.BuilderEntry]] = None

  def _BuilderRunsTestOfInterest(self, test_map: Dict[str, Any]) -> bool:
    # Builders running tests in Chrome Labs.
    tests = test_map.get('isolated_scripts', [])
    for t in tests:
      if t.get('test') not in self.GetIsolateNames():
        continue
      if self._suite in t.get('args', []):
        return True

    # Builders running tests in Skylab.
    tests = test_map.get('skylab_tests', [])
    for t in tests:
      if t.get('test') not in self.GetIsolateNames():
        continue
      if self._suite in t.get('args', []):
        return True

    return False

  def GetIsolateNames(self) -> Set[str]:
    if self._isolate_names is None:
      self._isolate_names = {
          'telemetry_gpu_integration_test',
          'telemetry_gpu_integration_test_fuchsia',
      }
      # Android targets are split based on binary type, so add those using the
      # maintained list of suffixes.
      for suffix in abt.TELEMETRY_ANDROID_BROWSER_TARGET_SUFFIXES:
        self._isolate_names.add('telemetry_gpu_integration_test' + suffix)
    return self._isolate_names

  def GetFakeCiBuilders(self) -> builders.FakeBuildersDict:
    return {}

  def GetNonChromiumBuilders(self) -> Set[data_types.BuilderEntry]:
    if self._non_chromium_builders is None:
      str_builders = {
          'Win V8 FYI Release (NVIDIA)',
          'Mac V8 FYI Release (Intel)',
          'Linux V8 FYI Release - pointer compression (NVIDIA)',
          'Linux V8 FYI Release (NVIDIA)',
          'Android V8 FYI Release',
      }
      self._non_chromium_builders = {
          data_types.BuilderEntry(b, constants.BuilderTypes.CI, False)
          for b in str_builders
      }
    return self._non_chromium_builders