Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/taskcluster/gecko_taskgraph/util/   (Firefox Browser Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  perfile.py

  Sprache: Python
 

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.


import itertools
import json
import logging
import math

import taskgraph
from mozbuild.util import memoize
from mozpack.path import match as mozpackmatch

logger = logging.getLogger(__name__)


@memoize
def perfile_number_of_chunks(is_try, try_task_config, files_changed, type):
    changed_files = set(files_changed)
    if taskgraph.fast and not is_try:
        # When iterating on taskgraph changes, the exact number of chunks that
        # test-verify runs usually isn't important, so skip it when going fast.
        return 3
    tests_per_chunk = 10.0
    if type.startswith("test-coverage"):
        tests_per_chunk = 30.0

    if type.startswith("test-verify-wpt"or type.startswith("test-coverage-wpt"):
        file_patterns = [
            "testing/web-platform/tests/**",
            "testing/web-platform/mozilla/tests/**",
        ]
    elif type.startswith("test-verify-gpu"or type.startswith("test-coverage-gpu"):
        file_patterns = [
            "**/*webgl*/**/test_*",
            "**/dom/canvas/**/test_*",
            "**/gfx/tests/**/test_*",
            "**/devtools/canvasdebugger/**/browser_*",
            "**/reftest*/**",
        ]
    elif type.startswith("test-verify"or type.startswith("test-coverage"):
        file_patterns = [
            "**/test_*",
            "**/browser_*",
            "**/crashtest*/**",
            "js/src/tests/test/**",
            "js/src/tests/non262/**",
            "js/src/tests/test262/**",
        ]
    else:
        # Returning 0 means no tests to run, this captures non test-verify tasks
        return 1

    if try_task_config:
        suite_to_paths = json.loads(try_task_config)
        specified_files = itertools.chain.from_iterable(suite_to_paths.values())
        changed_files.update(specified_files)

    test_count = 0
    for pattern in file_patterns:
        for path in changed_files:
            # TODO: consider running tests if a manifest changes
            if path.endswith(".list"or path.endswith(".ini"):
                continue
            if path.endswith("^headers^"):
                continue

            if mozpackmatch(path, pattern):
                gpu = False
                if type == "test-verify-e10s" or type == "test-coverage-e10s":
                    # file_patterns for test-verify will pick up some gpu tests, lets ignore
                    # in the case of reftest, we will not have any in the regular case
                    gpu_dirs = [
                        "dom/canvas",
                        "gfx/tests",
                        "devtools/canvasdebugger",
                        "webgl",
                    ]
                    for gdir in gpu_dirs:
                        if len(path.split(gdir)) > 1:
                            gpu = True

                if not gpu:
                    test_count += 1

    chunks = test_count / tests_per_chunk
    chunks = int(math.ceil(chunks))

    # Never return 0 chunks on try, so that per-file tests can be pushed to try with
    # an explicit path, and also so "empty" runs can be checked on try.
    if is_try and chunks == 0:
        chunks = 1

    return chunks

Messung V0.5 in Prozent
C=91 H=87 G=88

¤ Dauer der Verarbeitung: 0.21 Sekunden  (vorverarbeitet am  2026-06-06) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.