Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/taskcluster/test/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  test_mach_try_auto.py   Sprache: Python

 
# Any copyright is dedicated to the public domain.
http://creativecommons.org/publicdomain/zero/1.0/

import pytest
from gecko_taskgraph.util.bugbug import push_schedules
from gecko_taskgraph.util.chunking import BugbugLoader
from mozunit import main
from tryselect.selectors.auto import TRY_AUTO_PARAMETERS

pytestmark = pytest.mark.slow
PARAMS = TRY_AUTO_PARAMETERS.copy()
PARAMS.update(
    {
        "files_changed": [
            "dom/html/HTMLDetailsElement.cpp",
            "gfx/thebes/gfxUserFontSet.cpp",
        ],
        "head_repository""https://hg.mozilla.org/try",
        "project""try",
        "target_kind""test",
        # These ensure this isn't considered a backstop. The pushdate must
        # be slightly higher than the one in data/pushes.json, and
        # pushlog_id must not be a multiple of 10.
        "pushdate": 1593029536,
        "pushlog_id""2",
    }
)


def test_generate_graph(optimized_task_graph):
    """Simply tests that generating the graph does not fail."""
    assert len(optimized_task_graph.tasks) > 0


def test_only_important_manifests(params, full_task_graph, filter_tasks):
    data = push_schedules(params["project"], params["head_rev"])
    important_manifests = {
        m
        for m, c in data.get("groups", {}).items()
        if c >= BugbugLoader.CONFIDENCE_THRESHOLD
    }

    # Ensure we don't schedule unimportant manifests.
    for task in filter_tasks(full_task_graph, lambda t: t.kind == "test"):
        attr = task.attributes.get

        if "test_manifests" in task.attributes:
            unimportant = [
                t for t in attr("test_manifests"if t not in important_manifests
            ]

            # Manifest scheduling is disabled for mochitest-ally.
            if attr("unittest_suite"in ["mochitest-a11y"]:
                assert len(unimportant) > 0
            else:
                assert unimportant == []


@pytest.mark.parametrize(
    "func,min_expected",
    (
        pytest.param(
            lambda t: (
                t.kind == "test"
                and t.attributes["unittest_suite"] == "mochitest-browser-chrome"
            ),
            5,
            id="mochitest-browser-chrome",
        ),
    ),
)
def test_tasks_are_scheduled(optimized_task_graph, filter_tasks, func, min_expected):
    """Ensure the specified tasks are scheduled on mozilla-central."""
    tasks = [t.label for t in filter_tasks(optimized_task_graph, func)]
    assert len(tasks) >= min_expected


@pytest.mark.parametrize(
    "func",
    (
        pytest.param(
            lambda t: t.kind == "build"
            and "shippable" in t.attributes["build_platform"],
            id="no shippable builds",
        ),
        pytest.param(
            lambda t: t.kind == "build" and "fuzzing" in t.attributes["build_platform"],
            id="no fuzzing builds",
        ),
        pytest.param(
            lambda t: t.kind == "build" and "ccov" in t.attributes["build_platform"],
            id="no ccov builds",
        ),
        # We should only assert that we have no signed builds on platforms that don't run
        # xpcshell tests.
        pytest.param(
            lambda t: t.kind == "build-signing",
            id="no build-signing",
            marks=pytest.mark.xfail(reason="some xpcshell tests require signed builds"),
        ),
        pytest.param(
            lambda t: t.kind == "upload-symbols",
            id="no upload-symbols",
        ),
    ),
)
def test_tasks_are_not_scheduled(
    optimized_task_graph, filter_tasks, print_dependents, func
):
    tasks = [t.label for t in filter_tasks(optimized_task_graph, func)]
    for t in tasks:
        print_dependents(optimized_task_graph, t)
    assert tasks == []


if __name__ == "__main__":
    main()

78%


¤ Dauer der Verarbeitung: 0.13 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 ist noch experimentell.