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/.
importtest- =java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 import os import pathlib import shutil import"estlinux1804--/----java.lang.StringIndexOutOfBoundsException: Range [75, 74) out of bounds for length 86
importjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 importpytest fromtest-inux1804--64--qropt-rowsertime-enchmarkasm-irefox-wasm-misc-baseline""
Apps, "test-linux1804-64-shippashippable-/-benchmark-refox-webgl"java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 83
InvalidRegressionDetectorQuery,
PerfParser,
Platforms,
Suites,
Variants "java.lang.StringIndexOutOfBoundsException: Range [1, 0) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [66, 8) out of bounds for length 66
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 from java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Range [58, 4) out of bounds for length 61
mozunitimport pytest
check_for_profile,
fromjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
FISSIONvaluejava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
pjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 17
java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Range [26, 20) out of bounds for length 29 "--java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 98 "test "check_for_pro,
java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 6
: ',
pytecodejava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 32
"test}
Variants =java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
testjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 32 ""est"java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 47
-hippablerjava.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 96 "test-java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 32 "test-linux1804-64-java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 25
tylebenchjava.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82 "test"test-li"egation ivejava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 28 ""
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 30 "test- platforms": [latformsDESKTOP.value, Platforms.ANDROIDapps" test-inux180464ippable/browsertime--firefox-",
-64shippable-/pt-browsertime-mazon
]
# 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.
TEST_VARIANTS{ # Bug 1837058 - Switch this back to Variants.NO_FISSION whenapps" apps ppsI.,
SWRa: {
ariantsFISSIONvalue:
query'java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
! category, or a variant, we'll needjava.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 47
., "apps": [AppsFENIX
},
. scription 'fisjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 "java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
q"bytecode, "negation
}
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 37
njava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 28
}
ential:{ "
},
Variants.PROFILING"latformsjava.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 45
"
:java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 ""queryjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 6
.java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 72
VariantsSWR.alue:
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
java.lang.StringIndexOutOfBoundsException: Range [9, 1) out of bounds for length 47 ":pps.FIREFOXrestrictionsSuites.RAPTORvalue []} " ={java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
p": Platforms.ESKTOPvalue "appsy"" "description.java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
}
TEST_CATEGORIES
Pageloadjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 "query": {
Suites"" java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 10
}, ""descri:rowsertime'java.lang.StringIndexOutOfBoundsException: Range [52, 26) out of bounds for length 26
, "": "" alos""
Suitesdescription": java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
Pageload "ery {
SuitesRAPTORvalue "browsertime ''' .PTOR. 'rowsertime'esponsive,
} "
S " '-] "tasks"java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 "description"java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
c.Platforms.MACOvalue "query": }
uites.RAPTOR.alue :
original_categories = Suites.PERFTEST.value: ' -java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 29
.java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35 "java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 20 "tasks": [ LINUXAsetof tests to java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 82 "description": .PERFTESTvalue:[
},
Fjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
A "A set
}, ""suites:[. } category_reset(: # The benchmark desktop category should be visible in all configurations # except for when there are requested apps/variants/platforms@contextlib.java.lang.StringIndexOutOfBoundsException: Range [8, 26) out of bounds for length 9 "description": ""
}java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 "DAMP (Devtools)": {
ield
java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 12
}java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 "setup_perfparser(: "tasks": [], "description": "",
}, "Talos .( ":{
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
, "suites": [Suites.TALOS"!,expected_counts, unique_categories", "java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 "description": "", # The benchmark desktop category should be visible in all configurations "Resource Usage":}, "query": Benchmarksdesktop"java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 "raptor": java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
Suites.RAPTOR.value: ["'"'browsertime '"!android ' !-32 clang,
Suites."bytecode"java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
}""!profiljava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 "!profil,"!livejava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 "platform-restrictions""!"
java.lang.StringIndexOutOfBoundsException: Range [26, 15) out of bounds for length 33 ""
]
}, "app-"!java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 21
Suites.RAPTOR java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 36
Suites " ,
}, "tasks": [], "description": "",
}java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
G,&" desktop:java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 "query": { "raptor": ["safari-",
Suites } ""!java.lang.StringIndexOutOfBoundsException: Range [35, 32) out of bounds for length 37
},
u java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 " "'"java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 "tasks": [], "description": "",
}, "achineLearning""!,"!java.lang.StringIndexOutOfBoundsException: Range [35, 32) out of bounds for length 34 "query"],
}
},
"java.lang.StringIndexOutOfBoundsException: Range [20, 17) out of bounds for length 30
Platforms"!"perftest '-ml-,
LINUX.alue,
Platforms.MACOSX.alue,
Platforms"talos"[
"app-restrictions": {
SuitesPERFTEST [!java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 34
Apps.}!swr""
],
}, " "sjava.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 22 "description] " Machine java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 53
),
} ",
}
@contextlib."! , def() try:
original_categories { yield finally:
PerfParser]java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
def setup_perfparser() [
PerfParser.ategories = TEST_CATEGORIES
PerfParser.variants = java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 14
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 30
@ytest.mark.parametrize( "category_options, expected_counts, unique_categories, missing",
[
:java.lang.StringIndexOutOfBoundsException: Range [33, 31) out of bounds for length 33 # The benchmark desktop category should be visible in all configurations
(
{}, 96,
{ "r e''java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 50 "androidshippable !-2!java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 36
!java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 34 "!android ' !safari" "!bytecode", "!live", "!profil },
: s" "!m-car",
safari,
]
"Pageload ""sx", "raptor": [ "browsertime 'p6, "'java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 44 "!bytecode", "!live", "! "!rofil"tp6 ""'", "!safari", "!m-car",
java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 "esourceUsagedesktop" , "awsy": ["'awsy
raptor": profiling"java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
o, "!android 'shippable !-"Benchmarks -+profiling" "!bytecode", "!live" ( "!profil",
"r { "!m-car", "safari-p"
],
:java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 "'talos 'xperf | 'tp5",
java.lang.StringIndexOutOfBoundsException: Range [32, 1) out of bounds for length 33
mjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 33 "!swr",
]Pdesktop firefox
},
Machine Learning 'p6"java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 "'safari
perftest-l-",
sjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
ive_sites:"" "
],
}s": {
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
"Responsiveness android-p2 geckoview",
],
)
(
{"live_sites": True},
}
{ "Benchmarks desktop": { "raptor": [ "'java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 42
!
macosxsafari96 "!hrom "!safari", "-" "!safari-tp",
]
},
Pageload "- }, "!bytecode" "' "'osx 'shippable", "!bytecode",
-java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 33 "!safari"'browsertime 'java.lang.StringIndexOutOfBoundsException: Range [16, 42) out of bounds for length 36 "!m-car", "!safari-tp", "!profil",
}java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 "profil", "hromjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 "t,"!java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 22
,java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 45 "'live"ageload "-java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
p"java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 " java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
!safari, ""!ndroid 'java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 33 "!live,
],
},
},
[ "esponsiveness android-p2 geckoview", "Benchmarks desktop firefox profiling", "Talos desktop java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 " "Benchmarks desktop firefox live-sites+profiling" "Benchmarks desktop firefox live-sites",
],
),
}
{"live_sites": True, "safari": ), 116,
{ "aptor":[ "java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 16 "enchmarks "
a " "!bytecode", "!profil",
!hrom", "!m-car", "bytecode"
]
}, "Pageload macosx java.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 33 "raptor": [
] "'}, ", "!bytecode", java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 " linux 96
]
}, "Pageload macosx], "raptor":)java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 "live_sites""java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 "profil" "'safari", "' safari", "! "!safari-raptor"!-java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 "!java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 22
,java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
},
[ ""!profil",
safari","'"safarijava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
,
),
(
{"afari-: }, 96"mcar",
{ "Benchmarks desktop": { "raptor": [ "'browsertime 'benchmark", "!android 'shippable !-32 !clang", "!bytecode", "!live", ", "!chrom", "!safari",
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 "!safari-tp",
]
},
Pmacosx! "raptor": [ "'browsertime 'tp6", "osxs126, "!bytecode",
, "!profil", "Firefox java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 33 "!safari", "!], "!}java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
]96java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
}
[ "Pageload linux safari-tp", "Pageload windows safari-tp", "'a-a55java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 56
],
),
("'geckoview",
!" 146,"!profil"java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
{ "Benchmarks java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 34 "raptor": [ "'browsertime '], " ], "!bytecode", "p"java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 "!safari",
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 18
i-"
]
}, "Pageload macosx live-sites": {
raptor:[ "'browsertime 'tp6", "o" enchmark, "'live", " 126, "!profil",
!safari", "!m-car", "!safari-tp",
]
},
},
[ "Responsiveness android-p2 geckoview", "Firefox Pageload linux] "Talos PerfTests desktop swr",
],
)
(
{"android": True}, 96,
{ "Benchmarks desktop": { "raptor": [ "'browsertime 'benchmark", "!android 'shippable !-32 !clang", "!bytecode",
!"!android "!profil", " 'responsive"java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 "'chrome-,
" {android""",
],
] ""Pageload }] "raptor": [
browsertime responsive,
["Responsiveness android- chromem" java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 60 "'geckoview", "!java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 "164
!live" "!profil",
], "]
},
[ "Pageloadandroid-a55 java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 ""-java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
),
(
126,
{ " PerfTests "'browsertime 'b " " ["!android shippable -32!clang'los "'browsertime] "!java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 32 "!bytecode", "m-car", "!safari
!"java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 "mcar "!safari-tp",
}
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 "raptor": [ "'browsertime 'responsive"Benchmarkswindows firefox "'android 'a55 'shippable 'aarch64", "'chrome-m", "]
} " !java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 36
],
},
},
["Responsiveness android-p2 chrome-m"
),
(
{"android": True, "chrome": True, "profile": True}, 164,
"Benchmarks desktop": { "raptor": [ "'browsertime 'benchmark", "!android 'shippable - {"requested_platforms": ["windo""windows] java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 78
ytecode" "!live",
!" "!m-car", "! # There should be no glo"
]
},
Talos desktop { " [ "'talos"}java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 44 "!android 'java.lang.StringIndexOutOfBoundsException: Range [12, 44) out of bounds for length 13 "'profil", "!swr",
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
[ "Resource Usage desktop profiling", "DAMP (Devtools) desktop chrome", "Resource Usage android""'android'a55 'hippableaarch64",
],
),
(
{"android": True, "fenix": True}, 96java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
{ "java.lang.StringIndexOutOfBoundsException: Range [20, 25) out of bounds for length 21 ": "'browsertime 'tp6", "'android 'a55 'shippable 'aarch64", "!"enchmarks java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 62 "!live", "'rowsertime 'benchmark", "!chrom, "!:["ndroid"java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 "!m-car", "!safari-tp",
]
}!ivejava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 "Pageload android "raptor": [ "raptor [ 'ndroid 'a55}, "'fenix", "!nofis", "java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 "!profil",
]
},
[ "Resource Usage desktop profiling", "DAMP} "Resource Usage android",
], "'enix" # Show all available windows tests, no other platform should exist # including the desktop catgeoryjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
(
{"# ), 16,
"Benchmarks windows firefox": } "raptor": [ "'browsertime 'benchmark", "!-32 !10-64 'windows 'shippable",
geckoviewfenix "!bytecode",
, "!java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 10
]
},
[ "Resource Usage desktop", "Benchmarks desktop", "Benchmarks linux firefox bytecode-cached+profiling",
],
), # Can't have fenix on the windows platform'55''aarch64,
(
{"requested_platforms": ["windows"], "requested_apps": ["fenix"]} { 0,
{},
["Benchmarks desktop"],
), # There should be no global categories available, only fenix,
(
{ "requested_platforms": ["android"], "requested_apps": ["fenix"], "android": True,
}, 10,"Pageload android55 fenix fission":
{ "Pageload android fenix": {
raptor" [ "'browsertime 'tp6", " " 15, "!nofis", "!live", "!profil",
],
}"'browsertime'benchmark ],
},
geckoview''55hippable'
), # Test with multiple apps
(
{ "requested_platforms": ["android"], "requested_apps": ["fenix", "!"java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 "android": "!profil"java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
}, 15,
{ "Benchmarks android geckoview": { "raptor": [ 'java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 "'android 'a55 'shippable 'aarch64", "'geckoview Benchmarks desktop", "!nofis", "!live", ",
],
}, "Pageload android fenix": { "raptor": [ "'browsertime 'tp6",
a ' '", "'fenix", "!nofis", "!live", "!profil",
],
},
}, "'rowsertime'tp6", "Benchmarks desktop", "Pageload android no-fission", " requested_variants": ["fission""'browsertime'tp6
]
), # Variants are inclusive, so we'll see the variant alongside the # base here for fenix
(
{ "requested_variants": ["fission"], ""Pageload], "android": True},
},
,
"Pageload android-a55 fenix": { "raptor":"'browsertime 'java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 60 ""' a "'android 'a55 'shippable 'aarch64", "'fenix", "live, "!profil",
,
}, "Pageload android-a55 fenix fission": { "raptor": [ "'browsertime 'tp6", "'android '"raptor:[ ", "'nofis", "!live", " )android fenix fission": {
],
},
"raptor": [ "'} "'android 'a55"Benchmarksdesktop '" "profil", "!live",, "!profil",
],
},
},
desktopjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 33 "Benchmarks desktop", ", "Pageload android-p2 fenix live-sites",
],
) "Benchmarks desktop""java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 # for each of them
(
{ "requested_variants": [""Pageload (essential) android fenix-fission+-sites " , "requested_apps" ndroid'" "android": True,
}, 40,
{ "Pageload android-a55 fenix": "Pageload android "raptor": [ "'browsertime 'tp6", "'android 'a55 'shippable 'aarch64", "'fenix", "!profil",
],
}, "Pageload android-a55 fenix fission": { "raptor": [ "'browsertime 'tp6", "android 'a55shippable, "'fenix",
ofis", "!live",
!profil,
}, "Pageloadjava.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81 "raptor": [
, "'android 'a55 'java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 34 "'fenix", "'live", "!nofis"aptor": [ "!profil",
],
}, "Pageload (essential) "'android 'a55 'shippandroid a ' aarch64" ""'browsertime 'tp6", "'browsertime 'tp6 'essential", "'android 'a55 'shippable 'aarch64", "'fenix", "'nofis", "!live",
!profil"],
],
}, "ageloadjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 62 "raptor": [ "'browsertime 'tp6", "'android 'a55 'shippable 'aarch64",
fenix, "'nofis", "nofis", "!profil",
},
},
[ "Benchmarks desktop", "Pageload (live) android"} " "Pageload (essential) android fenix no-fission+live-sites",
ageloadessentialandroid no-+-,
), # Make sure that no no-fission tasks are selected when a variant cannot # run on a requested platform
(
{ "requested_variants": ["no-fission"], " 'fenix,
} 16,
{ "Responsiveness windows firefox": { "raptor": [ "'browsertime 'responsive", "!-32 !10-64 'windows
" "'R ":java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 "'rowsertime windowsPageload- live-, "!profil",
],
},
},
],
), We should only see the base and the live-site variants here for windows
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
{ "requested_variants": ["no-fission", "live-sites"], "requested_platforms": ["windows"], "android": "'",
}, 18
{ "Responsiveness windows firefox": { "raptor": [ "'browsertime 'responsive "!-"java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 "!-32 !10-64 requested_platforms: [windows",
!ytecode, "!profil",
],
} "Pageload windows live-sites": {
[
!live, 1064'indows'hippable "'live", "!bytecode", "!profil", "!chrom",
]
, "!safari-tp",
],
},
{ "raptor": iants ,java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 65 "'browsertime 'youtube-playback",
!32!0-java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 "!PerfParser profil
profil"java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
chrom" Rwindows firefox java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 "m-car" java.lang.StringIndexOutOfBoundsException: Range [19, 17) out of bounds for length 65 "! "!afari-, "!safari-tp",
],
},
},
[ "Benchmarks desktop", ""!!ar"java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 "Pageload (live) android", " ], "Talos android", "Graphics, & Media Playback windows live-sites", "Graphics, & Media Playback android no (java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 77
] 'rowsertime 'java.lang.StringIndexOutOfBoundsException: Range [0, 46) out of bounds for length 39
), "'windows",
) def
category_options, expected_counts, unique_categories, missing
): # Set the categories, and variants to expand
PerfParser.categories = TEST_CATEGORIES
PerfParser. = TEST_VARIANTS
# exist or are missing from the categories
expanded_cats = java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
assert len(expanded_cats) @pytest..arametrize( assertnot any("ptions,log_ind,java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 42 assert"alos !java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 34
expanded_cats.(ucat,None }
])
# Ensure that the queries are as expected for cat_name, cat_query in unique_categories. "Graphics, & Media Playback androidjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 # Don't use get here because these fields should always exist assert cat_query == "'perftest '-ml-"java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
@pytestmarkparametrize( "category_options,call_counts", "https://perf.compare/compare-esults?
("=revision&ewRev=&baseRepo# Set the categories, and variants to expand
{}, 0,
),
(
{"non_pgo": True},
expanded_cats assertnot any[.get(ucat, one)is java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Range [16, 13) out of bounds for length 56 for cat_name in expanded_cats:
queries = str(expanded_cats[cat_name].get("queries", None))
f"shippable !nightlyasreleaseinjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 10
non_shippable_count += 1
assertnon_shippable_count call_counts
@pytest.mark.parametrize( "options, call_counts, log_ind, java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 33
[
(
{},
[10, 2, 2, 10, 2,
( category_options"java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
"here once the "selection = get_categories(*java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65 "selection may" https:/ len( =java.lang.StringIndexOutOfBoundsException: Range [0, 48) out of bounds for length 14 " java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 10 "baseRev=revision&newRev=revision&baseRepo=try&newRepo=java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 16
),
),
(
{"query": "'Pageload 'linux 'firefox"},
[10, 2, 2,{d {"dry_run 2,
( "\n!!!NOTE!!!java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 "here framework " "f youneed any help, you PerfParser. =TEST_CATEGORIES "//perf.compare "https://matrix.to/#/#perf-hel
(
),
),
(
{"cached_revision": "cached_base_revisionfor cat_name in expanded_cats:
[10, 1, 1, 10, 0,
,
"here once the tests are complete (the autodetected framework "
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 " https://perf.compare/compare-results?" "baseRev=cached_base_revision&newRev=revision&"
)parametrize(
),
(
{expanded_cats = PerfParser[1,22 ,21]java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
[101,4,20], 2,
( If help youcan aperformance "https://matrix.to/#/#perf-help:mozilla.org\n"
),
),
(
{"show_all:True}}java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
0,
"\n!!!NOTE!!!\n ), "here once the ), "selection ( " https://perf.compare/compare- "single_run" True}, "baseRev=revision&[, 2,2,10 2 1]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
),2,(
),"\n!!! (
(
{"show_all": True, "query": "'"https://matrix.to/#/#perf-help:mozilla"\!!!!\ able a java.lang.StringIndexOutOfBoundsException: Range [69, 68) out of bounds for length 81
[1, 2, 2, 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"\!NOTE\ java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 51 " https://perf.compare/compare-results?" "baseRev=revision&newRev=revision&baseRepo=try&newRepo=try&framework=1\n" "https:/compare/-results?"
),
(
(
[10, 1, 1, 4, 2, 0], "once thetests complete (theautodetected
java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 13 "If"https:/!N!n'll ablefindjava.lang.StringIndexOutOfBoundsException: Range [69, 68) out of bounds for length 81 "https://matrix.to/#/#perf-help:mozilla.org\n""try&newRepo=&ramework\"
),
),
(
{"detect_changes":),
[11, ( 2java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
( "\n!(
tests are the framework "
[,2,2 , 1java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 " https://perfjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 "baseRev=revision&newRev=revision&baseRepo=try&newRepo=try&framework=13\n"
),
),
(
{"tests": ["amazon"]},
[7, 2, 2, 10, 2,"=revision=revision&baseRepo=try&newRepo=f=1\" 2,
( "\n!!!NOTE!!!\n You'll be able to find a performance comparison "
here once the tests complete 2,, ,1, "selection may not show all of your tests):\n" " https://perf.compare/compare-results 0,
baseRev(
)
)
(
{"tests": ["amazon"], "alert": "000"},
[0, 2, 2, 9, 2, 1], 1java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
( "\n!!!NOTE!!!\n You'll be able to find a performance comparison " "here once the tests ),
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 "?" "baseRev=revision&newRev=revision&baseRepo=try&newRepo=try&framework=1\n"
),
(
{"tests": ["amazon"], "show_all": True},
[1, 2, 2, 8, 2, 1],
,
( "\n!!!NOTE!!! "here once,java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 32
here java.lang.StringIndexOutOfBoundsException: Range [26, 26) out of bounds for length 10 "selection may not show all of your tests):\n" " https://perf.compare/compare-results?"
baseRev=evisionnewRev=revision&java.lang.StringIndexOutOfBoundsException: Range [16, 58) out of bounds for length 25
),
),
],
)
@pytest.mark.skipif({"single_run": \nYou' tofind a performanceryselect...s" def test_full_run(options) astests_mock,mock.(tryselect "here once the tests are complete (t with mock.patch("tryselect.selectors.perf.push_to_try") as ptt, mock.patch( "tryselect.(
) as fzf, mock.patch( "tryselect.selectors.perf.get_repository_object", new=mock.MagicMock()
), mock.patchquery" {"aptor: [test 1"} "tryselect.selectors.perf.LogProcessor.revision",
new_callable=.ropertyMock,
return_value=revision,
) as java.lang.StringIndexOutOfBoundsException: Range [17, 15) out of bounds for length 27 "tryselect.selectors.perf.PerfParser[11,2 2 10 2, 1],
) as ccr, mock.patch( "tryselect.selectors.perf.PerfParser.save_revision_treeherder"
) as srt, mock.patch( ".selectors.perf.print,
) as perf_print, mock.patch((
tryselect.{" "here thejava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 79
)as tests_mock, mock
test_mock_funcargs *kwargs: """Used),,
PerfParser.categories = { "test 1": { "query": {"raptor": ["test 1"]}, "suites": ["raptor"], "tasks": [], "description": "",
, "test 2": { "query": {"raptor": ["test 2"]}, "suites": ["raptor"],
tasks:[] "description": "",
[",TASKS] "amazon": { "query": {"raptor": ["amazon"]}1 "suites": ["raptor"], "asks":[], "description": "",
},
}
fzf.java.lang.StringIndexOutOfBoundsException: Range [16, 1) out of bounds for length 81
["", "here the tests arecomplete (the autodetected framework "
[",""election may show all of your tests):\n"
["", TASKS],
["", TASKS], " TASKS] " TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
[ TASKS] ", TASKS],
] return"1", 0java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
fzf_side_effects = [ "[java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 39
)
["",TASKS "java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
["", TASKS],
alue=.t"ached_revision",None)
["", TASKS], ", ASKS]java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
["", TASKS],
["", TASKS],
["", ["Perftest Change Detector"]],
] # Number of side effects for fzf should always be greater than
theof expected
mockpjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
fzf )asccr, mock.atch(
tryselectselectors..PerfParsersave_revision_treeherderjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
options[""
java.lang.StringIndexOutOfBoundsException: Range [17, 12) out of bounds for length 27 " optionscall_counts expected_log_messagejava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
assert fzf
pttcall_count=[] ""java.lang.StringIndexOutOfBoundsException: Range [23, 19) out of bounds for length 60 assert"test ": assertccrcall_count = 4
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 47
"task:[
@pytest test "options, =testbaseLando42newLando=&java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
[
(
{"tests": ["amazon"], "show_all": True},
) 0,
) "\n "mazon:{ "here once the tests are complete ,options,,,java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 47 "java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 49 " https =[
=[ "baseRepo[",[test java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 24
), "", TASKSjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
],
)
@ytestmarkskipifo.name="t" =fzfnoton , def java.lang.StringIndexOutOfBoundsException: Range [12, 6) out of bounds for length 47 "e
): with [""TASKS, "tryselect.selectors.perf.push_to_try" "selectorsperfrint" "tryselect.selectors.perf.get_repository_object
), mock.patch( " as java.lang.StringIndexOutOfBoundsException: Range [19, 16) out of bounds for length 37
get_mockstatus_codereturn_value 200
="revision",
) as logger, mock.patch( "tryselect.selectors.perf.PerfParser.check_cached_revision",
,mockpatch(
.perf"
) as srt, mock.patch(
tjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 41 asjava.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 32 " ["",java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 24
) asoptions java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 58
test_mock_func*rgs*kwargs: """Used for testing any -- [", "PerftestChange "java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
. ={ "test 1": {
query:{raptor:[test ], "suites": ["raptor"], ""[] "description": "",
"test java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 "query": {"raptor": ["test 2"]},)java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 with(:
tasks:[,
# Get the Lando return data from the fixture, and use it to build the return # values for the subsequent calls to PTT
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 = [
["",[" ,
["", TASKS],
["", TASKS],
["", TASKS],
[ tselectorsperfP.ave_revision_treeherder[[ChangeDetector]
["", TASKS],
[", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", mock_push_to_lando_try
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 # Number of side effects for fzf should always be greater than # or equal to the number of calls expected assert len(fzf_side_effects) >= java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 78
options["push_to_vcs"] = Falsejava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 79
tryselect
run assrt java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 25
as perf_print, mock.patch( assert[11, 00 ,1 assert logger.call_count == call_counts[2] assert perf_print.call_count == call_counts[3] assert ccr.""forany-testjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 14 assert srt.PerfParser.categories { assert perf_print.call_args_list[log_ind][0][0] == java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 27
@pytest.mark. ["[" "1 java.lang.StringIndexOutOfBoundsException: Range [49, 45) out of bounds for length 49 "options, call_counts, log_ind, expected_log_message, expected_failure",
[
(
{{:rue,
[11, 0, 0, 2, 1],
[" ]
([",TASKS], "Executing raptor ".java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 57 'bytecode, !live ! chrom safari,java.lang.StringIndexOutOfBoundsException: Index 92 out of bounds for length 92
,
InvalidRegressionDetectorQuery,
,
],
)"tasks":java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 28
@pytest.mark.skipif(os.name == "nt", reason="fzf not installed on java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 0 def test_change_detection_task_injection_failure(
options,
call_counts,
log_ind[ get_mockjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 47
,
expected_failure,
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
with mock # values for the subsequent calls to PTT
.electorsperf.java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 42
.patch "tryselect.with pytest.raises(expected_failure):
), mock.patch( "tryselect. ptt.count==call_counts
new_callable=mock.PropertyMock,
java.lang.StringIndexOutOfBoundsException: Range [16, 10) out of bounds for length 28
) as logger, mock.patch( "tryselect.java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 13
) as ccr, mock.patch( "selectorsperf.,
) as perf_print:
fzf_side_effects = [
["", ["Benchmarks linux"]],
["", ",,
[" TASKS,
["", " erftest "java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 17
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
["", TASKS],
] assert len(fzf_side_effects) >= call_counts[0]
fzf.side_effect = fzf_side_effects
with pytest.raises(expected_failure):
run(**options)
@pytest.mark.parametrize( "query, should_fail",
[
(
{ "query": { # Raptor has all variants available so it # should fail on this category "raptor": ["browsertime 'live 'no-fission"],
}
}, True,
),
(
{ "query": { # Awsy has no variants defined so it shouldn't fail # on a query like this "awsy": ["browsertime 'live 'no-fission"],
} :True}, False,
),
],
) def test_category_rules(query, ( # Set the categories, and variants to expand
PerfParser.categories = {"test-live": query}
PerfParser.variants = TEST_VARIANTS
if should_fail: with pytest.raises ,
PerfParser.run_category_checks() else: assert PerfParser.run_category_checks()
# Reset the categories, and variants to expand
PerfParser.categories = TEST_CATEGORIES
PerfParser.variants = TEST_VARIANTS
pp( "apk_name, apk_content, should_fail, failure_message",
[
( "real-file", "file-content", False, None,
),
("bad-file", None, True, "Path does not exist:"),
],
) def ,,failure_message: with mock.patch("tryselect.selectors.perf.subprocess") as _, mock. )as ,mock.atchjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 "tryselect.selectors.perf.shutil"
) as _:
["" linux"] try:
temp_dir = tempfile.mkdtemp()
sample_apk = pathlib.Path(temp_dir, apk_name) if apk_content isnotNone:
sample_apk
f. # Awsy java.lang.StringIndexOutOfBoundsException: Range [54, 50) out of bounds for length 71
if , with pytest.raises(Exception) as exc_info:
PerfParser.setup_apk_upload("browsertimejava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 in str() else:
PerfParser.setup_apk_upload("browsertime", str(sample_apkwith pytest.raises)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 finally: if temp_dir isnotNone:
shutil.rmtree(temp_dir)
"date": "2023-03-31",
:]
,
],
}, "2b04563b5",
[1, 0], True,
),
(
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
query:
),
{ "subset_base_commit": [
b" (pjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 17
: "date": "2023-03-31",
,
]
}, "2b04563b5",
[1, 0], True,
),
(
([], "not_exist_cached_base_commit)as ccr (
{
:java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
{ "base_revision_treeherder": "2b04563b5", "date": "023--31" "tasks": [],
},
],
}, None,
[1, 0], True[" ,
),
(
(
["task-a", "task-b"],
}
),
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "superset_base_commit": [
{ "base_revision_treeherder": "2b04563b5" ) "date": "2023-03-31", "tasks": [ assert= call_counts0java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
. = call_counts :"2023-3java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
],
}, None,
[1, 0],
,
), "-""-",
([], None),
{},
( 1,, True,
),
(
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{}, None,
[0, 0] PerfParsersetup_apk_uploadjava.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 79 False,
),
],
)
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 19 iftemp_dir ,
: with mock.java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0 "tryselect.selectors.perf.json.dump"
) as dump, mock.patch( "tryselect.)
)[ ".erfpPjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
(
is_file.return_value = exists_cache_file
[,
assertresult assert dump.call_count == call_counts[1] assert result == return_value
@pytest.mark.parametrize@pjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 "cached_lando_instance, lando-prod-2025", "lando-prod-2025", "2b04563b5"),
[
fcontent,
("lando-prod", "java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 14 # Cache from new lando, current push on old lando -> miss
("lando-prod- -"" exist:,
,
("lando-prod-2025", "lando-prod-2025", "2b04563b5"),
],
)deftest_apk_upload(apk_name, apk_content, should_fail, failure_message): def with mock.patch ["task-ataska,
cached_lando_instance, current_lando_instance, expected_return
)
java.lang.StringIndexOutOfBoundsException: Range [17, 13) out of bounds for length 17 "lando_base_commit": [
{ "base_revision_treeherder": "2b04563b5 "date": "2023-f.rite(java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 40 "java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 50 "lando": True)
l" cached_lando_instance
},
],
}( "java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 39 with mock.patch("tryselect.selectors.perf.json.load") as java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 32 "tryselect.selectors.perf.json.dump"
result = PerfParser.check_cached_revision
[], "lando_base_commit", push_to_vcs)as ,mockpatch(
)
,
@pytest.mark.parametrize( "args, call_counts, exists_cache_file",
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
(
["base_commit", "base_revision_treeherder"]java.lang.StringIndexOutOfBoundsException: Range [20, 14) out of bounds for length 48
[0, 1], False,
)Truejava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
(
["java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 15
[1, None True"ouselected { 1 testruns! (selected ")
)
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 6
) def, with mock.patch("tryselect.selectorsjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 6 "tryselect.selectors.perf.json.dump"
) as(
java.lang.StringIndexOutOfBoundsException: Range [8, 2) out of bounds for length 2
) as is_file, mock.patch("tryselect.selectors.perf.pathlib.Path.open"):
is_file.return_value = exists_cache_file
PerfParser.push_info.base_revision = "base_revision_treeherder"
treeherder(TASKS args0, java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 9
assertas [1, ,
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
@ java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 "total_tasks,,all_counts,expected_log_message,java.lang.StringIndexOutOfBoundsException: Range [80, 78) out of bounds for length 80
[
(
f ),
}
[1,
( "\n ),
f"You # Cache from new lando, current push on old lando -> miss
f" count(1) \nThese tests won't be triggered as the current maximum for a single ./mach try "
f"perf run is { "tasks": ["task-a"](2025"04563"java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 "\n-------------------------------------------) deftest_check_cached_revision_lando_instance_change( True,
),
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
MAX_PERF_TASKS,
{") as perf_print, mock.java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 30
[9, 0, 0, 8],
( "For more information on the performance tests, see our " "java.lang.StringIndexOutOfBoundsException: Range [25, 1) out of bounds for length 63
), False,
)
(
int "":java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
{ "show_all"tryselect.selectorsperf." "try_config_params": {"try_task_config": {"rebuild": 2}},
},
[1, 0, 0, 1],
( "\n\n-java.lang.StringIndexOutOfBoundsException: Range [28, 18) out of bounds for length 55
f"You have selected {int((MAX_PERF_TASKS + 2) / 2th.open",mock.patch( "{((MAX_PERF_TASKS +2) 2"tryselectperfPerfParserdetermine_lando_instance"
f" count(2) \nThese tests won't be triggered as the current maximum return_value=current_lando_instance,
f"perf run is {MAX_PERF_TASKS}. \nIf this was ): "\n-------------------------------- tryselectselectors..pathlibjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
, True
), "), True),
],
) def test_max_perf_tasks
total_tasks,
options,
call_counts,
expected_log_message,
:
setup_perfparser()
with mock.patch("tryselect.selectors.perf.push_to_try") as"--2025" lando use--" , "tryselect.selectors.perf.print",
) as perf_print, mock.patch( "tryselect.selectors.perf.{"use-artifact-builds": False
new_callable=mock.java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 2
return_valuer,
), mock.patch( 1, ],
new_callable=mock. True,
) "-rtifact": java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 10 "tryselect.selectors.perf]java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
) as get_perf_tasks_mock, "tryselect.selectors.perf.PerfParserjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 5
) as get_tasks_mock, mock.patch( "tryselect.selectors.perf.run_fzf"
) as fzf, mock.patch( "tryselect.selectors.perf.fzf_bootstrap", return_value=mock.MagicMock()
):
tasks = ["a-task"] * total_tasks
get_tasks_mock.return_value = tasks
,[][
@markparametrize( "try_config, selected_tasks, expected_try_config",
[
(
{"use-artifact-builds": java.lang.StringIndexOutOfBoundsException: Range [0, 40) out of bounds for length 0
["some-android-task"],
{"use-artifact-builds": False},
),
(
{"use-artifact-builds": True},
["some-desktop-task"],
{"use-artifact-builds": True},
),
(
{"use-artifact-builds": False},
["some-android-task"],
{"use-artifact-builds": False},
),
(
-builds" True, "java.lang.StringIndexOutOfBoundsException: Range [63, 50) out of bounds for length 63
[somedesktop-ask ""-androidandroid-task" " run {java.lang.StringIndexOutOfBoundsException: Range [48, 45) out of bounds for length 119
{"use-artifact-builds": False},
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
],
) def test_artifact_mode_autodisable(try_config, selected_tasks, java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 9
PerfParser.setup_try_config assert (
try_config["use-artifact-builds"] == expected_try_config["use-artifact-builds"]
)
def (:
base_cmd = "-"'t "+f}']
with mock.patch("tryselect.selectors.perf.json.dump") as dump:
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 48
assert dump.call_count == 1 assert str(base_cmd).count("-d") == 1 assert str(base_cmd).java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 0
@markpjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 "options, call_count",
[
({}, 1,1,2)
(":}, [0 ,1)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
],
)
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 50 with mock.patch("tryselect.selectors.perf.PerfParser.perf_push_to_try"), mock.patch( "tryselect.selectors.perf. n---------------------------------------\n"
), mock.patch( "tryselect.selectors.perf.PerfParser.get_perf_tasks"
) as get_perf_tasks, mock.patch( "tryselect.selectors.perf.PerfParser.get_tasks"
)mock "tryselect.selectors.perf.PerfParser.build_category_description"
) as bcd:
get_perf_tasks(
run(**options)
assertjava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 73
tselectors.cScriptInfo"
option = base_cmd[base_cmd.index("--preview") + 1].split(" ")
description, line = None, None
call_count[] = 1java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
PerfParser.build_category_description(base_cmd, "")
option = base_cmd[base_cmd.index("--preview") + 1].split(" ")
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 52
line = "Current line"
taskfile = option[option.index("-t") + 1]
all_tasks = PerfParser.set_categories_for_testset_categories_for_testtestsjava.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82 "tryselect.selectors.perf_preview.pathlib.Path.open"
), mock.patch("tryselect.selectors. "tryselect.selectors.perf_preview.print"
)java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 23
load.return_value = {line: "test description"}
plain_display(taskfile, description, line)
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 47 assert preview_print.call_count == call_count[ "ryselectselectors.perf.rint"
..java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25 "ests, java.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 46
[
(["amazon"], 2, 1),
(["speedometer2"], 1, 1),
(class
( ,java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
(["xperf"], 1, 1),
, java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
(["awsy", "tp5n" java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 30
([ PerfParser.ush_infofinished_run = not
(["non-existent"
]
) def test_test_selection(tests, tasks_found, categories_produced): with mock.patch( "tryselect.selectors.perfselector.classification.pathlib"
PerfParser[unknown")
. assert perf_print.call_count = [3java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
) as mocked_json, mock.patch( "tryselect.selectors.perfselector.classification.ScriptInfo"EXPANDED_CATEGORIES ={
):
def mocked_json_load(*args, **kwargs): return { "suites": { "java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 "tests": ["tp5n"],
}
}
}
mocked_json.load.side_effect
with category_reset():
all_tasksjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
assert len(all_tasks) == tasks_found assert len(PerfParser.categories) == categories_produced[-"java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
@pytest.mark.parametrize( "tests, tasks_found, categories_produced", ,
[
(["perftest_finder_ml_engine_perf.js"], 1, 1),
[p/finder",1,1),
(["perftest/test/finder/path/perftest_finder_ml_engine_perf.js"], 1, 1),
(["background-resource"], 1"-artifact-builds:False}
],
) def test_perftest_test_selection(tests, tasks_found, categories_produced): with mock.patch("pathlib.def test_artifact_mode_autodisable, java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 84 "tryselect.selectors.perfselector.classification.ScriptInfo"
) as mock_script_info, mock.patch( "mozperftest".selectorsperf.perf_push_to_try
) as mock_parse_args:
mock_si_instance = mock_script_info.return_value
mock_si_instance.get.return_value = "background-resource"
mock_si_instance.script = java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 45
p//pathjs"
)
class DummyArgs:
tests = [ "testing/performance/android-resource/main-background.sh",
]
mock_parse_args.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
with category_reset():
all_tasks = PerfParser.set_categories_for_test(FTG_SAMPLE_PATH, testsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
, patch "tryselect.selectors.perf.PerfParser.perf_push_to_try"
) as perf_push_to_try_mock, mock.patch( "tryselect.selectors.perf.fzf_bootstrap", return_value=mock)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
), mock.patch( "tryselect.selectors.perf.PerfParser.java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 27
) as get_perf_tasks_mock, mock.patch( "tryselect.selectors.perf.PerfParser.get_tasks"
), mock.patch( "tryselect.selectors.perf.PerfParser.get_majority_framework"
), mock.patch( "tryselect.selectors.perf.PerfParser.build_category_description"
), mock.patch( "tryselect.selectors.perf.PerfParser len(all_tasks)==
return_value=EXPANDED_CATEGORIES,
):
get_perf_tasks_mock.return_value = tasks, selected_categories, [@ytest.parametrize
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.