Skip to content

Ok... maybe this?

a35d493
Select commit
Loading
Failed to load commit list.
Open

Add plumbing for safe printable inset to wptrunner and webdriver. #58030

Ok... maybe this?
a35d493
Select commit
Loading
Failed to load commit list.
Community-TC Integration / tools/ unittests (Python 3.9) succeeded Mar 5, 2026 in 21m 4s

Community-TC (pull_request)

Unit tests for tools running under Python 3.9, excluding wptrunner

Details

View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster

Task Status

Started: 2026-03-05T11:37:11.302Z
Resolved: 2026-03-05T11:58:13.807Z
Task Execution Time: 21 minutes, 2 seconds, 505 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: ObAJOZPOR8a4s4dnroKubQ
RunId: 0

Artifacts

- public/logs/live_backing.log
- public/logs/live.log


[taskcluster 2026-03-05 11:37:11.541Z] Task ID: ObAJOZPOR8a4s4dnroKubQ
[taskcluster 2026-03-05 11:37:11.541Z] Worker ID: 5955753675518699731
[taskcluster 2026-03-05 11:37:11.541Z] Worker Group: us-central1-a
[taskcluster 2026-03-05 11:37:11.541Z] Worker Node Type: projects/757942385826/machineTypes/n2-standard-4
[taskcluster 2026-03-05 11:37:11.541Z] Worker Pool: proj-wpt/ci
[taskcluster 2026-03-05 11:37:11.541Z] Worker Version: 46.1.0
[taskcluster 2026-03-05 11:37:11.541Z] Public IP: 34.61.203.146
[taskcluster 2026-03-05 11:37:11.541Z] Hostname: proj-wpt-ci-e-04fou4rygkwstoy58iqq

[taskcluster 2026-03-05 11:37:12.340Z] === 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

...(314 lines hidden)...

ci/tc/decision.py                                       254     66    112      5    76%

ci/tc/download.py                                        71     71     26      0     0%

ci/tc/github_checks_output.py                            13      5      2      1    60%

ci/tc/sink_task.py                                       39     39     14      0     0%

ci/tc/taskgraph.py                                      124      9     62      9    90%

ci/update_built.py                                       37     37     14      0     0%

ci/update_codeowners.py                                  71     71     22      0     0%

conftest.py                                              12      0      2      0   100%

docker/__init__.py                                        0      0      0      0   100%

docker/frontend.py                                       88     88     36      0     0%

docker/retry.py                                          39     39     10      0     0%

gitignore/__init__.py                                     0      0      0      0   100%

gitignore/gitignore.py                                  188    188    112      0     0%

lint/__init__.py                                          1      0      0      0   100%

lint/fnmatch.py                                          21      2      8      2    86%

lint/lint.py                                            669    101    378     23    84%

lint/rules.py                                           311      5      0      0    98%

localpaths.py                                            35      1      2      1    95%

manifest/XMLParser.py                                    91      2     12      1    97%

manifest/__init__.py                                      1      0      0      0   100%

manifest/download.py                                    138    111     46      0    15%

manifest/item.py                                        255     21     46     10    89%

manifest/jsonlib.py                                      44     21     12      5    50%

manifest/log.py                                           6      1      0      0    83%

manifest/manifest.py                                    226     83     94     13    60%

manifest/mputil.py                                        7      1      2      1    78%

manifest/sourcefile.py                                  629     51    274     39    89%

manifest/spec.py                                         43     43      6      0     0%

manifest/testpaths.py                                    56     56     18      0     0%

manifest/typedata.py                                    192     37     82     12    79%

manifest/update.py                                       50     34     10      0    27%

manifest/utils.py                                        54     13     16      5    69%

manifest/vcs.py                                         206    163     68      0    16%

metadata/__init__.py                                      0      0      0      0   100%

metadata/meta/__init__.py                                 0      0      0      0   100%

metadata/meta/schema.py                                  13      0      0      0   100%

metadata/schema.py                                       52     52     20      0     0%

metadata/webfeatures/__init__.py                          0      0      0      0   100%

metadata/webfeatures/schema.py                           51     51     12      0     0%

metadata/yaml/__init__.py                                 0      0      0      0   100%

metadata/yaml/load.py                                    18      0      4      0   100%

serve/__init__.py                                         1      0      0      0   100%

serve/dns.py                                             75     75     18      0     0%

serve/serve.py                                          670    197    186     40    67%

serve/test_functional.py                                 47      2      2      1    94%

serve/test_serve.py                                      67      4      0      0    94%

serve/wave.py                                            78     78     22      0     0%

wave/__init__.py                                          0      0      0      0   100%

wave/configuration_loader.py                             40     40      8      0     0%

wave/data/__init__.py                                     0      0      0      0   100%

wave/data/client.py                                       5      5      0      0     0%

wave/data/device.py                                       6      6      0      0     0%

wave/data/event_listener.py                               7      7      0      0     0%

wave/data/exceptions/__init__.py                          0      0      0      0   100%

wave/data/exceptions/duplicate_exception.py               2      2      0      0     0%

wave/data/exceptions/invalid_data_exception.py            2      2      0      0     0%

wave/data/exceptions/not_found_exception.py               2      2      0      0     0%

wave/data/exceptions/permission_denied_exception.py       2      2      0      0     0%

wave/data/http_polling_client.py                          8      8      0      0     0%

wave/data/http_polling_event_listener.py                  9      9      0      0     0%

wave/data/session.py                                     50     50     20      0     0%

wave/network/__init__.py                                  0      0      0      0   100%

wave/network/api/__init__.py                              0      0      0      0   100%

wave/network/api/api_handler.py                          74     74     22      0     0%

wave/network/api/devices_api_handler.py                 155    155     52      0     0%

wave/network/api/general_api_handler.py                  45     45     18      0     0%

wave/network/api/results_api_handler.py                 186    186     44      0     0%

wave/network/api/sessions_api_handler.py                328    328    124      0     0%

wave/network/api/tests_api_handler.py                   191    191     68      0     0%

wave/network/http_handler.py                             85     85     28      0     0%

wave/network/static_handler.py                           34     34     10      0     0%

wave/testing/__init__.py                                  0      0      0      0   100%

wave/testing/devices_manager.py                          85     85     30      0     0%

wave/testing/event_dispatcher.py                        104    104     54      0     0%

wave/testing/results_manager.py                         494    494    232      0     0%

wave/testing/sessions_manager.py                        327    327    168      0     0%

wave/testing/test_loader.py                             145    145     98      0     0%

wave/testing/tests_manager.py                           261    261    134      0     0%

wave/testing/wpt_report.py                               24     24      8      0     0%

wave/utils/__init__.py                                    0      0      0      0   100%

wave/utils/deserializer.py                               89     89     46      0     0%

wave/utils/serializer.py                                 14     14      4      0     0%

wave/utils/user_agent_parser.py                          17     17      8      0     0%

wave/wave_server.py                                      50     50      6      0     0%

web_features/__init__.py                                  0      0      0      0   100%

web_features/manifest.py                                 68      3     10      1    95%

web_features/web_feature_map.py                          53      0     18      2    97%

webtransport/__init__.py                                  0      0      0      0   100%

webtransport/h3/__init__.py                               0      0      0      0   100%

webtransport/h3/capsule.py                               62     62     22      0     0%

webtransport/h3/handler.py                               13     13      0      0     0%

webtransport/h3/test_capsule.py                          98     77      4      2    23%

webtransport/h3/webtransport_h3_server.py               341    341    100      0     0%

---------------------------------------------------------------------------------------

TOTAL                                                  9287   5824   3362    178    36%



===== 954 passed, 12 skipped, 3 xfailed, 66 warnings in 896.19s (0:14:56) ======

py39: OK ✔ in 16 minutes 0.18 seconds
py39-flake8: install_deps> python -I -m pip install -r /home/test/web-platform-tests/tools/requirements_flake8.txt
py39-flake8: commands[0]> flake8 --append-config=/home/test/web-platform-tests/tools/flake8.ini
py39-flake8: OK ✔ in 7.01 seconds
py39-mypy: install_deps> python -I -m pip install -r /home/test/web-platform-tests/tools/requirements_mypy.txt
py39-mypy: commands[0] /home/test/web-platform-tests/tools/..> mypy --config-file=/home/test/web-platform-tests/tools/mypy.ini --explicit-package-bases tools
Success: no issues found in 312 source files

  py39: OK (960.18=setup[62.29]+cmd[897.90] seconds)
  py39-flake8: OK (7.01=setup[1.53]+cmd[5.48] seconds)
  py39-mypy: OK (39.92=setup[22.52]+cmd[17.41] seconds)
  congratulations :) (1007.15 seconds)
+ cd /home/test/web-platform-tests/tools/ci/../..
+ ./wpt test-jobs --includes wptrunner_unittest
+ cd tools/wptrunner
+ tox -f py39
py39: install_deps> python -I -m pip install -r /home/test/web-platform-tests/tools/wptrunner/../requirements_pytest.txt -r /home/test/web-platform-tests/tools/wptrunner/requirements.txt
.pkg: install_requires> python -I -m pip install 'setuptools>=40.8.0'
.pkg: _optional_hooks> python /home/test/.local/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_sdist> python /home/test/.local/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_wheel> python /home/test/.local/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: prepare_metadata_for_build_wheel> python /home/test/.local/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: build_sdist> python /home/test/.local/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
py39: install_package> python -I -m pip install --force-reinstall --no-deps /home/test/web-platform-tests/tools/wptrunner/.tox/.tmp/package/1/wptrunner-1.14.tar.gz
py39: commands[0]> pytest -c/home/test/web-platform-tests/tools/wptrunner/../pytest.ini --rootdir=/home/test/web-platform-tests/tools/wptrunner
============================= test session starts ==============================

platform linux -- Python 3.9.25, pytest-8.3.2, pluggy-1.6.0

cachedir: .tox/py39/.pytest_cache

rootdir: /home/test/web-platform-tests/tools/wptrunner

configfile: ../pytest.ini

plugins: hypothesis-6.112.0, cov-5.0.0

collecting ... 
collecting 159 items                                                           
collected 348 items                                                            



wptrunner/tests/browsers/test_base.py .                                  [  0%]

wptrunner/tests/browsers/test_sauce.py ..........                        [  3%]

wptrunner/tests/browsers/test_webkitgtk.py ssssssssssssssssssss          [  8%]

wptrunner/tests/test_executors.py ........                               [ 11%]

wptrunner/tests/test_expectedtree.py .....                               [ 12%]

wptrunner/tests/test_formatters.py .....                                 [ 14%]

wptrunner/tests/test_manifestexpected.py ..........                      [ 16%]

wptrunner/tests/test_manifestupdate.py ..                                [ 17%]

wptrunner/tests/test_metadata.py ............                            [ 20%]

wptrunner/tests/test_products.py ssssssssssssssssssss................... [ 32%]

.....................ssssssssssssssssssss                                [ 43%]

wptrunner/tests/test_stability.py ......                                 [ 45%]

wptrunner/tests/test_testloader.py ........                              [ 47%]

wptrunner/tests/test_update.py ......................................... [ 59%]

...............                                                          [ 64%]

wptrunner/tests/test_wptrunner.py ........                               [ 66%]

wptrunner/tests/test_wpttest.py .........                                [ 68%]

wptrunner/wptmanifest/tests/test_conditional.py ........                 [ 71%]

wptrunner/wptmanifest/tests/test_parser.py .........                     [ 73%]

wptrunner/wptmanifest/tests/test_serializer.py ......................... [ 81%]

..................                                                       [ 86%]

wptrunner/wptmanifest/tests/test_static.py ......                        [ 87%]

wptrunner/wptmanifest/tests/test_tokenizer.py .......................... [ 95%]

................                                                         [100%]



======================= 288 passed, 60 skipped in 11.71s =======================

py39: OK ✔ in 23.22 seconds
py39-base: install_deps> python -I -m pip install -r /home/test/web-platform-tests/tools/wptrunner/../requirements_pytest.txt -r /home/test/web-platform-tests/tools/wptrunner/requirements.txt
py39-base: install_package> python -I -m pip install --force-reinstall --no-deps /home/test/web-platform-tests/tools/wptrunner/.tox/.tmp/package/2/wptrunner-1.14.tar.gz
py39-base: commands[0]> pytest -c/home/test/web-platform-tests/tools/wptrunner/../pytest.ini --rootdir=/home/test/web-platform-tests/tools/wptrunner
============================= test session starts ==============================

platform linux -- Python 3.9.25, pytest-8.3.2, pluggy-1.6.0

cachedir: .tox/py39-base/.pytest_cache

rootdir: /home/test/web-platform-tests/tools/wptrunner

configfile: ../pytest.ini

plugins: hypothesis-6.112.0, cov-5.0.0

collecting ... 
collected 348 items                                                            



wptrunner/tests/browsers/test_base.py .                                  [  0%]

wptrunner/tests/browsers/test_sauce.py ..........                        [  3%]

wptrunner/tests/browsers/test_webkitgtk.py ssssssssssssssssssss          [  8%]

wptrunner/tests/test_executors.py ........                               [ 11%]

wptrunner/tests/test_expectedtree.py .....                               [ 12%]

wptrunner/tests/test_formatters.py .....                                 [ 14%]

wptrunner/tests/test_manifestexpected.py ..........                      [ 16%]

wptrunner/tests/test_manifestupdate.py ..                                [ 17%]

wptrunner/tests/test_metadata.py ............                            [ 20%]

wptrunner/tests/test_products.py ssssssssssssssssssss................... [ 32%]

.....................ssssssssssssssssssss                                [ 43%]

wptrunner/tests/test_stability.py ......                                 [ 45%]

wptrunner/tests/test_testloader.py ........                              [ 47%]

wptrunner/tests/test_update.py ......................................... [ 59%]

...............                                                          [ 64%]

wptrunner/tests/test_wptrunner.py ........                               [ 66%]

wptrunner/tests/test_wpttest.py .........                                [ 68%]

wptrunner/wptmanifest/tests/test_conditional.py ........                 [ 71%]

wptrunner/wptmanifest/tests/test_parser.py .........                     [ 73%]

wptrunner/wptmanifest/tests/test_serializer.py ......................... [ 81%]

..................                                                       [ 86%]

wptrunner/wptmanifest/tests/test_static.py ......                        [ 87%]

wptrunner/wptmanifest/tests/test_tokenizer.py .......................... [ 95%]

................                                                         [100%]



======================= 288 passed, 60 skipped in 14.46s =======================

  py39: OK (23.22=setup[10.61]+cmd[12.61] seconds)
  py39-base: OK (26.25=setup[10.94]+cmd[15.31] seconds)
  congratulations :) (49.51 seconds)
+ cd /home/test/web-platform-tests/tools/ci/../..
[taskcluster 2026-03-05 11:58:12.894Z] === Task Finished ===
[taskcluster 2026-03-05 11:58:12.947Z] Successful task run with exit code: 0 completed in 1261.407 seconds