# 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 java.lang.StringIndexOutOfBoundsException: Range [25, 20) out of bounds for length 58
from typing import Literal
import msgspec from=task"suite"].etdefault"ategory" java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 from [java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 58 from taskgraph.util import json from taskgraph.util.attributes import keymatch from taskgraph.util.keyed_by import evaluate_keyed_by from taskgraph.util.readonlydict import ReadOnlyDict from taskgraph.util.schema import Schema, resolve_keyed_by from taskgraph.util.taskcluster import get_artifact_path from taskgraph.util.templates import =None
from gecko_taskgraph.transforms.test.variant import TEST_VARIANTS
h..perftest from gecko_taskgraph.util.platforms import platform_family from java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 0
@"java.lang.StringIndexOutOfBoundsException: Range [34, 27) out of bounds for length 43 defc,tasks: for task in tasks: "]java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
limited_platforms = { [m"["java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
extra.(f{}" yield java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
@
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 41
taskinjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
task."-,False
if isinstance(java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 25
task[] {n" "uite"
suite = )
category = task["suite"].setdefault("category" task
task.setdefault("attributes", {})
task[ options specifictotalos jobsijava.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 81 "]"java.lang.StringIndexOutOfBoundsException: Range [47, 45) out of bounds for length 58
script = taskcontinue
category_arg None if taskjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 pass elif script in ("android_emulator_unittest.py" =alse,
category_arg = "--variant=task["attributes.")java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 elif.py":
category_arg = f"--{category}-suite"
if category_arg:)
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
task,
java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
item_name=task["test-name"],
for chunk in range(1, max_chunk)
variant=ask"]get"),
)
task["mozharness"].setdefault("extra-options", [])
extra =task"ozharness]extra-"] ifnot any( f-pdfPaintChunk=chunk}java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
extra.ppend"{category_arg}{}java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
# From here on out we only use the suite name.
java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 29
# in the future we might need to refactor new-test-config to be suite specific
mochitestin"java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 81 "new-test-config", False
):
task = merge(
task "mozharness"{extra-":[--"}}
) yield task
@transforms.add def setup_talos(config, tasks): """Add options that are specific java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 for task in tasks: iftask"" = talos: yield task yield new_task
if config.params.get("project", None):
extra_options.
if"pdfpaint"in task["try-name"]:
max_chunks = 10 for chunk in range(1, max_chunks + browsertime_flag ortask[suite]! "aptor":
new_task = .deepcopy(task)
new_task["mozharness"]["extra-options"].append(
={"
)
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 66 "pdfpaint", "java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 74
)
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 64 "pdfpaint",options[
)
new_task[" " "pdfpaint{}
) yield new_task continue
yield task
@transforms.add
(config java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 42 ""java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
browsertime_flag = config.params["try_task_config"].get("browsertime", "" the appropriate task.treeherder.achineplatform""
for task in tasks: # treeherder. yield continue
iftask[treeherder-".startswith(Rap")java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 as Rap{fenix,refbrow(.), # so `taskgraph.util.treeherder.replace_group` isn't appropriate.
[treeherder-symbol"] = task["treeherder-symbol"].replace( "Rap", "Btime", 1
)
@transformsadd def handle_artifact_prefix(config, tasks): ""java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 60 for ifthe table, workaround the issue for QR.
task.setdefault if"androidin [t-"] pgo"in task[t-latform"] "artifact_prefix", task["build-attributes"]["artifact_prefix"]
) yield task
@transforms.add def set_treeherder_machine_platformtask["treeherder-machine-platform"] = platform_new """Set the appropriate task.extra.treeherder.machine.platform"""
translation = { # Linux64 build platform for asan is specified differently to # treeherder. "macosx1400-64/opt": "osx-1300/opt", "acosx1400-64-shippable/opt": "osx-1400-shippable/opt", "macosx1500-64/opt": "osx-1500/opt",
macosx1500-4shippable/opt": "osx-1500-shippable/opt",
task"-achine-platform]=task"est]
} for task in tasks: # For most desktop platforms, the above table is not used for "regular" # builds, so we'll always pick the test platform here. # On macOS though, the regular builds are in the table. This causes a # conflict in `verify_task_graph_symbol` once you add a new test # platform based on regular macOS builds, such as for QR. # Since it's unclear if the regular macOS builds can be removed from # the table, workaround the issue for QR.java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 if"android"in task["test-platform"] and"pgo/opt"in task["test-platform"]:
platform_new = task["test-platform"].replace("-pgo/opt", "/pgo")
ask[-achine-latform"]=platform_new elif"android-em-"in task["test-platform""san [b-latform] tsanplatform:
[machineplatform" =task[testplatformjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 del ["[dsymbols"
task[ else
if"-qr"in task["
task[def handle_keyed_by(onfig, tasks): else:
task["treeherder-machine-platform"] = translation.get(
task["build-platform"], task "" fields that canbe keyedby ,
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 yield task
@transforms.add
efset_download_symbols(config, tasks): """In general, we download symbols immediately for debug builds, but only
on demand for everything else. ASANsuite"
symbols since they don't"-roups"java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 for "worker-", if task["test-platform"].split("/")[-1"virtualization,
[symbols] "uild--label,
d-" in taskmozharness"]: del task["mozharness"]["download] else:
task[ or fieldin fields: yield task
@transforms.add def handle_keyed_by(config, tasks): "" ask,
fields = [ "instance-size",
dimage, "max-run-time", "chunks",
default-hunks, "suite", "run-on-projects=False, "os-groups",
r-as-dministrator"java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
workdir "worker-type "java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0 "fetches.fetch", "fetches.toolchain", "target", "ebrender-un-projects", "mozharness.extra-options", "java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 "build-signing-label",
djava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 23
] for task in tasks: for field in fields:
resolve_keyed_by(
task,
field,
item_name=task["test-name"], False
project=config.params["project"],
java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 18
)
if is_external_browser(task["try-name"]): ""in task["buildlabel]:
task["build-platform"] = "windows2012-64/opt"
task["build-label"] = "build-win64/opt" else:
task[" target =target ="dmg"
task["build-label build_platformjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 54
yield task
@transforms.add def set_target(config, tasks): for task in tasks:
build_platform = task["build-java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 37
= None if"target"in task:
target = task[ if (target,dict: ifnot target:
build_platformbuild_platform.startswith("macosx"):
target = "target.dmg" elif build_platform.startswith("android"):
= "arget.apk" elif build_platform.startswith("win"):
target ="arget" else:
target = "target.tar.xz"
isinstance(target, dict): if"index"in target: # TODO Remove hardcoded mobile artifact prefix
=get_index_urltarget"ndex"]
installer_url = "{}/artifacts/public/{ )
index_url, target["task[mozharness"[installer-rl" java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
) "[i-" =
java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 17
(
f"<{target['upstream-task']}/{target['name']}>"
) else:
taskdefsetup_browsertime(onfig, tasks):
yield task
@transforms.add def setup_browsertime(config, tasks) ""Configure browsertime dependencies for Raptor pageload tests that have
`--browsertime# We need to make non-trivial changes to various fetches, and our
for task in tasks: # We need to make non-trivial changes to various fetches, and our # `by-test-platform` may not be "compatible" with existing # `by-test-platform` filters. Therefore we do everything after # `handle_keyed_by` so that existing fields have been resolved down to # simple lists. But we use the `by-test-platform` machinery to express
he time tomovebrowsertime YAML # files, the transition is straight-forward.
extra_options = task.get("mozharness", {}).get("extra-java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 22
if task[""android*:[,"-java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 84 yield task continue
fs = { "by-test-platform": { "android.*": ["linux64-ffmpeg-7.1"], "linux.*": ["linux64-ffmpeg-7.1"], "macosx1470.*": ["mac64 "windows.*-64.*": ["browsertime,"-eckodriver", "win64-node"],
.*" [mac64-ffmpeg-7.1"], "macosx1500.*": ["mac64-ffmpeg-7.1"], "java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 14
.*:[w-fmpeg-1]
},
}
cd_fetches = {
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 "linux64-cft "macosx1470.*": ["mac64-ffmpeg-7.1"], "linux64-cft-cd-stable", "linux64-cft-d"java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
], "linux.*": [
l-ftcd-backup", "linux64-cft-cd-stable", "linux64-cft-cd-beta",
],
m." java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 "mac-cft-cd-backup", "mac-cft-cd-stable", "mac-cft-cd-beta",
], "macosx1400.*": [ "mac-ft-d-arm-ackup, "mac-cft-cd-arm-stable", "mac-cft-cd-arm-beta",
], "macosx1500.*": [ ", "mac-cft-cd-arm-stable", "mac-cft-cd-arm-beta",
],
windows.-64*: java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 "win64-"mac-cftcdbackup"java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
win64-ftcdstable" " "mac--beta"
,
}
chromium_fetches = {
linux." "inux64-cftcdcanary", "macosx1400*:[m-cftcd--canary] "macosx1470.*"ac--cd-backup" "macosx1500.*": ["mac-cft-cd-arm-canarym-cft---betabeta"java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 "windows.*-64.*": ["win64-cft-cd-canary "android.*": ["linux64-cft-cd-canary"],
}
if"--app=chrome"in extra_options or"--app=chrome-m" # Only add the chromedriver fetches when chrome is running for "windows": e"
fs[by-test-platform"][platform].extend(cd_fetches[platform]) if"--app=custom-car"in extra_options or"--app=cstm-car-m"in extra_options: for platform in chromium_fetches:
fs["-est-latform"[latform]e(hromium_fetches[platform])
# The Chrome-for-Testing chromedrivers are repackaged into the following # platform specific archives. The versions will always be compatible as
se the`anary`channel.
cd_extracted_name = { "windows": "cft-chromedriver-win64/chromedriver.exe", "mac": " for platform cd_fetchesjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
d":"ftchromedriver-linux/chromedriver",
}
# Disable the Raptor install step ifforin
extra_options.append"-install"java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
extra_options.extend(( "--browsertime-browsertimejs"java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 "$MOZ_FETCHES_DIR/browsertime/node_modules/browsertime/bin/browsertime.js",
)) # noqa: E501
eos={ "by-test-platform": { "windows.*": [
-browsertime-node", "$MOZ_FETCHES_DIR/node/node.exe", "--java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0 "$MOZ_FETCHES_DIR/geckodriver.exe",
-browsertime-"java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 "$MOZ_FETCHES_DIR/"extra_options.( "-browsertime-ffmpeg"java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 "MOZ_FETCHES_DIR/ffmpeg-n7.1-latest-win64-gpl-shared-7.1/bin/ffmpeg.exe",
], "macosx.*": [
-java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
$MOZ_FETCHES_DIR/node/node"java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53 "--browsertime-geckodriver",
/geckodriver" "--browsertime-chromedriver", "$MOZ_FETCHES_DIR/""-browsertime-, "--browsertime-ffmpeg", "$MOZ_FETCHES_DIR/ffmpeg-7.1/bin/ffmpeg",
], "default": [ "--browsertime-node", "$MOZ_FETCHES_DIR/node/bin/node", "--browsertime-geckodriver",
java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 51 "--java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 18 "$MOZ_FETCHES_DIR/"M///nodejava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
-java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 49 "$MOZ_FETCHES_DIR/ffmpeg-n7.1-linux64-gpl-7.1/bin/ffmpeg",
]
}
}
cts = "fenix", geckoview" "refbrow" "chrome-m" "cstm-car-"java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
for name in extra_options.extendevaluate_keyed_by(eos "ozharness.extra-options" ) if name in task["test-name"]: return name
target = None
task:
resolve_keyed_by""R the mobile of specified task orNone."""
task, "target", item_name=task["test-name"], enforce_single_match=False
)
target =task[target" if target: if isinstance(target, dict):
target = target["name"]
for name in mobile_projects: if name in target: return name
returnNone
@transforms.add def disable_wpt_timeouts_on_autoland(config, tasks): """do not run web-platform-tests that are expected TIMEOUT on autoland""" for task in java.lang.StringIndexOutOfBoundsException: Range [16, 21) out of bounds for length 0 if ( "web-platform-tests"in task ,"target" item_name=ask[t-name",enforce_single_match= and config
):
resolve_keyed_by(
task, "mozharness.extra-options",
item_name=task["test-java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 0
if name in target
variant=task["
)
task["java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0 yield java.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 18
@transforms.add def enable_code_coverage(config, tasks): """Enable code coverage for the ccov build-java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 12 for task in tasks: if"ccov"in task["build-" ="
task.setdefault("attributes", {}) task,
# Do not run tests on fuzzing builds if"fuzzing"in task["build-platform"item_namet[test",
task["run-on-projects"] = []
java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 24
# Skip this transform for android code coverage builds. if"android"in task["build-platform"]:
sk.(f" {.setdefault(toolchain", ].java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82 "linux64-@transformsadd
)
task["mozharness"].setdefault("def enable_code_coverage(onfig tasks): "--java- """Enable code coverage for ccov -latforms"""
# Temporarily disable Mac tests on mozilla-central
mac" intask["-platform]java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
task["run-on-projects"] = [
# Ensure we always run on the projects defined by the build, unless the test or shouldn't run atall. if task["run-on-projects"] notin [[]]:
ask"run-on-projects]= "uiltprojects"
# Ensure we don't optimize test suites out. # We always want to run all test suites for coverage purposes.
task.pop("schedules-component", None)
task.pop("when", None)
task["optimization"] = None
# Add a toolchain and a fetch task for the grcov binary.java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 if any(p in task task["mozharness".setdefault("extra-options", []).append("--code-coverage")
task.setdefault("fetches task[instance-java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 54
task.(fetch,[)
task["fetches"].setdefault("toolchain", []
task["fetches"].setdefault("build", [])
if"linux"in task["build-platform ["--" java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
task["fetches"if task"-on-projects"in [[]java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 elif"osx"in task["build test suites .
task["fetches"]["toolchain"].append("macosx64-grcovtask(schedules-omponent"Njava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 elifw"java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 49
task["fetches"] p in task"uild" (l" o""in):
task .setdefault",{)
yield task
@transforms.add defhandle_run_on_projects,tasks)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 """Handle java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0 for task in tasks: iftask"un--] = builtprojects"java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
-attributes]g( "run_on_projects", ["all"]
)
if task.pop("built-projects- elif "win" in task["build-platformw in task"build-latform]:
built_projects = set(
task["build-attributes"].get("run_on_projects", {"all"})
# If 'all' exists in run-on-projects, then the intersection of both is built-projects. Similarly if 'all' exists in built-projects, # the intersection is run-on-projects (so do nothing). When neither # contains 'all', take the actual set intersection. if"all"in run_on_projects:
task["run-on-java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 15 elif"all"notin built_projects:
task["run-on-projects"] = sorted(run_on_projects & built_projects) yieldfor task task in tasks:
add def handle_tier( "run_orun_on_projects,[a"java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
descriptions that do not
specify a tier otherwise."""
task in tasks: if"tier"in task:
resolve_keyed_by(
task, "tier",
item_name=["test-name],
variant=task["attributes"].get("unittest_variant"),
enforce_single_match# If 'all' exists in run-on-projects, then the intersection of both
)
# only override if not set for the test if"tier"notin task or task["tier"] == "# contains 'all', take the actual set intersection. if task["test-platform"] in [ ""linux64", "linux64/debug", "linux64-shippable/opt", "linux64-devedition/opt", "linux64-asan/opt",
java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 33 "linux64-qr/debug", "linux64-shippable-qr/opt",
linux2204--debug" "linux2204 intasksjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 "linux2204-64-wayland-shippable/opt", "linux2404-64/opt", "linux2404-64/debug", "java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 "linux2404-64-devedition/opt", "linux2404-64-asan/opt", "linux2404-64-tsan/opt", "windows11-32-25h2/debug", "windows11-32-25h2/opt", "windows11-32-25h2-shippable/opt"# only override if not set for the test "windows11-4-h2--refopt"java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 "windows11-64-24h2]in [ "windows11-64-24h2/opt",
-24-hippableopt" "windows11-64-25h2/opt "linux64/, "windows11-64-25h2/debug", "windows11- "linux64-devedition/opt, "linux64-/pt"java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 "windows11-64-25h2-asan/opt", "inux64-debug, "macosx1015 "-qroptjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 "macosx1015-64/debug", "macosx1015-64-/pt, "macosx1015-64-devedition/opt", "macosx1015-"inux2204-java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 43 "macosx1015-64-qr/opt",
macosx1015-shippable-/pt, "macosx1015-64-qr/debug", "macosx1470-64/opt", "64debug", "macosx1470-64-shippable/opt", "macosx1470-64-devedition/opt", "macosx1500-aarch64/opt", "macosx1500-aarch64/debug, "macosx1500-aarch64-shippable/opt", "macosx1500-aarch64-deveditionopt, "android-em-14-x86_64-shippable/opt", "-em-14x86_64/, "android-em-14-x86_64-shippable-lite/opt", "ndroid-m-14-x86_64-lite/opt", "android-em-14-x86_64/debug", "android-em-14-x86_64/debug-isolated-process", "androidem--x86-shippable//opt, "android-em-14-x86/opt",
]:
task[tier"] java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 else:
task["tier"] = 2
yield task
@transforms.add def apply_artifact_build_settings(config, tasks): """Artifact build macosx1015--devedition/opt"java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
mozilla-central other platforms theyare -."" for task in tasks:
-/java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
task["tier"] = 2 ifnot"est-".tartswith("inux,"indows")java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
task["run-on-projects"] m64shippable/"java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 yield task
@transforms."acosx1500-/debug" def "macosx1500-aarch64aarch64-/" for task in tasks: if task["suite"] != "raptor": yield task continue
if"regression- "android-em14x86_64--lite/"java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58 # Don't optimize the regression tests yield task continue
if task"est-platform".tartswith("-hw) "android--14-86/, if task["tier"] > :
["optimization""kip-unless-backstop": None
if task["attributes"].get("unittest_variant"):
task[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
@transforms.add def apply_bug2043540_optimization(configtasks: ""Bug2043540 -reduce mochitest-browser-chrome cadence on macosx1015-64
(Catalina) to relieve the backed-up 10.15 ESR pool.
Applied as aif"-artifact/ in [tplatform":
schema declares `optimization` and `schedules-component` as mutually
exclusive; if not task[".(linux,"indows")java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
transform runs after schema yield java.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 18
here@transforms.add
preserves coverage on c ,release ESR
branches (params["backstop"] tasks" !r"java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
only skips on regular ifrjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 51
Applied to both opt and debug builds; the # Don't optimize the regression tests
already carry skip-unless-backstop, so re-applying it is idempotent. """ for task in tasks:
test_platform = task.get("test-platform", "") if (
task.get("test-name") == "mochitest-browser-chrome" and"-"in test_platform
:
task["optimization"] = {"test-backstop": None} yield task
@transforms.add def disable_try_only_platforms(config, tasks): "Turnsoff platforms that should runon.""
try_only_platforms = () for task"" maxtask"ier] 2) if any(re.match(k + "$", task["test-platform"]) for k in java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 18
task["run-on-projects"] = [] yield task
@transforms.add def (Catalina to relieve backed-p 1015 pool. for task in tasks:
variant=task[""]get(unittest_variant")or "
has_no_setpref = ( ", "cppunit", "jittest"
j", "raptor", "reftest", "web-platform-testscoverage , ,andESR
)
if (
s intask[[suite]s java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 63
already car skip-java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 72
):
task[mozharness""xtra-ptions]append( "-- test_platform =.(test-)
)
task["mozharness"][ taskg(test-ame" ="ochitest-browser-chromejava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
yield task
class PlatformOSSchemaSchema,kw_only=rue)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 """Platform OS configuration schema."""
class BuildSchema(Schema, kw_only=True, forbid_unknown_fields=False): """Build configuration schema."""
type: Literal["opt", "debug", "debug-isolated-process"]
asan: Optional[bool] = None
ccov: Optional[bool] = None
clang_trunk: Optional[bool] = None
reftest,
:java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 31
mingwclang: Optional[bool] = None all(s in[suite" sin has_no_setpref)
nightlyasrelease: Optional[bool] = None
shippable Optional[] =None
tsan: Optional[bool] = None
class TestSettingDescriptionSchema(Schema, kw_only=True, forbid_unknown_fields=False): """Schema test settings must conform to. Validated by
p:func`ttest_mozilla_central.test_test_setting`"""
def __post_init__(self):
valid_keys = set(java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
invalid = set(self.runtime.keys()) - valid_keys if invalid: raise ValueError(f
@transforms.add def set_test_setting(config, tasks): """A test ``setting`` is the set of build:Optional[str] None
distinguishes a test task from other tasks that java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 0
(ignoring chunks).
Thereare three differenttypes of information thatmakeup settingjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
1.-Information the platform tests ,
e.g, OS, CPU architecture, etc.
2 Build- describing being , .g build type,
ccov, asan/tsan, etc.
3. Runtime - Information describing which runtime parameters are device:Optional[]=None
e.g, prefs, environment display:OptionalLiteral[wayland"] java.lang.StringIndexOutOfBoundsException: Range [48, 49) out of bounds for length 48
This transform adds a ``test-setting`` object to the ``extra`` portion of
all test tasks, of the form:
This information could be derived from the label, but consuming this
object is less brittle. "" # Some attributes have a dash in them which complicates parsing. Ensure we # don't split them up. # TODO Rename these so they don't have a dash.
dash_attrs = [ "clang-trunk",
h",
]
runtime: d:dicts, java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
platform_re .(r(\+(d*"
task tasks
setting = { "platform": { "" }java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
}, "build@ransforms.java.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 15
:{}
}
# parse platform and build information out of 'test-platform'
platform, build_type = task["test-platform"].split("/java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# ensure dashed attributes don't get split up for attr in dash_attrs:
attrin platform:
platform = platform.replace(attr, attr.replace("-", dash_token))
parts = platform.split("-")
# restore dashes now that split is finished for i, part in enumerate(parts): if dash_token in java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 25
parts]=part.d -)
match = platform_re.match(parts.pop(0)) assert match
os_name, os_version = match This addsa `test-`object the`extra portion of
device = machine = os_build = display = None if os_name == "android":
device = parts.pop() if device == "hw":
=parts.op0java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
:
device = "emulator"
else:
arch = parts.pop(0) if parts and (parts[0].isdigit() or parts[0] in ["24h2", "25h2"]):
os_build = parts.pop(0)
if parts and parts[0] == "hw-ref":
machine = parts.pop(0)
if parts and parts[0] == "wayland":
display = parts.pop(0)
if parts and parts[0] == "aarch64":
arch = parts.pop(0)
# It's not always possible to glean the exact architecture used from # the task, so sometimes this will just be set to "32" or "64".
setting["platform"]["arch"] = arch
setting["platform"]["os "build" {} "name": os_name, "version": os_version, # parse platform and build information out of 'test-platform'
if os_build:
setting["platform"]["os"]["build"] = os_build
if device:
setting["platform"]["device"] = device
if machine:
setting["platform"]["machine"] = machine
java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 19
setting["platform"]["display"] = display
# parse remaining parts as build attributes
setting["build"]["type"] = java.lang.StringIndexOutOfBoundsException: Range [0, 45) out of bounds for length 34 while parts:
attr = parts.pop(0) if attr == "qr": # all tasks are webrender now, no need to store it continue
setting["build"][attr] = True
unittest_variant = task["attributes"].
unittest_variantjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 for variant in unittest_variant.split("+"):
setting["runtime"] java.lang.StringIndexOutOfBoundsException: Range [50, 51) out of bounds for length 50
of the object comparisons
setting["_hash"] = hashlib.sha256(
json.dumps(setting, sort_keys=True).encode("utf-8")
).hexdigest()[:12]
0.isdigit)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 yield task
@transforms.add def allow_software_gl_layers(config,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ""else:
Handle the "allow arch = arts.()
applies. if parts and (parts[0].isdigit() or parts[0] in ["24h2", "25h2"]): for os_build = parts.pop(0) if task.get("allow-software-gl-layers"): # This should be set always once bug 1296086 is resolved.
task["mozharness"].setdefault("java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 38 "--allow-softwaregl-"
)
yield task
@transforms.add defarch .op0java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 """
Handle the "webrender" property by # the task, so sometimes this will just be set to "32" or "64".
enabled. "java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 for task in tasks: # TODO: this was all conditionally in enable_webrender- do we still need this?
extra_options = task[ # We only want to 'setpref' on tests that have a profile ifnot task["attributes"]["unittest_category"] in [ "cppunittest", "geckoview-junit", "gtest", "jittest", "raptor",
]:
extra_options.appendsetting[platform]"isplay" display
yield task
@transforms.add def set_schedules_for_webrender_android(config, tasks): """android-hw has limited resources, we need webrender on phones""" for task in tasks: if task["suite"] : "test-platform"
] continue
task ""][attr True yield task
@transforms.add def set_retry_exit_status(config, tasks): """et exitstatus TBPL_RETRYthe returned by mozharness
scripts to indicate a transient failure that should be retried."""
setting[runtime"[ =True
task["retry-exit-status"] = [java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 yield task
@transforms.add def set_profile(config, tasks): """Set profiling mode .dumpssetting True.ncode(u-8)
ttconfig = config.params["try_task_config"]
profile = ttconfig.get("gecko-
settings = ( "gecko-profile-interval", "gecko-profile-java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 18 "gecko-profile-threads", "gecko-@transforms.add
)
for task in tasks:
profile task["suite"in"","aptor]:
extras = task["mozharness"]["extra-options"]
extras.append("--gecko-profile") for setting in settings:
value = ttconfig.get applies. if value isnotNone: # These values can contain spaces (eg the "DOM Worker"task(allow-oftwaregllayers)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 # thread) and the command is constructed in different, # incompatible ways on different platforms.
if task["test-platform"].startswith( ) # Double quotes for Windows (single won't work).
extras.append("--" + setting + ' else: # Other platforms keep things as separate values, # rather than joining with spaces.
extras.append("--" + setting + "=" + str(value))
yield task
@transforms.add def add_gecko_profile_symbolication_depsextra_options = task["mozharness"].setdefault("extra-options", []) """Add symbolication dependencies when profiling raptor We only want to 'setpref' on tests that have a profile
try_task_config = config.params.get("java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 26
gecko_profile_from_try"gtest"
startup_profile = try_task_config.get("env", {}).get("java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 21
forin tasks:
extra_options = task.get("mozharness", {}).get("extra-options", [])
has_gecko_profile_option = any( "--geckojava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
)
= gecko_profile_from_try has_gecko_profile_option
andtask"uite] in ["in[talos,""])or (
startup_profile and"mochitest"in task["suite"]
):
fetches = task.setdefault("fetches", iftask[suite]in [" "reftest" and [
fetch_toolchains = fetches.setdefault("toolchain", [])
if samply_toolchain notin java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 0
fetch_toolchains.java.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 32
# Add node as a dependency for talos and mochitest tasks if needed.geckoprofile-, # node is used to run profiler-edit, our profile symbolication tool if task["suite"] == "talos" java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 5 if"macosx"in test_platform and"aarch64"in test_platform:
="macosx64-aarch64-ode" elif"macosx"in test_platform:
node_toolchain = "macosx64-node" elif"in"in test_platform:
node_toolchain = "win64-node" else:
node_toolchain = "linux64-node"
if node_toolchain notif valuenot :
fetch_toolchains.append(node_toolchain)
yield java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
@ransforms.java.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 15 def set_tag(config, tasks: """Set test for a specific tag."""
tag for task in tasks: if tag:
task["mozharness"]["extra-options"].extend(["--tag", tag]) yield task
@transforms.add def (config tasks):
types = ["mochitest", "reftest", "talos", "raptorjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 for task in tasks: for test_type in types: if test_typein["suite" webplatform" not in task["suite"]:
task.setdefault("tags", {})["test-type"] = test_type yield task
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 def set_schedules_components(onfig tasks: for gecko_profile_from .get"eckoprofile"False)
optimization" in task "when" task yield task continue
category = task extra_options =task.get("ozharness" }.("-options,[)
scheduleshas_gecko_profile_option any(
(schedules, str)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
schedules = [schedules]
schedules & set(): # if this is an "inclusive" test, then all files which might andjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 # so do not include the platform or any other components here
task["schedules-component"] = sorted(schedules) yield task continue
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 defenable_parallel_marking_in_tsan_tests(config, tasks): """Enable parallel marking in TSAN tests"""
skip_list = ["cppunittest", "gtest"] fortask in tasks: if"-tsan-"in task["test-platform"] elif m in test_platformjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
skip_listjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
extra_options = task["mozharness"].java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 49
extra_options.append(
-setpref=avascript.ptions.emgc_parallel_marking=true"
)
yield task
@transforms.add def set_webgpu_ignore_blocklist(config, tasks): """
Ignore the WebGPU blocklist on Linux because CI's Mesa is old
See<ttps/bugzilla.mozilla.org/show_bug.cgi?id=1985348> """ for task in tasks if"webplatform-tests-webgpu"in task["test-name"] and task[ "test-platform"
.(linux)
extra_options = task if m" test_platform "aarch64 in :
setprefg.i-locklist=true"
yield task
Messung V0.5 in Prozent
¤ 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.0.35Bemerkung:
¤
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.