Rename OpaqueRange getValueRange() to createValueRange() #58079
Community-TC (pull_request)
Verify that all tests affected by a pull request are stable when executed in firefox.
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-02-26T21:33:37.310Z
Resolved: 2026-02-26T21:39:13.293Z
Task Execution Time: 5 minutes, 35 seconds, 983 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: LXOkTKNNRNGgwiR8EFf59g
RunId: 0
Artifacts
- public/logs/live_backing.log
- public/logs/live.log
- public/results/checkrun.md
WPT Command: python3 ./wpt run --channel=nightly --verify --verify-no-chaos-mode --verify-repeat-loop=0 --verify-repeat-restart=10 --github-checks-text-file=/home/test/artifacts/checkrun.md --affected base_head --log-mach-level=info --log-mach=- -y --no-pause --no-restart-on-unexpected --install-fonts --verify-log-full --no-headless --binary=/home/test/build/firefox/firefox firefox
[taskcluster 2026-02-26 21:33:37.485Z] Task ID: LXOkTKNNRNGgwiR8EFf59g
[taskcluster 2026-02-26 21:33:37.485Z] Worker ID: 2513634758425904886
[taskcluster 2026-02-26 21:33:37.485Z] Worker Group: us-east1-d
[taskcluster 2026-02-26 21:33:37.485Z] Worker Node Type: projects/757942385826/machineTypes/n2-standard-4
[taskcluster 2026-02-26 21:33:37.485Z] Worker Pool: proj-wpt/ci
[taskcluster 2026-02-26 21:33:37.485Z] Worker Version: 46.1.0
[taskcluster 2026-02-26 21:33:37.485Z] Public IP: 35.231.243.195
[taskcluster 2026-02-26 21:33:37.485Z] Hostname: proj-wpt-ci-qcttve1dtpyipl306o2flq
[taskcluster 2026-02-26 21:33:38.216Z] === Task Starting ===
+ '[' '' ']'
+ '[' -d /etc/profile.d ']'
+ for i in /etc/profile.d/*.sh
+ '[' -r /etc/profile.d/01-locale-fix.sh ']'
+ . /etc/profile.d/01-locale-fix.sh
+++ /usr/bin/locale-check C.UTF-8
++ eval
+ for i in /etc/profile.d/*.sh
+ '[' -r /etc/profile.d/apps-bin-path.sh ']'
+ . /etc/profile.d/apps-bin-path.sh
...(65959 lines hidden)...
1:46.19 INFO |--------------------------------------------------------------------------|---------|-----------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `Tests createValueRange returns OpaqueRange that extends AbstractRange.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO | `OpaqueRange handles createValueRange correctly.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO | `OpaqueRange handles empty value correctly.` | FAIL | `input.createValueRange is not a function` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-disconnect.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |-------------------------------------------------------------------|---------|-----------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `disconnect() resets range state and geometry.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO | `disconnect() is idempotent.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO | `disconnect() stops live offset updates.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO | `disconnect() only affects the target range.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO | `Element accepts new ranges after a prior range is disconnected.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-geometry-basic.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |---------------------------------------------------------|---------|----------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `Collapsed caret geometry (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Simple selection geometry (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Geometry empty after control removal (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Collapsed caret at start/middle/end (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Full selection bounding box inside element (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Backwards offsets collapse (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `display:none empty geometry (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Collapsed caret geometry (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Simple selection geometry (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Geometry empty after control removal (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Collapsed caret at start/middle/end (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Full selection bounding box inside element (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Backwards offsets collapse (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `display:none empty geometry (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-geometry-complexity-and-visibility.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |---------------------------------------------------------------|---------|----------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `Bidirectional mixed text full selection geometry (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Surrogate pair width normalization invariants (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `visibility:hidden caret geometry (input)` | FAIL | `hidden.createValueRange is not a function` |
1:46.19 INFO | `Bidirectional mixed text full selection geometry (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Surrogate pair width normalization invariants (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `visibility:hidden caret geometry (textarea)` | FAIL | `hidden.createValueRange is not a function` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-geometry-multiline-and-mutations.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |------------------------------------------------------|---------|------------------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `Partial hard-newline selection (textarea)` | FAIL | `textareaElement.createValueRange is not a function` |
1:46.19 INFO | `Selection spanning blank line (textarea)` | FAIL | `textareaElement.createValueRange is not a function` |
1:46.19 INFO | `Soft-wrapped long single line (textarea)` | FAIL | `textareaElement.createValueRange is not a function` |
1:46.19 INFO | `Collapsed caret across newline parity (textarea)` | FAIL | `textareaElement.createValueRange is not a function` |
1:46.19 INFO | `Input live insertion/deletion adjustments` | FAIL | `inputElement.createValueRange is not a function` |
1:46.19 INFO | `Textarea interior deletion & insertion adjustments` | FAIL | `textareaElement.createValueRange is not a function` |
1:46.19 INFO | `Insertion inside expands width (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Deletion collapses geometry (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Shrink/grow end offset clamping (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Tail deletion clamps end offset (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Insertion inside expands width (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Deletion collapses geometry (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Shrink/grow end offset clamping (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Tail deletion clamps end offset (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Deletion collapses selection (input explicit)` | FAIL | `inputElement.createValueRange is not a function` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-interactive-basic.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |----------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `Insertion: at start boundary keeps start; end extends (multi-char) (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Insertion: inside range extends end by length (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Insertion: at end boundary leaves offsets unchanged (multi-char) (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Equal-length replacement: single char inside range (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Deletion: backspace before range shifts both left (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Deletion: forward delete inside range contracts end by 1 (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Deletion: forward delete at end boundary no effect on range (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Deletion: backspace at control start is no-op (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Insertion: at start boundary keeps start; end extends (multi-char) (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Insertion: inside range extends end by length (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Insertion: at end boundary leaves offsets unchanged (multi-char) (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Equal-length replacement: single char inside range (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Deletion: backspace before range shifts both left (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Deletion: forward delete inside range contracts end by 1 (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Deletion: forward delete at end boundary no effect on range (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Deletion: backspace at control start is no-op (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-interactive-overlap-and-selection.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |--------------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `Overlap: partial overlap at start (delete selection) (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Overlap: partial overlap at end (delete selection) (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Selection deletion: delete selection exactly equal to range (collapse) (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Selection deletion: delete subset inside range (contract end) (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Boundary forward delete shifts range left (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Overlap: partial overlap at start (delete selection) (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Overlap: partial overlap at end (delete selection) (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Selection deletion: delete selection exactly equal to range (collapse) (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Selection deletion: delete subset inside range (contract end) (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Boundary forward delete shifts range left (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-offset.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |-----------------------------------------------------------------------------|---------|-----------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `createValueRange with single character in textarea.` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange with empty control in textarea.` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange boundary positions in textarea.` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange with Unicode characters in textarea.` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange with single character in input.` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange with empty control in input.` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange boundary positions in input.` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange with Unicode characters in input.` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange on textarea with whitespace in light DOM.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO | `createValueRange works correctly with weirdly formed light DOM structure.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO | `createValueRange ignores malformed input child nodes.` | FAIL | `input.createValueRange is not a function` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-programmatic-updates.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |-----------------------------------------------------------------|---------|----------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `Full replace collapses to start (shorter & longer) (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Full replace from whole-old range collapses to 0 (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Full replace (equal length) collapses to 0 (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Partial replacement adjusts end (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `No-op leaves range unchanged (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Insertion before range shifts both endpoints (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Interior deletion shrinks end (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Before-range shrink shifts left (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `After-range grow leaves range unchanged (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Superset replacement collapses to change start (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Insert at range.start extends end (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Insert at range.end leaves range unchanged (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Surrogate pair expansion grows end (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Chained interior edits cumulatively adjust range (input)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Full replace collapses to start (shorter & longer) (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Full replace from whole-old range collapses to 0 (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Full replace (equal length) collapses to 0 (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Partial replacement adjusts end (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `No-op leaves range unchanged (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Insertion before range shifts both endpoints (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Interior deletion shrinks end (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Before-range shrink shifts left (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `After-range grow leaves range unchanged (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Superset replacement collapses to change start (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Insert at range.start extends end (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Insert at range.end leaves range unchanged (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Surrogate pair expansion grows end (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `Chained interior edits cumulatively adjust range (textarea)` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-range-updates.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |----------------------------------------------------------------|---------|-----------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `createValueRange creates independent ranges on same element.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO | `createValueRange works on different form controls.` | FAIL | `input.createValueRange is not a function` |
1:46.19 INFO | `createValueRange works with disconnected form controls.` | FAIL | `input.createValueRange is not a function` |
1:46.19 INFO | `OpaqueRange collapses on full .value= replacement.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-supported-elements.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |---------------------------------------------------------|---------|----------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `createValueRange should work on textarea.` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange should work on input[type=text].` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange should work on input[type=search].` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange should work on input[type=password].` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange should work on input[type=url].` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO | `createValueRange should work on input[type=tel].` | FAIL | `element.createValueRange is not a function` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-unsupported-elements.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |--------------------------------------------------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `createValueRange throws NotSupportedError for unsupported input types.` | FAIL | `assert_throws_dom: createValueRange should throw NotSupportedError for <input type="hidden" value="test"> function "() => {\n input.createValueRange(0, 0);\n }" threw object "TypeError: input.createValueRange is not a function" that is not a DOMException NotSupportedError: property "code" is equal to undefined, expected 9` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-update-event-order.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `Event order: OpaqueRange updates between beforeinput and input (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Canceled beforeinput leaves OpaqueRange unchanged (input).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Event order: OpaqueRange updates between beforeinput and input (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO | `Canceled beforeinput leaves OpaqueRange unchanged (textarea).` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: element.createValueRange is not a function"` |
1:46.19 INFO
1:46.19 INFO ### /dom/ranges/tentative/OpaqueRange-validation.html ###
1:46.19 INFO | Subtest | Results | Messages |
1:46.19 INFO |----------------------------------------------------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
1:46.19 INFO | | OK | |
1:46.19 INFO | `createValueRange throws IndexSizeError for out-of-bounds offsets.` | FAIL | `assert_throws_dom: function "() => textarea.createValueRange(10, 15)" threw object "TypeError: textarea.createValueRange is not a function" that is not a DOMException IndexSizeError: property "code" is equal to undefined, expected 1` |
1:46.19 INFO | `createValueRange handles all range types correctly: forward, backwards, and out-of-bounds.` | FAIL | `textarea.createValueRange is not a function` |
1:46.19 INFO
1:46.20 INFO ::: Running tests in a loop with restarts 10 times : PASS
1:46.20 INFO :::
1:46.20 INFO ::: Test verification PASS
1:46.20 INFO :::
[taskcluster 2026-02-26 21:39:12.058Z] === Task Finished ===
[taskcluster 2026-02-26 21:39:12.463Z] Successful task run with exit code: 0 completed in 334.979 seconds