Commit 193b96b1 authored by Stephen McGruer's avatar Stephen McGruer Committed by Chromium LUCI CQ

Roll wpt tooling.

This rolls up to WPT SHA f333959abe07e6c4cfb388f4f7a03a0a109b38a5

Importantly, it brings in
https://github.com/web-platform-tests/wpt/pull/27175 which should allow
us to move 'wpt manifest' calls back to Python 3. (This CL does not make
that switch, it is just rolling tools).

It also brings in the change that makes '--py3' the default mode
for 'wpt'. Since the wptrunner bots aren't ready for that yet, I also
updated testing/scripts/{run_android_wpt.py, run_wpt_tests.py} to
pass --py2 to 'wpt'.

Bug: 1161274, 1166741

Cq-Include-Trybots: luci.chromium.try:linux-wpt-identity-fyi-rel,linux-wpt-input-fyi-rel
Change-Id: I0978d0685f2ef387e22e87e433d4a191e09e7597
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2627882Reviewed-by: default avatarLuke Z <lpz@chromium.org>
Reviewed-by: default avatarStephen Martinis <martiniss@chromium.org>
Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#843760}
parent b8623ff5
......@@ -125,6 +125,9 @@ class WPTAndroidAdapter(wpt_common.BaseWptScriptAdapter):
# Here we add all of the arguments required to run WPT tests on Android.
rest_args.extend([self.options.wpt_path])
# TODO(crbug.com/1166741): We should be running WPT under Python 3.
rest_args.extend(["--py2"])
# vpython has packages needed by wpt, so force it to skip the setup
rest_args.extend(["--venv=../../", "--skip-venv-setup"])
......
......@@ -55,6 +55,8 @@ class WPTTestAdapter(wpt_common.BaseWptScriptAdapter):
"../../third_party/blink/tools/blinkpy/third_party/wpt/wpt/wpt",
"--venv=../../",
"--skip-venv-setup",
# TODO(crbug.com/1166741): We should be running WPT under Python 3.
"--py2",
"run",
"chrome"
] + self.options.test_list + [
......
......@@ -22,7 +22,7 @@ Local Modifications: None
Name: web-platform-tests - Test Suites for Web Platform specifications
Short Name: wpt
URL: https://github.com/web-platform-tests/wpt/
Version: e04f27b9946175edab6c09421ab5ceaa14b84539
Version: f333959abe07e6c4cfb388f4f7a03a0a109b38a5
License: LICENSES FOR W3C TEST SUITES (https://www.w3.org/Consortium/Legal/2008/03-bsd-license.html)
License File: wpt/wpt/LICENSE.md
Security Critical: no
......
......@@ -9,7 +9,7 @@ cd $DIR
TARGET_DIR=$DIR/wpt
REMOTE_REPO="https://github.com/web-platform-tests/wpt.git"
WPT_HEAD=e04f27b9946175edab6c09421ab5ceaa14b84539
WPT_HEAD=f333959abe07e6c4cfb388f4f7a03a0a109b38a5
function clone {
# Remove existing repo if already exists.
......
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQILrnX+IA5B7wCAggA
MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECEtP+3jaoEqkBIIEyAkS32MWcijR
TWp8Y1SEM5Gos2WvaSVMZy8vURNeE23+YR2lD1zJbYy3c1vHWheK6VKHaH9NGkvK
2D6rIsQwnE/O6gfZRxWb2hDRMXQDksAVH7igGfX+WkHoBwHyxrDb8juG/xWsFIr5
W63AH6N8XR+N+m97uWIATpbcbhAkRaBOxELmHhDaMvQdvFqwhjewUqS3RrC947Kb
4NcvG9kKGxI6UPWMErw0WWmVYsBc/8+gn1866Qef0IlxDqJdqRFhKspCZGBCj2EX
CLrvM8+6NbI/5miTmjRsaBj7iTX9hvL46vVQt401E6V0V2vLI+oYuNrmD1fV75a6
l8I9xhzaEjSIZ1t40yry8DukZN3EwM0oPzfP8WdKenof0rObaDiBYCqmyO+Re+n0
QklgCK+pYfdGaEYhbIkyktfgZvWEw1+8t3jXEEG96lTIosl0WznD/teSpGnCtyme
/KsLGCOYpUqyiKLgM3+aLiP0hVWAvFVT015gwQfdzyd0nXc4x8Q/Xz8jYL/t2TFM
7tT9diQoaiJ12/ug8UZ3NQVgm8Ibk0Bu3pNUv1StFgyrY5XdP3FIMQWgU4p6+oj0
cY5b62Wrw5XQoIrnkTG//lqAOeMTSFxvlu62RoC4y7ji7u1PQnzRjbMd7j42tqVA
Xn+l9EJvqkynefYytIMsWw+uYAtUeBw8783R9j+Ldy6lvnk/CdnSqymZ7E+WF6bp
54nWYsM6bv1y+T6gK6dYm9RUqfrgggsdNHC0GxsTwUmpHVERSAKdZb81xt5KCuM2
waOxUYAY1Mp5OzvAGfeSstagdWQ0ExsAGw5BAZvuiS9b3x0RqnFoEyQwAv90ON1H
Eb3E4w/eQsAu+SA5aUD/Yr1lt+hcKJ5EdvXHrLIl8ck4NYwxk0spZsbSceq0JekG
obscmp5xyiA0/v9PJHVrmoNWFyy6GO8J/ZZztU/kTGajcXIO8P4ygLbh+Gr0gI5c
sE0sIR/3Q61tiLMbWKxx+rwsptfYBdQyGCgvDbg3fNUxYmblFj6MyM8T3q7A1mcX
0y7dGHr8n+a2IdJ8+ZTqZXuJh1AwHyUht1YzccXy6TvGPVuJgDuRp6zvs0w+D4Oe
ddPUVs1P8wj4QhRes1dnuyTBUNokfoznHvKsGX8AH9eN+UOQ3TkwjDRe5pxtJ2XX
HL3XeCVXt3Bxu3unZ6nisUHHt1a4jckS7gwkChWObyfGEq34J95W771Kw2cxeyDU
pWz6Rt1jYGTioT1sIL2Z8m0Ru5n8SsMOysQkF1BXM9bmc8iB+lDNoi83G2Kgk6DN
/vDMPhI894TL58BH/wx3PSMiiUA4eR+PjDltT5UC+qlhDiC6WEoSt/hhtrg7DgFb
mPes42/B8T7CdmUD2HUUR+XsChBQhAQrcuzqMcS6Zq6KARgMaCzT3cYFA5C/LiUZ
TyGmYpCBggkcpoKCVgUC9EmQ3FRC9nXCWnlDUJRM0sd3kluYGrQBo+wVzb+6JMvV
JOESa/7t827YRvlYS8RCDihSgX1G4T/4napL3YCxPrFOmdCQYDovVaUA3qdlpxP+
MQHsGiF9joIMKdfFjCKa2ryInMaR0lmv7y/Zs9EMWg8O6BQF+NQobJuwU5sKlegx
8Lo4YqfmCdNAzsSJ6rhC1A==
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQI666o+tmBgXYCAggA
MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECILZgh0KpE9MBIIEyCgMCCFkSlDm
wPDpQ0rFCyQyAcdP5HMnLM/W+2z5TYDqdhtLd+XqD2lGqr4lCd33CoDubRxZoU/t
VQ0TuDQcfhCz8HG6nXMpai2NDrc5Ot29fVFdMFkk8na17RhMKUc6Gan/TDi+E4i8
e2YakJ5JgaBUFBf/jyqJfLsYJezNFhn5+nCsz+KbZBoht2B+W/rq/FAUzwPGJ+Yc
8J2gVcuRUctXwS47yI8aklXhIhwmL89Ioad3rpypeDX3tu5TeG2nv/d1uV3/FngC
/18b4eJz6dpqdTVN5Uoa3NjHjY8a8mcBvWKBL6mWy2dTVl9W8wdgtVkvc0PsF3Pu
oJy5oeWhP6dSqAvDHTDXa38rt3H9IRmTsIXd0VVOIhFjg8tDQTBR/CyJKp4JO8Oy
y/RGZsdqcO03ujolWOlDY4Pi8e7JpHK+1kyhGOTimi/9JuWtiSp40gKDzylL1oaw
hr1UaPHl/kA/gJgpDBKT+PXQt2Gm9qje9+B/U6zj31bVd0r1S0qMlXz81t/K+BcH
u/5NaZsDXyE8rufyxAHPBKPxXMZONG7y6EbF868EHUrCAKlElfHtTnvP/k68V3eH
GnVzsId8eirzutrRdugPXS7Pg1Uj1CL6Ga8ia9MfEIbSx/g2FQ9SMnurXVeWv1qM
uMNZbRZUkkJD8T/VqB7ezrI553iTqZFGr6fQ0dyXBS0m1phPSkmPcqE42sYCIZcy
KZGYeWS1LkFRoTxoAwRS8cf14NjmoG+Aby4iyB3QiMDOmsylZDF0vsYeUbUIkxyz
GnSn2LaVpT3ZeuziLnNn3JaeIy946jEgZETvCDruurV5AoAb9pXG2Xuysevx/AuV
Owzz82PqG308kq6xhcGNK+v9FRbagHaGZ5EG+iVUTjN348NjJIriDVdrH06fBqe+
UFD9fAnN/Kj4dIJKUCun4UZiz2jHeNnAmkLwOZn/eTK1LbUrmT0J+3eupaF7zzxo
CednARzHvAiEVAX8Wd5DauIjczesjdrO9ys7dTMeZeyV5t/s8W66TB6tVDIQwTIp
3skdhbw22zI2lcrDhZbbYhwO9R6d4liENUZ/W5ISLDXn+w8kqqh1qXoE8vR0lxpy
Oz27kg5DBqyUflx99HwLj8epMNpGzepMAeFXTd+gLFKk7gWtU/5mJItTEfBu8Iih
FT3/eesClxxzBm2Mk1viv/iKspTH92+mKEz2ng6jONWxHXkfuxNWe4wX+KmO7s7P
plzxnbr2TlNTewbuYqyKMwe9KOiXosdfxUkJq6D8R0bf+A69M/dggO7BVdxNfF71
+xdfqjWjll/58lQ15KdlycfVlYj6iDvK1ChrK4UH2myGbmhThIItezPm8Oo4i3I6
iPk8ns/BqfFH2raE7cw7G3Ug6cEJrc8OG4c1mfBuHPAeDrCWNu7tEqwKrGGJVA3b
1GiBo72z5XVOiP7lku708ZEfrzh2UGuSvx0gbpW3aMDNnVq2O6euIquZugeewckq
2Ox9C1vADIA8ugRdHbSVRQE33YiU1QS3MvQ9TYW/Zv7Buuhrdk2S1WLRpkWw+qR6
62EFFAw6wjpK/vciGucrV8GyybdxPFqZPMtQkghaOPUO84Qsx2rZXAR+4/gZuHGm
v2L3tYSDEmQ+6kEynWtX/w==
-----END ENCRYPTED PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIJAhzCCP2+gAwIBAgIDBPWrMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMDEyMTIwMDI4MjdaFw0yMTEyMTIwMDI4Mjda
MIJAhzCCP2+gAwIBAgIDBlVFMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMTAxMTIxNjEzMjhaFw0yMjAxMTIxNjEzMjha
MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBALyIJvebVlTCq1p3h+cow7sp3qjhVJQASg+v7huHucEG
eoq11qbpaJ9WkeHxYO6PjpIHegpogvqKXmkV02BMqt+5ULEWIYpaz4VHiEH4E8Wc
zZXYSDFDC40zDLjrzt1+BZYlMpBTeSRj7WLkD/Qhb6ZozAzDJhoJRpEkmQZ0t14s
55feXzm87ZOiEm2d2B33JPpWhw+tusLufcGoz4D4e9tNOtXPdus/QpXRdsdoy53L
WI8GRPfJKrhQ1gXnBXTcDJpXDPqk8JMsciYL+63MiVOZ93v4dD3uueK5Lsn/krVV
Eoivkz1ONiXVgI1oQMJO7eFylka85fikC7r316ZCcJ0CAwEAAaOCPc4wgj3KMAwG
A1UdEwQFMAMBAf8wHQYDVR0OBBYEFKepXnGpqWQbsgOM0WPj+KHQtRpoMEcGA1Ud
IwRAMD6AFKepXnGpqWQbsgOM0WPj+KHQtRpooSGkHzAdMRswGQYDVQQDDBJ3ZWIt
cGxhdGZvcm0tdGVzdHOCAwT1qzALBgNVHQ8EBAMCAgQwgh+bBgNVHR4Egh+SMIIf
BQADggEPADCCAQoCggEBAKlAc+52QkFGs3xjT0OiT3t7HajqFqelNp5toVZfL/SF
cXqvhldvWzlKs3XW4+OKnGQP1nB7qmZZ8GjSY02Nho36Vq+YdzmHIHYPZcAlfmNO
6iY/nca7C9MEIVJvxQsG/C5ZUTkKJ93iDehGay5YF8wiIb+k6cmaV5cDs+oBwmwu
X3hxsDjOklUYCVY4Wvd4fU/zR/LdI3QZTAlNa4eLu7v/8z0vo8vG7T8VS09mc6eh
BjB0x1L7XE6n+4v3gGE8RbxeaIpZbv8vVWK1LLLQ01gCOiNFjuuD3VcBqnZTbV9/
v4MqHrPFfZm1MxesB/kybMTve4Y6PjT1U3zgJsrV0UcCAwEAAaOCPc4wgj3KMAwG
A1UdEwQFMAMBAf8wHQYDVR0OBBYEFNxtjWLdVJjIYBfC01Gzv3NbXJC5MEcGA1Ud
IwRAMD6AFNxtjWLdVJjIYBfC01Gzv3NbXJC5oSGkHzAdMRswGQYDVQQDDBJ3ZWIt
cGxhdGZvcm0tdGVzdHOCAwZVRTALBgNVHQ8EBAMCAgQwgh+bBgNVHR4Egh+SMIIf
jqCCH4owE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVb3A4LndlYi1wbGF0Zm9ybS50
ZXN0MBeCFW9wNy53ZWItcGxhdGZvcm0udGVzdDAXghVvcDkud2ViLXBsYXRmb3Jt
LnRlc3QwF4IVb3A0LndlYi1wbGF0Zm9ybS50ZXN0MBeCFW5vdC13ZWItcGxhdGZv
......@@ -337,11 +337,11 @@ d2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3dr
cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2ty
cWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0
gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4
YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAHRhJQlg
uwzvgj4WGzomthrmeYpP9hELJzW8jPDyTZosUeX63zmctP46cFlcFPSZJn5UGUrP
hpwdC5RJx9cGjYUjqqgahM+R5bpo0NqJJZfiO0a+yndxUwYRawW/fGDnyFwcXl7p
QYD1dpw+u5b1m9+B4GW3hXqzBLwBKJ8mH62E4RZQwSBMsSNiDLRsPFAdc/IIHKUS
B8zI53byoNLzjGSDjaw77n2arGS3CuoBbYyiMxVVmdRgZ8pbHewfKkwKNdsnGGgr
0YHlg2WQ/lBSOvPovAti89vkWzPJYhJbPS2ybaHOAzVJxmqP3dpBoL2vw8yTIM6G
kGxP4JsY0GYmQ+U=
YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAHOGp2Ji
xKvvqNucL2gpFBIpsT8abmKBLBm4LsSBGEFPy12fDztkWBVTEN/WiyHRL93PPnn2
YFn3/jSuAgq0LkSx8VB/Xn2CZgY9+WzL4++GN6I6kYAuuvG4/P6iwwDCwX7y2coD
D75E4WVVTjEsKG2vRiVWzccmg/BTmvXQJU8DSPhzPQtU/D8qHUIe/McHmEW9sxpG
ktJSXqAe0VnvwPXhJ/scOiyJaXvC8mRjM50nUGny0n9Nywltm3oxOAVAZIahZa7g
KMnRywojNqlkccXeHCjH1wXOhzuyQX+MvvBqq968ttIV/hbUXh+D/Su9M0qQclbA
09vdXeld+rSxP8s=
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDE3iJ5ETr7Gylm
+Pano4qjJBd/vBVx81OvGhdDdoD0U6fVZxYosFvZPwiq7+J4vM0Pv16Z+TaMKZiQ
nQwABKBIUlufArAuRVtivsoxYdmuOFJ0e/KNaeL9zjfgK1mYK1zK/xNNIt/OpWJ/
GPMSCkywZ9ozBJ4+0vfb+ddDZruKfOMqTURL4zclukld5egdvT+1xF11yvYtPncY
A4c8u4g4ry3nN8b3DEBgr0aWM3f9uXLVhddSqt0Qy7IpaqWI1cAwT9Dq1VAJK2ZB
Hn9VQULSnVc+unmK8WU0Rgqs5s012B9oB6NfpQht6FIc+PQRNldNimxYkb2uneO6
r/CjiVlfAgMBAAECggEAN/gPROwpIIqwUp4lQbO1DnyMUbxfPG45NGbuhjeCofPG
m10bZ6X79t98z1wzvq+ufPOjKZM4dtC8lyCO8NJf3y/K7IIPJJiDSqeDRFbVVDqe
9o7mfl3EMvQV3p10c1agovWxvxRTHKTYQ9oMAOz8sIpV9nsxohrIbLmzAW6Lkus+
YmCCE0pBdxf9QmQAdcqHFjclFllfRGrlNqRTCsjUaDToat4N0riGr0nbLzEHw7Ml
YLQVT3OTpKj3kNsA/Po9YFpt4hWv5Q0Ng0T0TKuBBe36qNQOaKje0RAmUS2rfYTS
XEGsZU9w3uXJAMmcTbOG9+RGkwsern9gEGDfCvpKwQKBgQD1Z2JhQB2xUd3phvPq
CQDlBWBJ9gPfZAIc9h8YrvzIGlR2iCUDSf04r148LqCf2a4Bm4YGRDtGKpCjmrg5
hM3eHICnsI+KxsSexQV2yWBxfijI94WxvB9R5/WmebbyGN9Dz14e79cCpIOJNqQJ
wfvlWf8vQaEZO6D6qW/1dVAI3QKBgQDNXj9aXX3KZewkj5dFSJOB63EATD9DOTaB
BbtovYGlnS6hZApmrKRHqu8RwTWJtDe5f/9LWNamgSb+X9YevkxUd4IFxZmccSij
3eQrJfyMgFOSeK/mTOgtGjSXLxCvUmNe0vkzAEt26mM/TS3vJ8UZFxzm0CEXuzsk
3cuV5I9pawKBgQCzAKJmRZpjCVBRUzr/72lTpMRDrsvMWuqfrXepTZrdazdI7q3w
5Dts6Z5XT7uiXenrCkKMt6B04f93Fxhh/FkeNrQxnTxXAf3RwezmZKWQo3Gkhchj
iNFfsU8iC45CsZnJoK0K6+9t4gqAP/cPlwvik+7rzXdxLGmT7ZvY86VZkQKBgEax
yt0wkby6mS98vnX7JcvzYFLZ7G0XpMuFTZ4gniCEmyizZ2EwzNxe2y0hdWyRvRz+
EsO9MSbgDqxCEVND7sKk4P1bqCVSTssZ9xFjYix7gElLgkGk98eO3cutR/ESS2K4
/U+xKkklJkUELGvHJPIeIrTRsJKawSFPuGVA6J1BAoGBANobP7XsZoSkQvsDPEXT
lYdB9ez11hkQ1ZTbqkHrNUpJQ1IUbUuuK5cgNqK5rMTDySH/zofbh1kDOJxO0R5O
KrqghC/efrOiDhOmGrxlYH7enTYEfDSav1M1TTTZ7cLd4+q8yeZ97S5b533NfsFF
oYu93U3AsLggvr23JopNBxSQ
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDcwhdziEv2WAkv
K/wpecn5LRAprbWRjaotacXvktoxS0aK2ff34wiV7GrBucxxU81i3LCucnd82dGT
4vHfzTKKab5/+vut1FNoG5BKmGYZCpOo6MZOWAJJ4zXYQBAEeKurSjglzOXWmjSp
AEzM9TqUG66lpoSK58zv7gneDbjDnJhbKYZQurNOm3PLMd0ep3/yxqwqVia1nOn+
xa4ZoFrWwguWDKx09yhBKEVDHXtAGfZp9EWATquEsqFSoeLqyQDvfe5Hefi4dPmY
32OiJG4ArSKegxyRekQZ8E4x3mnlt3prC6nZFexLG60UOix/AN3RifpHDey8Zq/L
pGsy+NT7AgMBAAECggEBAJrkOA4hAKNs66zEYN49DKCfpKqJrk7dJh1NDMtmr19M
4McF3r1394sx4Unh8ndFhGMsU29i80GPl0P7RRhxYlfJkBc94574zjjKtjgQq/o/
+JDYGmPXzmtHV31Ona51eIXrwm+LT2x+sBowErLwEVTgA29I4dCQibOCwjuiRxQ/
mn2A4Q60OllIRCwSE3/uA9+mUpeMp5jgJd+oN3uT58Tme/SRNXxOKgCie8WRUnue
X/cghKYSNmAyDSkbJ0KY4oavb5YRKXNpAt2hNW9JsN0qd3+j6JZ21odhydDbtqSq
mxjPTUFQNFeLVvDTaRYw+zK+I/noZIrlQsS6JPNfXkECgYEA+m3L9jLe2lz0SJmG
NnFuY8rwwYVJm4TLhjYDmdmYbGcYCPo9CHHKhR6ZXrmNzxcXvwaZk8ZTspAZ2Bzw
1AM52mhGZejR7yV5FECh+UKrx/Aud+jm0WhPtwYjixz8IhmGG81orYueux50HUcO
Q/K5Nqo1esBBC+X5Ya2rb3jShGECgYEA4atRn6P5DCj4ug3SSlUNIS3dJxbe3QhB
lTkCtXUQC+p+VIUI0mVk6NgN4drgViKOlhzMKYDMtiVY2XLXQNVPEJ4ngMSC1uzr
tGefMuL/WRpsysxwjN0b+0fDVeXtM16CtXOpqnoYi3XX/R6aIqZ3zVi/ttwEOy6G
TdgnZNcJVtsCgYAW70tIpuwF75FnvLev8L99YC6gaoaNOaIyDmxSAL2W3/IxkEla
pqE3g8/j/vZfyuuf0QjrobQ0nEHhqvTbVdhMilQ4LRRc5H+sPScYXuTAkNyQmsHY
18bFKkjDCsqEjPXdQfiePDUzSdy0ebdyvZ38xaXUMhtC7bLjITacJOKSwQKBgGlJ
1kZmab8rqoicBD5cGkkdre4b9JUp0fd+Zu4klP0KRjDG9Qu89OzSSP/UcBCgBOiy
vOqsRlbBbAfgVd/Q5he5wnKIvQbr+Tjtk9BZKov3EUU5R1Xhn7mIjPGZ2ia6dL+W
HFYGq0b+D2zwhzeddY3gV2pIkszN8ymErTSWQ6w7AoGBAIECBMwE3YL0TGWPdU9A
RV3a5G9slunqhVGQCwvBfWwj6tIplhtOLAp4y400DHbw4Jwi5Z+hDQu9PzMGhhwu
qZLMJZJ4BAUaVHoEcuo1sab25UH6a0pdGf7BgCmjKjPAHtvzMyfwfKpju7ZObpqx
Yet1DMpvmPlX1kZsEh072zBs
-----END PRIVATE KEY-----
......@@ -655,6 +655,16 @@ def check_parsed(repo_root, path, f):
if incorrect_path("testdriver-vendor.js", src):
errors.append(rules.TestdriverVendorPath.error(path))
script_path = None
try:
script_path = urlsplit(urljoin(source_file.url, src)).path
except ValueError:
# This happens if the contents of src isn't something that looks like a URL to Python
pass
if (script_path == "/common/reftest-wait.js" and
"reftest-wait" not in source_file.root.attrib.get("class", "").split()):
errors.append(rules.MissingReftestWait.error(path))
return errors
class ASTCheck(with_metaclass(abc.ABCMeta)):
......
......@@ -197,6 +197,14 @@ class MultipleTestharness(Rule):
"""
class MissingReftestWait(Rule):
name = "MISSING-REFTESTWAIT"
description = "Missing `class=reftest-wait`"
to_fix = """
ensure tests that include reftest-wait.js also use class=reftest-wait on the root element.
"""
class MissingTestharnessReport(Rule):
name = "MISSING-TESTHARNESSREPORT"
description = "Missing `<script src='/resources/testharnessreport.js'>`"
......
......@@ -230,6 +230,7 @@ class Manifest(object):
# 25 items was derived experimentally (2020-01) to be approximately the
# point at which it is quicker to create a Pool and parallelize update.
pool = None
if parallel and len(to_update) > 25 and cpu_count() > 1:
# On Python 3 on Windows, using >= MAXIMUM_WAIT_OBJECTS processes
# causes a crash in the multiprocessing module. Whilst this enum
......@@ -262,6 +263,11 @@ class Manifest(object):
data[new_type][rel_path_parts] = manifest_items
data[new_type].hashes[rel_path_parts] = file_hash
# Make sure to terminate the Pool, to avoid hangs on Python 3.
# https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool
if pool is not None:
pool.terminate()
if remaining_manifest_paths:
changed = True
for rel_path_parts in remaining_manifest_paths:
......
......@@ -167,27 +167,27 @@ def global_variant_url(url, suffix):
def _parse_html(f):
# type: (BinaryIO) -> ElementTree.ElementTree
# type: (BinaryIO) -> ElementTree.Element
doc = html5lib.parse(f, treebuilder="etree", useChardet=False)
if MYPY:
return cast(ElementTree.ElementTree, doc)
return cast(ElementTree.Element, doc)
return doc
def _parse_xml(f):
# type: (BinaryIO) -> ElementTree.ElementTree
# type: (BinaryIO) -> ElementTree.Element
try:
# raises ValueError with an unsupported encoding,
# ParseError when there's an undefined entity
return ElementTree.parse(f)
return ElementTree.parse(f).getroot()
except (ValueError, ElementTree.ParseError):
f.seek(0)
return ElementTree.parse(f, XMLParser.XMLParser()) # type: ignore
return ElementTree.parse(f, XMLParser.XMLParser()).getroot() # type: ignore
class SourceFile(object):
parsers = {u"html":_parse_html,
u"xhtml":_parse_xml,
u"svg":_parse_xml} # type: Dict[Text, Callable[[BinaryIO], ElementTree.ElementTree]]
u"svg":_parse_xml} # type: Dict[Text, Callable[[BinaryIO], ElementTree.Element]]
root_dir_non_test = {u"common"}
......@@ -447,7 +447,7 @@ class SourceFile(object):
@cached_property
def root(self):
# type: () -> Optional[Union[ElementTree.Element, ElementTree.ElementTree]]
# type: () -> Optional[ElementTree.Element]
"""Return an ElementTree Element for the root node of the file if it contains
markup, or None if it does not"""
if not self.markup_type:
......@@ -461,12 +461,7 @@ class SourceFile(object):
except Exception:
return None
if hasattr(tree, "getroot"):
root = tree.getroot() # type: Union[ElementTree.Element, ElementTree.ElementTree]
else:
root = tree
return root
return tree
@cached_property
def timeout_nodes(self):
......
......@@ -2,7 +2,7 @@
# DO NOT EDIT MANUALLY.
# tools/certs/web-platform.test.pem
WPT_FINGERPRINT = 'jLyENXJPaWkMd5jvkdeZNBCDxmlrsaejX6b9sUNA6Kc='
WPT_FINGERPRINT = 'OXb4O8pcDI8Nwx3KzqNuTbJ1Znf52VjEVWiYYCjHcIM='
# signed-exchange/resources/127.0.0.1.sxg.pem
SXG_WPT_FINGERPRINT = '0Rt4mT6SJXojEMHTnKnlJ/hBKMBcI4kteBlhR1eTTdk='
......
......@@ -98,7 +98,9 @@ class DirectoryHandler(object):
{"link": link, "name": ".."})
items = []
prev_item = None
for item in sorted(os.listdir(path)):
# This ensures that .headers always sorts after the file it provides the headers for. E.g.,
# if we have x, x-y, and x.headers, the order will be x, x.headers, and then x-y.
for item in sorted(os.listdir(path), key=lambda x: (x[:-len(".headers")], x) if x.endswith(".headers") else (x, x)):
if prev_item and prev_item + ".headers" == item:
items[-1][1] = item
prev_item = None
......
......@@ -429,7 +429,7 @@ class Http2WebTestRequestHandler(BaseWebTestRequestHandler):
return False
method = extract_method_header(frame.headers)
if method != "CONNECT":
if method != b"CONNECT":
return False
protocol = ""
......@@ -437,7 +437,7 @@ class Http2WebTestRequestHandler(BaseWebTestRequestHandler):
if key in (b':protocol', u':protocol'):
protocol = isomorphic_encode(value)
break
if protocol != "websocket":
if protocol != b"websocket":
raise ProtocolError("Invalid protocol %s with CONNECT METHOD" % (protocol,))
return True
......
......@@ -9,7 +9,12 @@ import time
# this number too large will result in false positives, when it takes more than
# 2 seconds to transmit the message anyway. This number was arrived at by
# trial-and-error.
MESSAGE_SIZE = 16 * 1024 * 1024
MESSAGE_SIZE = 1024 * 1024
# With Windows 10 and Python 3, the OS will buffer an entire message in memory
# and return from send() immediately, even if it is very large. To work around
# this problem, send multiple messages.
MESSAGE_COUNT = 16
def web_socket_do_extra_handshake(request):
......@@ -26,8 +31,10 @@ def web_socket_transfer_data(request):
# 3 is complete. time.time() can go backwards.
start_time = time.time()
# The large message that will be blocked by backpressure.
request.ws_stream.send_message(b' ' * MESSAGE_SIZE, binary=True)
# The large messages that will be blocked by backpressure.
for i in range(MESSAGE_COUNT):
request.ws_stream.send_message(b' ' * MESSAGE_SIZE, binary=True)
# Report the time taken to send the large message.
request.ws_stream.send_message(six.text_type(time.time() - start_time), binary=False)
request.ws_stream.send_message(six.text_type(time.time() - start_time),
binary=False)
......@@ -20,7 +20,7 @@ if __name__ == "__main__":
sys.exit(1)
else:
raise
elif (args.py3 or py3only) and sys.version_info.major < 3:
elif (not args.py2) and sys.version_info.major < 3:
from subprocess import call
try:
sys.exit(call(['python3'] + sys.argv))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment