• auto-submit[bot]'s avatar
    Reverts "Use `coverage.collect`'s `coverableLineCache` param to speed up coverage" (#137121) · 8df62188
    auto-submit[bot] authored
    Reverts flutter/flutter#136851
    Initiated by: CaseyHillers
    This change reverts the following previous change:
    Original Description:
    One of the reasons gathering coverage information is expensive is that we have to force compile every function in the libraries we're interested in. Without this, functions that haven't been invoked (so haven't been compiled) won't have any line number information, so the coverage tool doesn't know which lines to add to the list of misses. In flutter's case, the test infra spawns many VMs, and each of these needs to recompile all those libraries.
    
    To fix this, we need a way of skipping force compilation for libraries we've already seen in previous tests, without losing the information about which lines in each library are coverable. So I [added](https://github.com/dart-lang/coverage/pull/466) the `coverableLineCache` to `coverage.collect` in package:coverage v1.7.0. This cache starts out empty, but fills up with lists of all the lines that are coverable for every library as coverage is gathered. package:coverage can then tell the VM not to force compile any libraries in this cache (using `getSourceReport`'s `librariesAlreadyCompiled` param). So the first test suite will still have to compile everything, but subsequent test suites will be much faster.
    
    This speeds up coverage collection significantly, for large test suites:
    
    | Running flutter/packages/flutter tests... | Time | Overhead |
    | --- | --- | --- |
    | without coverage | 8:53 | - |
    | with coverage | 20:25 | 130% |
    | with `coverableLineCache` | 12:21 | 40% |
    
    Bug: https://github.com/flutter/flutter/issues/100751
    8df62188
Name
Last commit
Last update
..
android Loading commit data...
base Loading commit data...
build_system Loading commit data...
commands Loading commit data...
custom_devices Loading commit data...
dap Loading commit data...
dart Loading commit data...
drive Loading commit data...
fuchsia Loading commit data...
intellij Loading commit data...
ios Loading commit data...
linux Loading commit data...
macos Loading commit data...
migrations Loading commit data...
proxied_devices Loading commit data...
reporting Loading commit data...
runner Loading commit data...
test Loading commit data...
tester Loading commit data...
vscode Loading commit data...
web Loading commit data...
windows Loading commit data...
analytics_test.dart Loading commit data...
android_plugin_test.dart Loading commit data...
application_package_test.dart Loading commit data...
args_test.dart Loading commit data...
artifact_updater_test.dart Loading commit data...
artifacts_test.dart Loading commit data...
asset_bundle_package_fonts_test.dart Loading commit data...
asset_bundle_package_test.dart Loading commit data...
asset_bundle_test.dart Loading commit data...
asset_bundle_variant_test.dart Loading commit data...
asset_test.dart Loading commit data...
base_utils_test.dart Loading commit data...
build_info_test.dart Loading commit data...
bundle_builder_test.dart Loading commit data...
cache_test.dart Loading commit data...
channel_test.dart Loading commit data...
cmake_test.dart Loading commit data...
cold_test.dart Loading commit data...
common_test.dart Loading commit data...
compile_batch_test.dart Loading commit data...
compile_expression_test.dart Loading commit data...
compile_incremental_test.dart Loading commit data...
compile_test.dart Loading commit data...
config_test.dart Loading commit data...
convert_test.dart Loading commit data...
coverage_collector_test.dart Loading commit data...
crash_reporting_test.dart Loading commit data...
create_config_test.dart Loading commit data...
daemon_test.dart Loading commit data...
dart_plugin_test.dart Loading commit data...
desktop_device_test.dart Loading commit data...
devfs_test.dart Loading commit data...
device_port_forwarder_test.dart Loading commit data...
device_test.dart Loading commit data...
devtools_launcher_test.dart Loading commit data...
emulator_test.dart Loading commit data...
fake_native_assets_build_runner.dart Loading commit data...
fake_process_manager_test.dart Loading commit data...
features_test.dart Loading commit data...
flutter_manifest_test.dart Loading commit data...
flutter_platform_test.dart Loading commit data...
flutter_project_metadata_test.dart Loading commit data...
flutter_tester_device_test.dart Loading commit data...
flutter_validator_test.dart Loading commit data...
generate_localizations_test.dart Loading commit data...
github_template_test.dart Loading commit data...
hot_test.dart Loading commit data...
html_utils_test.dart Loading commit data...
integration_test_device_test.dart Loading commit data...
license_collector_test.dart Loading commit data...
mdns_discovery_test.dart Loading commit data...
message_parser_test.dart Loading commit data...
persistent_tool_state_test.dart Loading commit data...
plugin_parsing_test.dart Loading commit data...
plugins_test.dart Loading commit data...
preview_device_test.dart Loading commit data...
project_file_invalidator_test.dart Loading commit data...
project_test.dart Loading commit data...
project_validator_result_test.dart Loading commit data...
protocol_discovery_test.dart Loading commit data...
pub_dependencies_project_validator_test.dart Loading commit data...
resident_devtools_handler_test.dart Loading commit data...
resident_runner_test.dart Loading commit data...
resident_web_runner_cold_test.dart Loading commit data...
resident_web_runner_test.dart Loading commit data...
run_hot_test.dart Loading commit data...
template_test.dart Loading commit data...
terminal_handler_test.dart Loading commit data...
testbed_test.dart Loading commit data...
time_test.dart Loading commit data...
tracing_test.dart Loading commit data...
unified_analytics_test.dart Loading commit data...
update_packages_test.dart Loading commit data...
utils_test.dart Loading commit data...
version_test.dart Loading commit data...
vmservice_test.dart Loading commit data...
windows_version_validator_test.dart Loading commit data...
xcode_backend_test.dart Loading commit data...