0

[wpt] Clean up wptrunner build targets

Currently, `run_wpt_tests.py` is vended as a `python_library`, which is
suboptimal in several ways:
 1. `//build/print_python_deps.py` naively traverses the import tree,
    which can miss dynamic imports or non-Python dependencies (e.g.,
    config files).
 2. `run_wpt_tests.pydeps` contains Android-specific packages we don't
    want to download on non-Android builders.
 3. `run_wpt_tests` is not a useful standalone Python library. It is
    tightly coupled to `//third_party/blink/tools:wpt_tests*_isolate`
    to provide dependencies missed by [1].

Following up on crrev.com/c/3852915, this change splits the dependencies
of `//third_party/blink/tools:run_wpt_tests` between the `data_deps` of
`wpt_tests*_isolate`.

Fixed: 1319594
Bug: 1356318
Change-Id: I6b798b48f0c135c1eaf4033f9cb80e1b70c17629
Cq-Include-Trybots: luci.chromium.try:android-weblayer-pie-x86-wpt-smoketest
Cq-Include-Trybots: luci.chromium.try:linux-wpt-identity-fyi-rel
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3866625
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Jonathan Lee <jonathanjlee@google.com>
Reviewed-by: Weizhong Xia <weizhong@google.com>
Cr-Commit-Position: refs/heads/main@{#1044417}
This commit is contained in:
Jonathan Lee
2022-09-08 07:18:36 +00:00
committed by Chromium LUCI CQ
parent bbaee88f4d
commit c3ddefe305
6 changed files with 15 additions and 190 deletions
BUILD.gnPRESUBMIT.py
android_webview/test
chrome/android
third_party/blink/tools

@ -1148,7 +1148,6 @@ if (!is_ios) {
"//chrome:chrome",
"//chrome/test/chromedriver",
"//third_party/blink/tools:wpt_tests_isolate",
"//tools/imagediff",
]
}
script_test("wpt_tests_isolate_content_shell") {

@ -1211,7 +1211,6 @@ _GENERIC_PYDEPS_FILES = [
'third_party/blink/renderer/bindings/scripts/generate_bindings.pydeps',
'third_party/blink/renderer/bindings/scripts/validate_web_idl.pydeps',
'third_party/blink/tools/blinkpy/web_tests/merge_results.pydeps',
'third_party/blink/tools/run_wpt_tests.pydeps',
'third_party/blink/tools/merge_web_test_results.pydeps',
'tools/binary_size/sizes.pydeps',
'tools/binary_size/supersize.pydeps',

@ -67,7 +67,7 @@ script_test("system_webview_finch_smoke_tests") {
data_deps = [
"//android_webview:system_webview_apk",
"//android_webview/tools/system_webview_shell:system_webview_shell_apk",
"//third_party/blink/tools:run_wpt_tests",
"//third_party/blink/tools:wpt_tests_android_isolate",
]
}

@ -3652,7 +3652,7 @@ script_test("monochrome_webview_finch_smoke_tests") {
data_deps = [
"//android_webview/tools/system_webview_shell:system_webview_shell_apk",
"//chrome/android:monochrome_public_apk",
"//third_party/blink/tools:run_wpt_tests",
"//third_party/blink/tools:wpt_tests_android_isolate",
]
}

@ -2,8 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/python.gni")
# WPT codebase for running webplatform tests
group("wpt_tests_isolate") {
testonly = true
@ -15,10 +13,11 @@ group("wpt_tests_isolate") {
# WPT tooling
"//third_party/wpt_tools/",
# Include blinkpy tools for setting up expectations.
# Include blinkpy tools for setting up expectations and uploading results to
# ResultDB.
"//third_party/blink/tools/build_wpt_metadata.py",
"//third_party/blink/tools/wpt_process_results.py",
"//third_party/blink/tools/blinkpy/",
"//third_party/catapult/third_party/typ/",
# Imported by some code in blinkpy.
"//build/skia_gold_common/",
@ -32,9 +31,6 @@ group("wpt_tests_isolate") {
# See crbug.com/1018829 for more details.
"//third_party/blink/web_tests/wpt_internal/README.md",
# Include the results processor.
"//third_party/blink/tools/wpt_process_results.py",
# Include the various Test Expectations files.
"//third_party/blink/web_tests/ASANExpectations",
"//third_party/blink/web_tests/LeakExpectations",
@ -45,10 +41,14 @@ group("wpt_tests_isolate") {
"//third_party/blink/web_tests/TestExpectations",
"//third_party/blink/web_tests/VirtualTestSuites",
"//third_party/blink/web_tests/WPTOverrideExpectations",
# Include the root vpython spec.
"//.vpython3",
]
data_deps = [
":wpt_tests_mojo_bindings",
"//testing:test_scripts_shared",
"//third_party/catapult/third_party/typ:typ",
"//tools/imagediff",
]
if (is_win) {
@ -60,6 +60,10 @@ if (is_android) {
group("wpt_tests_android_isolate") {
testonly = true
data = [
# Emulator
"//build/android/pylib/",
# Android-specific expectations
"//third_party/blink/web_tests/android/WebLayerWPTOverrideExpectations",
"//third_party/blink/web_tests/android/ChromeWPTOverrideExpectations",
"//third_party/blink/web_tests/android/WebviewWPTExpectations",
@ -67,9 +71,10 @@ if (is_android) {
"//third_party/blink/web_tests/android/WPTSmokeTestCases",
]
data_deps = [
":run_wpt_tests",
":wpt_tests_isolate",
"//build/android:devil_chromium_py",
"//build/android:test_runner_py",
"//third_party/catapult/devil:devil",
]
}
}
@ -116,9 +121,3 @@ group("blink_pytype") {
data_deps = [ "//testing:pytype_dependencies" ]
}
python_library("run_wpt_tests") {
testonly = true
pydeps_file = "//third_party/blink/tools/run_wpt_tests.pydeps"
data = [ "//.vpython3" ]
}

@ -1,172 +0,0 @@
# Generated by running:
# build/print_python_deps.py --output third_party/blink/tools/run_wpt_tests.pydeps --gn-paths third_party/blink/tools/run_wpt_tests.py
//build/android/devil_chromium.py
//build/android/pylib/__init__.py
//build/android/pylib/constants/__init__.py
//build/android/pylib/constants/host_paths.py
//build/android/pylib/local/__init__.py
//build/android/pylib/local/emulator/__init__.py
//build/android/pylib/local/emulator/avd.py
//build/android/pylib/local/emulator/ini.py
//build/android/pylib/local/emulator/proto/__init__.py
//build/android/pylib/local/emulator/proto/avd_pb2.py
//build/gn_helpers.py
//build/skia_gold_common/__init__.py
//build/skia_gold_common/output_managerless_skia_gold_session.py
//build/skia_gold_common/skia_gold_properties.py
//build/skia_gold_common/skia_gold_session.py
//build/skia_gold_common/skia_gold_session_manager.py
//build/util/lib/__init__.py
//build/util/lib/results/__init__.py
//build/util/lib/results/result_sink.py
//build/util/lib/results/result_types.py
//testing/scripts/__init__.py
//testing/scripts/common.py
//testing/scripts/wpt_common.py
//testing/test_env.py
//testing/xvfb.py
//third_party/blink/tools/blinkpy/__init__.py
//third_party/blink/tools/blinkpy/common/__init__.py
//third_party/blink/tools/blinkpy/common/checkout/__init__.py
//third_party/blink/tools/blinkpy/common/checkout/git.py
//third_party/blink/tools/blinkpy/common/exit_codes.py
//third_party/blink/tools/blinkpy/common/find_files.py
//third_party/blink/tools/blinkpy/common/host.py
//third_party/blink/tools/blinkpy/common/html_diff.py
//third_party/blink/tools/blinkpy/common/memoized.py
//third_party/blink/tools/blinkpy/common/net/__init__.py
//third_party/blink/tools/blinkpy/common/net/bb_agent.py
//third_party/blink/tools/blinkpy/common/net/luci_auth.py
//third_party/blink/tools/blinkpy/common/net/network_transaction.py
//third_party/blink/tools/blinkpy/common/net/results_fetcher.py
//third_party/blink/tools/blinkpy/common/net/rpc.py
//third_party/blink/tools/blinkpy/common/net/web.py
//third_party/blink/tools/blinkpy/common/net/web_test_results.py
//third_party/blink/tools/blinkpy/common/path_finder.py
//third_party/blink/tools/blinkpy/common/read_checksum_from_png.py
//third_party/blink/tools/blinkpy/common/system/__init__.py
//third_party/blink/tools/blinkpy/common/system/executive.py
//third_party/blink/tools/blinkpy/common/system/filesystem.py
//third_party/blink/tools/blinkpy/common/system/path.py
//third_party/blink/tools/blinkpy/common/system/platform_info.py
//third_party/blink/tools/blinkpy/common/system/profiler.py
//third_party/blink/tools/blinkpy/common/system/system_host.py
//third_party/blink/tools/blinkpy/common/system/user.py
//third_party/blink/tools/blinkpy/common/unified_diff.py
//third_party/blink/tools/blinkpy/w3c/__init__.py
//third_party/blink/tools/blinkpy/w3c/wpt_manifest.py
//third_party/blink/tools/blinkpy/web_tests/__init__.py
//third_party/blink/tools/blinkpy/web_tests/breakpad/__init__.py
//third_party/blink/tools/blinkpy/web_tests/breakpad/dump_reader.py
//third_party/blink/tools/blinkpy/web_tests/breakpad/dump_reader_multipart.py
//third_party/blink/tools/blinkpy/web_tests/breakpad/dump_reader_win.py
//third_party/blink/tools/blinkpy/web_tests/builder_list.py
//third_party/blink/tools/blinkpy/web_tests/controllers/__init__.py
//third_party/blink/tools/blinkpy/web_tests/controllers/repaint_overlay.py
//third_party/blink/tools/blinkpy/web_tests/layout_package/__init__.py
//third_party/blink/tools/blinkpy/web_tests/layout_package/bot_test_expectations.py
//third_party/blink/tools/blinkpy/web_tests/layout_package/json_results_generator.py
//third_party/blink/tools/blinkpy/web_tests/models/__init__.py
//third_party/blink/tools/blinkpy/web_tests/models/failure_reason.py
//third_party/blink/tools/blinkpy/web_tests/models/test_configuration.py
//third_party/blink/tools/blinkpy/web_tests/models/test_expectations.py
//third_party/blink/tools/blinkpy/web_tests/models/test_failures.py
//third_party/blink/tools/blinkpy/web_tests/models/test_run_results.py
//third_party/blink/tools/blinkpy/web_tests/models/typ_types.py
//third_party/blink/tools/blinkpy/web_tests/port/__init__.py
//third_party/blink/tools/blinkpy/web_tests/port/android.py
//third_party/blink/tools/blinkpy/web_tests/port/base.py
//third_party/blink/tools/blinkpy/web_tests/port/driver.py
//third_party/blink/tools/blinkpy/web_tests/port/factory.py
//third_party/blink/tools/blinkpy/web_tests/port/linux.py
//third_party/blink/tools/blinkpy/web_tests/port/server_process.py
//third_party/blink/tools/blinkpy/web_tests/port/win.py
//third_party/blink/tools/blinkpy/web_tests/servers/__init__.py
//third_party/blink/tools/blinkpy/web_tests/servers/apache_http.py
//third_party/blink/tools/blinkpy/web_tests/servers/pywebsocket.py
//third_party/blink/tools/blinkpy/web_tests/servers/server_base.py
//third_party/blink/tools/blinkpy/web_tests/servers/wptserve.py
//third_party/blink/tools/blinkpy/web_tests/skia_gold/__init__.py
//third_party/blink/tools/blinkpy/web_tests/skia_gold/blink_skia_gold_properties.py
//third_party/blink/tools/blinkpy/web_tests/skia_gold/blink_skia_gold_session_manager.py
//third_party/blink/tools/run_wpt_tests.py
//third_party/catapult/common/py_utils/py_utils/__init__.py
//third_party/catapult/common/py_utils/py_utils/cloud_storage.py
//third_party/catapult/common/py_utils/py_utils/cloud_storage_global_lock.py
//third_party/catapult/common/py_utils/py_utils/lock.py
//third_party/catapult/common/py_utils/py_utils/tempfile_ext.py
//third_party/catapult/dependency_manager/dependency_manager/__init__.py
//third_party/catapult/dependency_manager/dependency_manager/archive_info.py
//third_party/catapult/dependency_manager/dependency_manager/base_config.py
//third_party/catapult/dependency_manager/dependency_manager/cloud_storage_info.py
//third_party/catapult/dependency_manager/dependency_manager/dependency_info.py
//third_party/catapult/dependency_manager/dependency_manager/dependency_manager_util.py
//third_party/catapult/dependency_manager/dependency_manager/exceptions.py
//third_party/catapult/dependency_manager/dependency_manager/local_path_info.py
//third_party/catapult/dependency_manager/dependency_manager/manager.py
//third_party/catapult/dependency_manager/dependency_manager/uploader.py
//third_party/catapult/devil/devil/__init__.py
//third_party/catapult/devil/devil/android/__init__.py
//third_party/catapult/devil/devil/android/apk_helper.py
//third_party/catapult/devil/devil/android/constants/__init__.py
//third_party/catapult/devil/devil/android/constants/chrome.py
//third_party/catapult/devil/devil/android/constants/file_system.py
//third_party/catapult/devil/devil/android/decorators.py
//third_party/catapult/devil/devil/android/device_denylist.py
//third_party/catapult/devil/devil/android/device_errors.py
//third_party/catapult/devil/devil/android/device_signal.py
//third_party/catapult/devil/devil/android/device_temp_file.py
//third_party/catapult/devil/devil/android/device_utils.py
//third_party/catapult/devil/devil/android/install_commands.py
//third_party/catapult/devil/devil/android/logcat_monitor.py
//third_party/catapult/devil/devil/android/md5sum.py
//third_party/catapult/devil/devil/android/ndk/__init__.py
//third_party/catapult/devil/devil/android/ndk/abis.py
//third_party/catapult/devil/devil/android/sdk/__init__.py
//third_party/catapult/devil/devil/android/sdk/aapt.py
//third_party/catapult/devil/devil/android/sdk/adb_wrapper.py
//third_party/catapult/devil/devil/android/sdk/build_tools.py
//third_party/catapult/devil/devil/android/sdk/bundletool.py
//third_party/catapult/devil/devil/android/sdk/intent.py
//third_party/catapult/devil/devil/android/sdk/keyevent.py
//third_party/catapult/devil/devil/android/sdk/split_select.py
//third_party/catapult/devil/devil/android/sdk/version_codes.py
//third_party/catapult/devil/devil/android/settings.py
//third_party/catapult/devil/devil/android/tools/__init__.py
//third_party/catapult/devil/devil/android/tools/script_common.py
//third_party/catapult/devil/devil/android/tools/system_app.py
//third_party/catapult/devil/devil/android/tools/webview_app.py
//third_party/catapult/devil/devil/base_error.py
//third_party/catapult/devil/devil/constants/__init__.py
//third_party/catapult/devil/devil/constants/exit_codes.py
//third_party/catapult/devil/devil/devil_env.py
//third_party/catapult/devil/devil/utils/__init__.py
//third_party/catapult/devil/devil/utils/cmd_helper.py
//third_party/catapult/devil/devil/utils/host_utils.py
//third_party/catapult/devil/devil/utils/lazy/__init__.py
//third_party/catapult/devil/devil/utils/lazy/weak_constant.py
//third_party/catapult/devil/devil/utils/logging_common.py
//third_party/catapult/devil/devil/utils/lsusb.py
//third_party/catapult/devil/devil/utils/parallelizer.py
//third_party/catapult/devil/devil/utils/reraiser_thread.py
//third_party/catapult/devil/devil/utils/reset_usb.py
//third_party/catapult/devil/devil/utils/run_tests_helper.py
//third_party/catapult/devil/devil/utils/timeout_retry.py
//third_party/catapult/devil/devil/utils/watchdog_timer.py
//third_party/catapult/devil/devil/utils/zip_utils.py
//third_party/catapult/third_party/typ/typ/__init__.py
//third_party/catapult/third_party/typ/typ/arg_parser.py
//third_party/catapult/third_party/typ/typ/artifacts.py
//third_party/catapult/third_party/typ/typ/expectations_parser.py
//third_party/catapult/third_party/typ/typ/fakes/__init__.py
//third_party/catapult/third_party/typ/typ/fakes/host_fake.py
//third_party/catapult/third_party/typ/typ/host.py
//third_party/catapult/third_party/typ/typ/json_results.py
//third_party/catapult/third_party/typ/typ/pool.py
//third_party/catapult/third_party/typ/typ/printer.py
//third_party/catapult/third_party/typ/typ/python_2_3_compat.py
//third_party/catapult/third_party/typ/typ/result_sink.py
//third_party/catapult/third_party/typ/typ/runner.py
//third_party/catapult/third_party/typ/typ/stats.py
//third_party/catapult/third_party/typ/typ/test_case.py
//third_party/catapult/third_party/typ/typ/version.py