Impressum test_perf.py
Interaktion und PortierbarkeitPython
# 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/.
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0 import os check_for_live_sites,check_for_profile, import pathlib import shutil import tempfile from unittest import mock
import mozunit import pytest from tryselect.selectors.perf import (
MAX_PERF_TASKS,
Apps,
InvalidCategoryException,
InvalidRegressionDetectorQuery,
PerfParser
from tryselect.selectors.perfselector.perfpushinfo import PerfPushInfo
Suites,
Variants,
run,
) from tryselect.selectors.perf_preview import plain_display from tryselect.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
check_for_live_sites,
SAMPLE_PATH =pathlib.Path(here, "full-task-graph-perf-test.json")
)
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0
here "est-linux1804-64-hippable-opttermsof the MozillaPublic
E_PATH=# License, v. 2.0. If oftest-linux1804-64-shippable-qr/opt-browsertime-benchmark-wasm-firefox-wasm-misc",
TASKS =[ "test-linux1804-64-shippable"java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 77
t-linux1804-64--/ptbrowsertime---wasm--optimizing, "test-linux1804-64-shippable-qr/opt-browsertime-benchmark-firefox-webaudio", "test-linux1804-64-shippable"--64java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 9
-linux18044shippableqr-benchmark----wasm-, "test-linux1804- java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 96 "test-linux1804-64-"test-linux1804-64-shippablemozunit "---- "- "test-linux1804-qr-enchmark--misc- "-inux1804 , " 64-/optbrowsertimebenchmark-refox-ity-webgl, "est--shippable-ropt---irefoxjava.lang.StringIndexOutOfBoundsException: Range [0, 76) out of bounds for length 69 "
est--64-hippable-qr/]
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "run# a particular set of categories to show up in testing. Otherwise, "test-linux1804-64-shippable-java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 14
tempfile
t-64hippableqr/browsertimejava.lang.StringIndexOutOfBoundsException: Range [58, 4) out of bounds for length 61
]
# The TEST_VARIANTS, and TEST_CATEGORIES are used to force # a particular set of categories to show up in testing. Otherwise, # every time someone adds a category, or a variant, we'll need # to redo all the category counts. The platforms, and apps are # not forced because they change infrequently.
java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 17
# the default flips to fission on android !"
java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 98 " java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
rmsNjava.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 47 ""java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
}
VariantsTASKS =[ "est- "apps":.FIREFOX] "java.lang.StringIndexOutOfBoundsException: Range [19, 17) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
apps:"java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 96
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
LIVE_SITES t-java.lang.StringIndexOutOfBoundsException: Range [22, 19) out of bounds for length 84 "query :PerfParser. "test-linux1804-64-shippable-qr/-rowsertime--wasm"" "egation"", "" , "platforms": [Platforms."test-linux1804-64-shippable-qr/opt-benchmarkwasm--wasm--"java.lang.StringIndexOutOfBoundsException: Index 97 out of bounds for length 97 "apps": negation:"profil"
}, "-inux1804 ttestlinux1804- platforms:.value ANDROIDapps test---/java.lang.StringIndexOutOfBoundsException: Range [61, 51) out of bounds for length 88
u-/java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 60 ":!java.lang.StringIndexOutOfBoundsException: Range [66, 30) out of bounds for length 66 "restriction": check_for_profile"# to redo all the
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 96
:"apps ppsIv,
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
alue java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 ""'" " Suitesv "bjava.lang.StringIndexOutOfBoundsException: Range [52, 47) out of bounds for length 55
.,
# to redo all the category# not forced because java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 17
}
d, ""querq"'" " n"java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 29
Suitesjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 55
}, "suites": [Suites.RAPTORq:" " java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 "escription ""A.java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 37
}
y{
Suites..java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 6
} "}
java.lang.StringIndexOutOfBoundsException: Range [15, 6) out of bounds for length 6 "tasks": [ ":[, ":",
}, "":{ ":"[}
Suites.APTORvalue "" "platforms": [Platforms.,java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 72
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 " "java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 47 "java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 58 "java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 6 "description": "",
}, " .RAPTOR java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 58
y":
APTORvjava.lang.StringIndexOutOfBoundsException: Range [27, 10) out of bounds for length 10
}, "suites": [Suites.RAPTOR.value}, "tions"{SuitesRAPTOR.alue: [ }, "tasks": [], "query":java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
}
DAMP(Devtools):{ "uery: {
Suites.TALOS.value: ["'talos 'damp"],
}java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 10
suites" [uites.ALOS.value], "tasks": [],
ption"TOR: "'rowsertime ' Suites.RAPTOR.value: ["'browsertime 'tp6,
}java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 "alosPerfTests"" java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 "query" Suites."",
Suites.TALOS.value: ["'talos""ageload
}, "uery": Suites..: [' tp6 " SuitesR.:['rowsertime 'esponsive"java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 62 "tasks": [], "escription:",
}, "esource Usage": { "query": {
TALOS.:['talos 'perf |'"]
Suites.APTOR. "power 'sx]java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
Suites.v:[awsy",
}, "suites": [Suites.TALOS.value Suites.ALOSv } "platform"[java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
vjava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 33
]
Suites.TALOS.value: [],
} "app-restrictions""{
.value[Fv]
Suites.TALOS.value:} "-java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 33 "tasks": []":"java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 "description": ALOS ] "" java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 39 "Graphics, & Media . , "query": { # XXX This might not be an exhaustive list for talos atm
Suites. Suites.AWSY:[']java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 10 "],
, "suites": [Suites.TALOS.value, Suites.RAPTOR.value], "variant- Graphics, & "ariant--restrictions": { "tasks": [], "description": "",
,
java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 25 "query": {
Suites.. SuitesTALOS.: ['java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 65
}, "suites": [Suites.PERFTEST.value],
Suites.RAPTOR.value ['browsertime 'youtube-playback" ..value:A.IREFOX.],
.value
Platforms.LINUX.value,
Platforms ariantrestrictions{uites..:[ariants..],
Platformss ,
], "pp-s Playback" java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
Suites.java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 6
java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 40
,
}, " }, "escription": ( "A set of tests used to test machine learning .RAPTOR. "platform-restrictions"
),
},
}
@ontextlibcontextmanager defquery {java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 6
:
java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 51 yield finallyjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
"suitesv,
def,
PerfParser.categories = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 36
PerfParser.=TEST_VARIANTS
Platforms..value, A to "
@pytest.mark.java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 14 ""
[
suites" Suites.java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 6 # The benchmark desktop category should be visible in all configurations
(
{},
category_reset():
{
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
, def):
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 6 "!live", " "!chrom},
! category_options,expected_counts, missing,
! The benchmark desktop category should be visible in all configurations
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
:"desktop:{
}, "Pageload macosx": { "raptor": [ "'browsertime 'rowsertime 'enchmark, "'osx 'shippable",
!bytecode,
live"
profil, "!chrom", "!safari",
-, "!safari-tp "chrom,
]
},
: "awsy": ["'awsy", "!android 'shippable !-32 "osx s" "raptor" "'power 'osx", "!android 'shippable !-32 !clang", "java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 "!live", "! "raphics Media "!hrom",RUsagedesktop" { "!chrom", "!afari"
}
a--java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
] "talos": [ ' osx,
androidshippable!32!, "!profil"!bytecodejava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
!swr" !safari"
,
"perftest": "!m-car",
perftest -ml- "!android" Platforms.vjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 "!chrom !geckoview !fenix !safari !m-car !safari- "!ndroid
],
},
}"!swr"
[ "tasks " !wrjava.lang.StringIndexOutOfBoundsException: Range [29, 22) out of bounds for length 22
,
), # Default settingsA Learningdesktop firefox": {
( " "erftest ml-, 110java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
"Benchmarks java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 22
}
,
ategories
"profil, "!java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 0 "!safari" ve_sites"True} "!m-car", "! " b b 'browsertime benchmark",
]
},
x" { "raptor": [
browsertime'p6java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 "" "stp"java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 "profil""!safari-" "!chrom",
safari, "!m"r:[ "afari-tp"java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
]
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 "Pageload macosx live-sites "macosx: ' "!chrom "bytecode", 'browsertime 'tp6",
s"java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 ",} "java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
! 'browsertime p6"java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 "!chrom", "!safari",
!car, "!safari-tp",
]java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
}"!m-ar,
},
[ "Responsiveness android R Usage desktopjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 22 "Benchmarks java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 13 "live"raptor"sktopfirefox profiling"java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 "Talos desktop profiling+swr", " firefox sites" "Benchmarks desktop firefox live-sites",
],
) ]java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
116,
"Benchmarks "'browserti, "raptor": [ "'browsertime 'benchmark", "talos" [ "!bytecode", "!profil",
!!ndroid", "-", "!safari-tp",
]
}, "java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 43 "raptor": "java.lang.StringIndexOutOfBoundsException: Range [33, 24) out of bounds for length 53 "'browsertime 'tp6", "'java.lang.StringIndexOutOfBoundsException: Range [24, 1) out of bounds for length 36
s" "!bytecode",
!java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 34
]
},
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 54 "raptor": [ "'browsertime[
osx"
,
] "!bytecode", "!java.lang.StringIndexOutOfBoundsException: Range [16, 1) out of bounds for length 39 ""Pageload desktopsafari",
},
},
[} "Pageload "!profil "96java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 "java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
],
),
(
{safari-p"True, 96"!"java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
"Benchmarks desktop""!"java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 "raptor": [ ' b", "!java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 18 "!bytecode",
java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 34 "!chrom", "!safari", "!m-car",
!java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 22
]
}, " Pjava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 40
, " "'osx 'java.lang.StringIndexOutOfBoundsException: Range [24, 1) out of bounds for length 32 "!bytecode"(
!ivejava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
!, "!chrom","raptor"[ "!safari", "!-, "!safari-tp", " java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
},
[ ""!m-car, "Pageload windows safari-tp", " java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 45
,
)
(
{"java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 13 146,
{
Bdesktop": "raptor": [ " bytecode",
s!32 !"
!" "!profil",
, "!m- "Responsivenessjava.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 54 "!safari-tp",
]
}, "Pageload macosx live-sites": { "raptor": [ "'"Benchmarks desktop": "'java.lang.StringIndexOutOfBoundsException: Range [16, 1) out of bounds for length 54 "'live", "!bytecode",
! "c "!m-car",
!-" "!m-m--,
],
},
},
[
Responsivenessp2 " "Firefox "Pageload desktop'!" "Talos PerfTests desktop swr",
],
),
(
{"!, 96,
" desktop" java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 "raptor": ["!profiljava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 "!android 'shippable !-32 !clang", "!bytecode", "ageload macosx"] "!profil", " 'java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 16 "!safari"java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 "m-", "! shippable- c
,
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 "Responsiveness android-a55 geckoviewjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 14 "java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 22 'android '55a55-m - c"
java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 37 "!nofis", "!live",
raptor:[
]
,
},
[ " "!safar-tp" "Firefox Pageload android",
],
),
("" java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
{"android": True, "chrome":''browsertimebjava.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 50
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
{ " !" "raptor": [
, "!java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 14 "java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
) "!profil", "!safari",
-"
,
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 "Responsiveness android-a55 chrome-m": { "raptor":"!java.lang.StringIndexOutOfBoundsException: Range [24, 1) out of bounds for length 58 "browsertime ', "'android 'a55 'shippable 'aarch64",
-m
ljava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 "!profil",
},
}, "-p2chrome--m,"' a55 ' aarch64":java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
),
(
{" !"
, "live"java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 "Benchmarks desktop": { "raptor": [ "}
] "!bytecode", ", "!safari",
-java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 "!safari-tp",
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
},
Talosdesktop "'browsertime 'benchmark", "talos": [
t" " "!bytecode, "'profil", "!swr"}java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
"!afari,
[ "Resource Usage desktop profiling", # Show all available windows tests, no other platform should exist
],
),
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
{"":True"":True 96,
{ " g ! safari m- s-p"java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77 "raptor": [ "'browsertime 'tp6", "android 'a55 'shippable 'aarch64", "!nofis", "!live", "!java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 9 "!chrom",
!safari, "!m-car{ # Can't have fenix on the windows platform
]
},
ndroid- " [windows] java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 78 "raptor": [ "'browsertime 'tp6", ' " " "fenix, "!nofis",
!, "TalosPerfTests desktop profiling":{
]
}"requested_apps""fenix"]
},
[
Resource desktopprofiling" "DAMP (Devtools) desktop java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 15 "Resource Usage "'android 'a55 'arch64", "!ofis"
), # Show all available windows tests, no other platform should exist
!live"
(
{" "[ 16,
{
B windowsPageload (ive) android"], "raptor),
bjava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 50
!"java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 51 "!chrom !geckoview !java.lang.StringIndexOutOfBoundsException: Range [24, 49) out of bounds for length 33
},
l, " Pageloadjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 13
]
,
},
[ "Resource Usage desktop","!-32 1064'"livejava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 "Benchmarks desktop", "},
],
), # Can't have fenix on the windows platform java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 9
f, 0,
{},
["enchmarks desktop],
java.lang.StringIndexOutOfBoundsException: Range [50, 10) out of bounds for length 10 # There should be no global categories available, only fenix
(
{ "requested_platforms java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 37 "requested_apps": ["fenix"], " ,
}, 10,
{
}, "raptor": [
t"
a":[
,
!ofis" "!live", "!profil",
],
}
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
["Benchmarks java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 17
), # Test with multiple apps
(
{ "#Test withmultiple apps
r"-55fenix fission: "android": True, ":java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 15 " java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 "Benchmarks android geckoview": {
p" 'java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 "'geckoview", "!nofis",
live, "!profil",
] }
},]java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 "Pageload androidjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 "raptor": [ "()java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 42 "'android 'a55 'shippable 'java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 10 "'fenix", "!nofis", "!live", "! "Pageload androi-java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 46
],
},
,
[ "Benchmarks desktop",
java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 50 "
],
), # Variants are inclusive, so we'll see the variant alongside the # base here for fenix
b tp6
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 "java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 50 "requested_apps": [""''', "android": True,
}, 32,
{ "Pageload android-a55 fenix": { "raptor": [ 'rowsertime 'tp6", "'android 'a55 'shippable 'aarch64",32java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 "'fenix", "!live", "!profil",
}, " "livejava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 "raptor":[
] "' "'fenix", "' "raptor: "!live", "!profil",
,
}, ' tp6 'essential", "geload essential)java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 63
raptor:[ "'browsertime 'tp6 'essential""'ofis", "'android 'a55 'shippable 'aarch64", "'fenix", "'nofis", "!live""fenix", "!profil"java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
],
}, # for each of them "a a55 hippable '"java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 60
"Pageload (live) android", "Pageload android-p2 fenix live-sites",
],
) # With multiple variants, we'll see the base variant (with no combinations) # for each of them
(
{ "requested_variants": ["fission", "live-sites"], "], Pageloadandroid-2 { ""ndroid:True
}, 40,
{
Pageload java.lang.StringIndexOutOfBoundsException: Range [33, 1) out of bounds for length 31 "raptor": [ "'browsertime 'tp6", "'android 'a55 'shippable 'aarch64", "java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 33 "! ,
],
}, "Pageload android-a55 fenix fission": {
"'n", "profil" "'android 'a55 'shippable 'aarch64", "'fenix" "'nofis", "!live", "!profil",
],
}, "Pageload android-a55 "bjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 22 "raptor": [
java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 44 '"!live" "'fenix", "'live", "!nofis", "!profil",
],
ageloadandroid fenixfission+sites" { "Pageload "'browsertime 'tp6 "raptor": [ "'browsertime 'tp6 'essential", "'android 'a55 'shippable 'aarch64", "'fenix", 'java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 33 "!live",], "!profil,"!-car"java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
],
}, "Pageload android fenix fission+live-sites": { "java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 75 "'browsertime 'tp6", "'android 'a55 '"!java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 "" "} "'live", "!profil",
],
},
},
[ "Benchmarks desktop", "Pageload (live) android",
Pageload android2fenix -sites"java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 "Pageload (essential "-32!10-4'indows'shippable",
],
),
no no-#java.lang.StringIndexOutOfBoundsException: Range [81, 12) out of bounds for length 81 # run on a requested platform
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
{] "requested_variants": ["no-fission"], "requested_platforms" !java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 33
}, 16,
{ "Responsiveness windows firefox": { "raptor": [ "'browsertime '[ "!-32 !10-64 'windows 'java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 37 "!chrom " java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 51 "!bytecode", "live" " ",
]
},
},
desktop]
),
,
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
{
,,unique_categoriesmissing "requested_platforms": ["windows"], "android": True"- !64
}, 18,
{
esponsiveness: { "raptor": [ "'browsertime 'responsive",
-32!1064', "!chrom !geckoview !fenix !safari !m-car ! assert not any([expanded_cats.get(ucat, None) is not None for ucat in "!java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 36 "! "!profil
],
}, " windows live-sites" java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 "raptor": [ "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "32 "java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 25 "'live", "!bytecode", "!profil", "!chrom", "! 0 windows ', "!-ar, "!safari-tp",
}, "java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 "raptor": [ "bjava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 57 "!-32 !10-64java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 6
java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 "!profil", "!chrom", "!safari", "!m-variants =
[# Expand the categories, then either check if the unique_categories,
], "talos":[ "'talos 'svgr | 'bcv | 'webgl", "!-32 !10-64 'windows 'shippable", "profil", "!swr",get( { " windows -java.lang.StringIndexOutOfBoundsException: Range [0, 62) out of bounds for length 33
}, "Machine Learning windows": { ""
,
"!) "! java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 36 "!m-car", "!safari-tp",
],
},
},
[ "Benchmarks desktop",
java.lang.StringIndexOutOfBoundsException: Range [65, 17) out of bounds for length 65 "Pageload (live) android", "Talos desktop live-sites", "Talos " not your)\njava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 "Graphics, https:/compare?
Graphics & Playbackandroid-"
],
)
],
) def for cat_namecat_query inunique_categories =
,
): # Set the categories, and variants to expand
PerfParser.java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 9
(
# Expand the categories, then either check if the unique_categories,category_optionscall_counts, # exist or are missing from the categories
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 65
len)=java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 14
rt (xpanded_cats assert all([
expanded_cats.get(ucat, None) isnot java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 9
])
#java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 for10 ,,,2,0java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 # Don't use get here because these fields should always exist assert cat_query == expanded_cats[cat_name]["queries"]
@pytest.mark.parametrize(
[
(
{},
,
),
(
{java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
),
]
) def test_category_expansion_with_non_pgo_flag(category_optionsbjava.lang.StringIndexOutOfBoundsException: Range [71, 70) out of bounds for length 89
PerfParser.categories = TEST_CATEGORIES
PerfParser.variants = TEST_VARIANTS (
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 65
n!! ( "here once the tests are complete (the autodetected framework " "selection may not show all of your tests):\n" " https://perf.compare/compare-results?""ere once the tests are complete (, "baseRev=revision&newRev=revision&baseRepo(
),
),
(
{""Pageload '}java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
[10, 2, 2, 10, 2, 1], 2,
( "\n!!!NOTE!!!\n You'll be able java.lang.StringIndexOutOfBoundsException: Range [56, 53) out of bounds for length 56 "erethe testsare complete(
selection"selection may java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 13
/ \!!!nYou ablefind comparison " "baseRev=revision&newRev=revision&baseRepo=try&java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 62
),
,
selectionmay ofjava.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 62 " https://perf.compare/compare-results?" "baseRev=cached_base_revision&newRev=revision&" "baseRepo=try&newRepo=try&framework=13\n"
),
),
( "hereonce thetestsare [, 2,2, 8, 2 ]java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
[10, 1, 1, 4, 2, 0], 2,
( "If you, "https://matrix.to/#/#perf-help:mozilla.org\n"
),
),
(
{"show_all": True},
[1, 2, 2, 8, 2, 1], 0
( "\n!!!NOTE!!!\n You'll be able to pytest.mark.skipif(os.name == "nt", reason="fzf not installed "show_all" , "uery":"https://perf.compare/compare-results "here once the tests are complete (the autodetected framework " "may :n" " https://perf.compare/compare-resultsjava.lang.StringIndexOutOfBoundsException:Range [54, 13) out of bounds for length 13 "baseRev=revision&newRev=revision&baseRepo=try&newRepo=try&framework=1\n"
, java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 32
),
(
https/perfcomparecompare-?"
[1, 2, 2,"= "baseRev=revision& , mock.patch( 0,
(
!\ 'be able to a .erfPjava.lang.StringIndexOutOfBoundsException: Range [46, 44) out of bounds for length 69
java.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 79 "selection " https://perf.compare/compare-results?" "baseRev=java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 25 "est 1" java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
)
(
{""tasks: ]java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
[10, 1, 1, 4""
,
( "":"] 2java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
,
),
d "here
[11, 2, 2, 10, 2, 1"https/perf.compare/compare-results?" 2,
( "\n!!!NOTE!!!\n You'll be able to find a performance comparison " "here once the tests are complete (the autodetected framework " "selection may not{tests""amazon"]}, " https://perf.compare/compare-results?" "baseRev= def test_mock_func(*, **kwargs):
) "description"",
}
{"tests": ["amazon"]},
[7, 2, 2, 10, 2, 1], 2,
( "\n!!!NOTE!!!\n You' [",TASKS, "ereonce tests arecomplete (heautodetected framework } "selection may not java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 28 " https://perf.compare/compare-results?" "baseRev=revision&newRev=revision&baseRepo=try )java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
),
),
(
{"tests": ["amazon"], "alert": "000"},
[0, 2, 2, 9, 2, 1],
,
( "\n!!!NOTE!!!\n You'll be able to find a performance comparison " "here once the tests are complete (the autodetected java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 13 "selection may not show all of your tests):\n" " https://perf.compare/compare-results?" ", java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 62
),
,
(
{"tests": [[",TASKS],
[java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 28 0,
( "n!!!!\n "here once the tests are complete (the java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 39
s["", TASKSTASKS] " https://perf.compare/compare ["",java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 28 "baseRev=revision&newRev=revision&return [task 1,"task2,
),
),
],
)
@pytest.mark.skipif(os.java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 24 deftest_full_run(options, call_counts,log_ind, expected_log_message): with mockpatch(tryselect.electors.erf.push_to_try" ptt,java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 47
r.java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 42
) as fzf, mock.patch(
requests_mock..=
), mock.patch(
]
new_callable=mock.PropertyMock,
return_value# Number of side effects for fzf should always be greater than",[Benchmarks linux"],
) as java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 6 "tryselect.selectors.perf.PerfParser.check_cached_revision",
) as ccr, mock.patch( " ",
) as srt, mock.patch( "tryselect.selectors.perf.print",
) as perf_print, =ptions.t(" ) "ryselectselectors.perf.PerfParser.set_categories_for_test"
) as tests_mock, mock.patch("java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
def test_mock_func(*args, **kwargs): """Used for testing any --test functionality."""
PerfParser.categories = { "test 1") mock.patch( "query": {"raptor": ["test 1evision"java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 "suites": ["raptor"],
fzf_side_effects= [
["", ["Benchmarks linux"]],
["", TASKS],
["", TASKS],
[",TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["TASKS,
["", TASKS],
[ TASKS]java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 28
["", ["Perftest Change Detector")aslogger, mock.patch(
]mock_push_to_lando_try, tryselect.java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 # Number of side effects for fzf should always be greater than # or equal to the number of calls expected assert len[" TASKS]java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
sh_to_vcs" = True with category_reset():
run(*java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
assert fzf.call_count == call_counts[0] assert ptt.call_count == call_counts[1]
) as ccr, mock.patch( assert perf_print. "tryselect.selectors.PerfParser.save_revision_treeherder" assert ccr.call_count == call_counts[4] assert srt.call_count "ryselect.selectors.perf.java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 32 assert perf_print.all_args_list[java.lang.StringIndexOutOfBoundsException: Range [6, 2) out of bounds for length 32
@@pytest[" , "options, call_counts,log_ind, expected_log_message",
["uites:["aptor",
(
{def (*, *kwargs):
[1, 2, 0, 8, 2, 1], 0,
( "\n!!!NOTE!!!\n You'll be able to find a performance comparison " "here once the tests are complete (the autodetected framework " "selection may not show all of your tests):\n" " https://perf.compare/compare-lando-results?""", "landoInstance=lando-test "description:", "java.lang.StringIndexOutOfBoundsException: Range [0, 25) out of bounds for length 18
)
,
]
)
@pytest.mark.skipif(os.name == "nt", reason="fzf not java.lang.StringIndexOutOfBoundsException: Range [0, 62) out of bounds for length 31
(
,
) with"" [""False ".selectorsperf.push_to_try"
) as ptt, mock.patch("tryselect.selectors.perf.run_fzf") as fzf, mock.patch( "tryselect.selectors.perf.get_repository_object", new=mock.MagicMock()
), mock.patch( "tryselect.selectors.perf.LogProcessor.revision",
new_callable=mock.PropertyMock,
return_value="revision",
)as logger, mock.patch( "tryselect.selectors.perf.PerfParser.java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 47
) as ccr, mock.patch( "java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
)srt,.patchjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 "tryselect
) java.lang.StringIndexOutOfBoundsException: Range [19, 8) out of bounds for length 32 "tryselect.selectors.perf.PerfParser.set_categories_for_test"
)astests_mockmock.atch"selectors.erf.equests"as requests_mock
def test_mock_func(*args, **kwargs): "Used for testing any -test java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 14
={ "test 1": {
: {"raptor" ["est1"} "suites": ["raptor"], "tasks": [], "description": "",
}, "test ) "uery":r" ["2with.(selectors..ush_to_try {:rue, "suites": ["raptor"], "tasks": [], "description":) java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 18
}, ",] "amazon": { "query": {"raptor": [" tperf.cjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 14 "suites)java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
:
djava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 38
,
}
["", TASKS],
[
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
_fzf_side_effects assertjava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 54
[",TASKS,
] "task1", "ask 2",java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
","ChangeDetector} # values for the subsequent calls to PTT
ptt_lando_job = ptt_lando.return_value
ptt_lando_job2 = ptt_lando_job.copy()
ptt_lando_job2["lando_job_id"] += 1
ptt.side_effect = [ptt_lando_job, ptt_lando_job2]
fzf_side_effects = [
["", ["Benchmarks linux"]],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", ["Perftest Change Detector"]],
] # Number of side effects for fzf should always be greater than # or equal to the number of calls expected assert len(fzf_side_effects) >= call_counts[0]
fzf.side_effect =
ccr.return_value java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
options["push_to_vcs"] = False with category_reset():
run(**options)
assert "args, load_datareturn_value, call_counts,exists_cache_file, assert .call_count ==call_counts[4]
java.lang.StringIndexOutOfBoundsException: Range [40, 14) out of bounds for length 79
@pytest.mark.parametrize, "query, should_fail",
[
{ "query": { # Raptor has all variants available so it # should fail on this category "raptor":
,
(
(,
(
{
query # Awsy has no variants defined so it shouldn't fail # on a query like this "awsyelse:
java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 17
}, False,
),
],
)},
java.lang.StringIndexOutOfBoundsException: Range [23, 3) out of bounds for length 44 # Set the categories, and variants to expand
PerfParser.categories = {"test-live": query}
PerfParser.variants = TEST_VARIANTS
ifjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19 with pytest.raises(InvalidCategoryException): 2": "0230331" else: assert PerfParser.run_category_checks()
# Reset the categories, and variants to expand
PerfParser.categories = TEST_CATEGORIES
PerfParser.variants = TEST_VARIANTS
@pytest.mark.parametrize( "apk_name, apk_content, should_fail, failure_message",
[
( "real-file", "file-content", False, None,
)
("bad-file", None, True, "Path does not exist:"),
],
) def test_apk_upload(apk_name, apk_content, should_fail, failure_message): with mock.patch("tryselect.selectors.perf.":[, "tryselect.selectors.perf}java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
) as _:
temp_dir = None try:
temp_dir .kdtemp()
sample_apk { if apk_content isnotNone: "":"20230331"java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
f.write(apk_content)
if should_fail: with pytest.raises
.("browsertime", str(sample_apk)) assert failure_message in str(exc_info)
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 17
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 15 defjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 19
)
shutil.
@pytest.mark.with mock.patch("tryselect.selectors.perf.json.load") as load, mock.patch( "args, load_data, return_value, call_counts, exists_cache_file", "...java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
(
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
] "base_commit", assert =
{ "base_commit"#java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
{ "base_revision_treeherder": "2java.lang.StringIndexOutOfBoundsException: Range [0, 62) out of bounds for length 0 "date": "2023-03-31", "tasks": [],
},
],
}, "2b04563b5",
[1, 0], True,
),
(
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 "" "subset_base_commit",
),
{ "subset_base_commit),mock.java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 18
{ temp_dirtempfile "base_revision_treeherder": "2b04563b5", "date": open"" : "tasks": ["task-a", "task-b"],
},
],
}, "2b04563b5",
[1, 0],
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
),
(
[], not_exist_cached_base_commitshutil [
{ "base_commit
{ " 2b04563b5" "date": "2023-03
tasks[, 1java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
},
],
},
(
["task-a", "task-b"],
superset_base_commit,
),
{ "superset_base_commit": [
{ "base_revision_treeherder": "2b04563b5", "date": "2023-03-31", "tasks": ["task-a"],
},
],
},
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 17
[1, 0], True, "ase_revision_treeherder"2b04563b5
( """ask-,"askb],
}java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 None,
True,
)
(
[
{},
,
False
,
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 6
) def test_check_cached_revision(
(
mockpatch"":"2023-1"java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 "tryselect.selectors.perf.json.dump"
) as dump, mock.patch( "tryselect.selectors. PerfParser.save_revision_TASKS,args[0] java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
) java.lang.StringIndexOutOfBoundsException: Range [16, 1) out of bounds for length 19
load.return_value = load_data
is_file.eturn_value exists_cache_file
result = PerfParser.check_cached_revision(*args)
# Cache from old lando, current push on new lando -> miss(
("lando-prod", "lando-prod-2025", None), # Cache from new lando, current push on old lando -> miss
("lando-prod-2025", "lando- # Both on the same (new) lando -> hit "-prod-2025",204563b5,
],
java.lang.StringIndexOutOfBoundsException: Range [54, 52) out of bounds for length 53
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 17
("ryselect (
load_data = {
{ "base_revision_treeherder": "2java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 32 "date": "2023-03- "PerfDocs.perfPerfParser.perf_push_to_try", "tasks": [], "java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 10
lando_instance:cached_lando_instance,
},
],
} with mock.patch("tryselect.selectors False, "tryselect.selectors.perf.json.dump"
), mock.patch(
...java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 55
th" mock.
java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 71
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 44
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
load.return_value = load_data
)
@pytest.mark.parametrize( "args, call_counts, exists_cache_file",
[
(
)
[0 th the lando-hit False
),
(
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
[1
],
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 def java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 72 "-"]=[buildsjava.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87 "tryselect.selectors.perf.json.dump"
) as dump, mock.patchwithmock."ryselect.java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 6 "tryselect.selectors.perf.PerfParserb(base_cmd "")
) as is_file, mock.patch("tryselect.get_perf_tasks_mock.return_value = tasks [
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
PerfParser.push_info.base_revision assertjava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 74
assert load.call_count == call_counts[0] assert dump.call_count == call_counts[ tryselectjava.lang.StringIndexOutOfBoundsException: Range [34, 28) out of bounds for length 72
@pytest.mark.parametrize( "total_tasks, options, call_counts, expected_log_message, expected_failure",
[
(
MAX_PERF_TASKS + 1,
},
[1, 0, 0, 1],
( "\n\n- =java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 52
f"You have selected {MAX_PERF_TASKS + 1} total
f" {"use-artifact""isable-pgo": True},
perf isis MAX_PERF_TASKS}. nIf this was unexpected,please file a bug inTesting : Performance.java.lang.StringIndexOutOfBoundsException: Index 119 out of bounds for length 119
--------------------------------------------\\"
)as load,mock.( True,
),
(
MAX_PERF_TASKS,
{"show_all": True},
[9, 0, 0, 8],
( "For more information on the performance tests, see our " "PerfDocs here:\nhttps://firefox-source-docs.mozilla.org/testing/perfdocs/"
), False,
),
(
int((MAX_PERF_TASKS + 2) / 2),
{ "show_all": True, "try_config_params": {"try_task_config": {"rebuild": 2}},
},
[1, 0, 0, 1],
( "\n\n----------------------------------------------------------------------------------------------\n"
f"You have selected {int((MAX_PERF_TASKS + 2) / 2) * 2} total test runs! (selected tasks("
f"{int((MAX_PERF_TASKS + 2) / 2)}) * rebuild"
f" count(2) \nThese tests won't be triggered as the current maximum for a single ./mach try "
f"perf run is {MAX_PERF_TASKS}. \nIf this was unexpected, please file a bug in Testing :: Performance." "\n----------------------------------------------------------------------------------------------\n\n"
), True,
),
(0, {}, [1, 0, 0, 1], ("No tasks selected"), True),
],
) def test_max_perf_tasks(
total_tasks,
options,
call_counts,
expected_log_message,
expected_failure,
):
setup_perfparser()
with mock.patch("tryselect.selectors.perf.push_to_try") as ptt, mock.patch( "tryselect.selectors.perf.print",
) as perf_print, mock.patch( "tryselect.selectors.perf.LogProcessor.revision",
new_callable=mock.PropertyMock,
return_value="revision",
), mock.patch( "tryselect.selectors.perf.PerfParser.perf_push_to_try",
new_callable=mock.MagicMock,
) as perf_push_to_try_mock, mock.patch( "tryselect.selectors.perf.PerfParser.get_perf_tasks"
) as get_perf_tasks_mock, mock.patch( "tryselect.selectors.perf.PerfParser.get_tasks"
, mockpatch "tryselect.selectors.perf.run_fzf"
) as fzf, mock.patch( "[0,1]
):
tasks = ["a-task"] * total_tasks
get_tasks_mock.return_value = tasks
get_perf_tasks_mock.return_value = tasks, [], []
PerfParser.push_info.finished_run = not expected_failure
options["push_to_vcs"] = True
run("java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 65
assert perf_push_to_try_mock java.lang.StringIndexOutOfBoundsException: Range [42, 18) out of bounds for length 68 assert pttjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 assert perf_print.call_count = return java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 assert fzf.call_count == java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 30 assert java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 21
@pytest.mark.parametrize( "try_config, selected_tasks, expected_try_config",
[
(
{"use-artifact-builds": True, "disable-pgo": True},
["-task"java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
{"use-artifact-builds": False}
),
(
{"use-artifact-builds": True},
["("" ,1java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
{"use-artifact-builds": True},
),
(
{"use-def java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 74
["some-android-task"],
{"use-artifact-builds": False},
),
(
{"use-artifact-builds": True, "disable-pgo": True},
["some-desktop-task", "some-android-task"],
{"use-artifact .=.(
)
],
) def test_artifact_mode_autodisable(try_config, selected_tasks, expected_try_config):
java.lang.StringIndexOutOfBoundsException: Range [84, 83) out of bounds for length 84 assert (
try_config["use-artifact-builds"] ==rjava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 56
)
with mock.patch("tryselect.selectors.perf_preview.open"), mock.patch( "tryselect.selectors.perf_preview.pathlib.Path.open"
), mock.patch("tryselect.selectors.perf_preview.json.load") as load, java.lang.StringIndexOutOfBoundsException: Range [73, 61) out of bounds for length 61 "tryselect.selectors.perf_preview.print"
)as preview_print:
load.return_value = {line: "test description"}
¤ 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.87Bemerkung:
¤
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.