• Andrew Kolos's avatar
    provide command to `FakeCommand::onRun` (#142206) · 295a9a20
    Andrew Kolos authored
    Part of work on [#101077](https://github.com/flutter/flutter/pull/141194). This is done as a separate PR to avoid a massive diff.
    
    ## Context
    1. The `FakeCommand` class accepts a list of patterns that's used to match a command given to its `FakeProcessManager`. Since `FakeCommand` can match a list of patterns, not just specifically strings, it can be used to match commands where the exact value of some arguments can't (easily) known ahead of time. For example, a part of the tool may invoke a command with an argument that is the path of a temporarily file that has a randomly-generated basename.
    2. The `FakeCommand` class provides on `onRun` parameter, which is a callback that is run when the `FakeProcessManager` runs a command that matches the `FakeCommand` in question.
    
    ## Issue
    In the event that a `FakeCommand` is constructed using patterns, the test code can't know the exact values used for arguments in the command. This PR proposes changing the type of `onRun` from `VoidCallback?` to `void Function(List<String>)?`. When run, the value `List<String>` parameter will be the full command that the `FakeCommand` matched.
    
    Example:
    ```dart
    FakeCommand(
      command: <Pattern>[
        artifacts.getArtifactPath(Artifact.engineDartBinary),
        'run',
        'vector_graphics_compiler',
        RegExp(r'--input=/.*\.temp'),
        RegExp(r'--output=/.*\.temp'),
      ],
      onRun: (List<String> command) {
        final outputPath = (() { 
          // code to parse `--output` from `command`
        })();
        testFileSystem.file(outputPath).createSync(recursive: true);
      },
    )
    ```
    295a9a20
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...