Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/taskcluster/gecko_taskgraph/util/   (Browser von der Mozilla Stiftung 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
C=94 H=99 G=96

¤ Dauer der Verarbeitung: 0.25 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

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.