Commit 3a1e4177 authored by Stephen McGruer's avatar Stephen McGruer Committed by Commit Bot

Add WPT tooling PRESUBMIT for loading the WPT manifest

Bug: 1095643
Change-Id: Ibbe7862d6ded259612c795c9933d3b2a7bd7aef5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2264861
Commit-Queue: Robert Ma <robertma@chromium.org>
Reviewed-by: default avatarRobert Ma <robertma@chromium.org>
Cr-Commit-Position: refs/heads/master@{#782715}
parent 343533da
......@@ -4,11 +4,14 @@
"""Check the basic functionalities of WPT tools.
After rolling a new version of WPT tools, we should do some sanity checks. For
now, we only test `wpt lint` via web_tests/external/PRESUBMIT_test.py.
This PRESUBMIT guards against rolling a broken version of WPT tooling. It does
some smoke checks of WPT functionality.
"""
def _TestWPTLint(input_api, output_api):
# We test 'wpt lint' by deferring to the web_tests/external presubmit test,
# which runs 'wpt lint' against web_tests/external/wpt.
abspath_to_test = input_api.os_path.join(
input_api.change.RepositoryRoot(),
'third_party', 'blink', 'web_tests', 'external', 'PRESUBMIT_test.py'
......@@ -24,9 +27,41 @@ def _TestWPTLint(input_api, output_api):
return input_api.RunTests([command])
def _TestWPTManifest(input_api, output_api):
# We test 'wpt manifest' by making a copy of the base manifest and updating
# it. A copy is used so that this PRESUBMIT doesn't change files in the tree.
blink_path = input_api.os_path.join(
input_api.change.RepositoryRoot(), 'third_party', 'blink')
base_manifest = input_api.os_path.join(
blink_path, 'web_tests', 'external', 'WPT_BASE_MANIFEST_8.json')
with input_api.CreateTemporaryFile() as f:
f.write(input_api.ReadFile(base_manifest))
f.close()
wpt_exec_path = input_api.os_path.join(
blink_path, 'tools', 'blinkpy', 'third_party', 'wpt', 'wpt', 'wpt')
external_wpt = input_api.os_path.join(
blink_path, 'web_tests', 'external', 'wpt')
try:
input_api.subprocess.check_output(
['python', wpt_exec_path, 'manifest', '--no-download',
'--path', f.name, '--tests-root', external_wpt])
except input_api.subprocess.CalledProcessError as exc:
return [output_api.PresubmitError('wpt manifest failed:', long_text=exc.output)]
return []
def CheckChangeOnUpload(input_api, output_api):
return _TestWPTLint(input_api, output_api)
results = []
results += _TestWPTLint(input_api, output_api)
results += _TestWPTManifest(input_api, output_api)
return results
def CheckChangeOnCommit(input_api, output_api):
return _TestWPTLint(input_api, output_api)
results = []
results += _TestWPTLint(input_api, output_api)
results += _TestWPTManifest(input_api, output_api)
return results
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