Skip to content

refactor(flutter_tools): finish TestCommand OptionDescriptor and OptionBundle migration - #194361

Merged
auto-submit[bot] merged 12 commits into
flutter:masterfrom
kevmoo:phase5-test
Oct 15, 2026
Merged

auto-submit[bot] merged 12 commits into
flutter:masterfrom
kevmoo:phase5-test

Conversation

@kevmoo

@kevmoo kevmoo commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Completes the flutter test migration to the shared option bundles and web/debugging descriptors from #194356, removing the remaining imperative option helpers and untyped argument lookups.

Part of #194338

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
  • All existing and new tests are passing.

…OptionDescriptor

Delegates the remaining shared `FlutterCommand` `uses*` / `add*` helpers and internal `boolArg` / `stringArg` / `stringsArg` lookups to typed `OptionDescriptor` instances and reusable `OptionBundle` classes (`DeviceDiscoveryOptionsBundle`, `FilesystemOptionsBundle`, `VmServicePortOptionsBundle`, `DdsAndDevToolsOptionsBundle`, `ResidentCompilerOptionsBundle`, and `EngineRenderingFlagsBundle`), and enhances `BuildModeOptionsBundle` (`defaultToRelease`, `excludeDebug`, `excludeRelease`).

Part of flutter#194338
@github-actions github-actions Bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Oct 14, 2026
@github-actions github-actions Bot added team-ios Owned by iOS platform team team-macos Owned by the macOS platform team labels Oct 14, 2026
kevmoo added a commit to kevmoo/flutter that referenced this pull request Oct 14, 2026
…es (flutter#194356)

Moves the remaining shared CLI options on `FlutterCommand` into
declarative option descriptors and bundles, and replaces untyped
argument lookups in the command runner with typed descriptor reads.

- **Shared option bundles for leaf commands**: Groups common CLI
flags—device discovery, VM service/DevTools ports, filesystem overrides,
resident compiler settings, engine rendering flags, and build mode
configuration—into reusable bundles. This sets the stage for follow-up
PRs migrating `assemble` (flutter#194358), `attach` (flutter#194359), `drive`
(flutter#194360), `test` (flutter#194361), and `run` (flutter#194362).
- **Deduplicated build flags**: Consolidates duplicate definitions and
drifted help text for `--config-only`, `--target-platform` (`build apk`,
`build aar`, `build appbundle`), `--static` (`build ios-framework`,
`build macos-framework`, `build swift-package`), and
`--performance-measurement-file`.

Part of flutter#194338

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
@github-actions github-actions Bot removed team-ios Owned by iOS platform team team-macos Owned by the macOS platform team labels Oct 14, 2026
@kevmoo
kevmoo marked this pull request as ready for review October 15, 2026 00:14

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the TestCommand class in packages/flutter_tools/lib/src/commands/test.dart to use centralized option descriptors and bundles, such as WebOptions and CommonOptions, instead of locally defined flags. A potential regression was identified where replacing the wasParsed check with getValue for WebOptions.crossOriginIsolation could override default renderer-specific behaviors when the option is not explicitly provided.

bkonyi
bkonyi previously approved these changes Oct 15, 2026
@kevmoo kevmoo added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 15, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Oct 15, 2026
Merged via the queue into flutter:master with commit e7df871 Oct 15, 2026
29 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Oct 15, 2026
@kevmoo
kevmoo deleted the phase5-test branch October 16, 2026 01:17
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Oct 16, 2026
flutter/flutter@5c7e45a...a3d71d8

2026-10-16 evanwall@buffalo.edu 0 Initialize variables in the DlComplexityPathReceiver helper (flutter/flutter#194540)
2026-10-16 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from V-qQL4158Nw6L-QLi... to 2T18KC7-LDQtmQiLP... (flutter/flutter#194527)
2026-10-16 evanwall@buffalo.edu Remove BorderMaskBlur (flutter/flutter#194508)
2026-10-16 engine-flutter-autoroll@skia.org Roll Skia from a577264dc087 to 470b8816a261 (1 revision) (flutter/flutter#194526)
2026-10-16 41930132+hellohuanlin@users.noreply.github.com [ios] Use DFS traversal to find engines of a scene automatically (rather than manually manage the engines list) (flutter/flutter#192457)
2026-10-16 63228361+krll-kov@users.noreply.github.com [Skia][DisplayList] Map local bounds through the local matrix in DlLocalMatrixImageFilter (flutter/flutter#193963)
2026-10-16 manarelhabbal619@gmail.com [framework] Fix avoid_setters_without_getters warnings on mixin declarations  (flutter/flutter#193856)
2026-10-16 engine-flutter-autoroll@skia.org Roll Dart SDK from 84686ea04815 to 55a734a01fb1 (3 revisions) (flutter/flutter#194522)
2026-10-16 engine-flutter-autoroll@skia.org Roll Skia from d131b7789482 to a577264dc087 (7 revisions) (flutter/flutter#194514)
2026-10-16 engine-flutter-autoroll@skia.org Roll Fuchsia GN SDK from PDJz3b3CL31uoLOkD... to kFdyRnojbVy0cxvRZ... (flutter/flutter#194510)
2026-10-16 mdebbar@google.com Roll GN to f9eca75ae554 (flutter/flutter#194471)
2026-10-16 kevmoo@users.noreply.github.com refactor(flutter_tools): migrate RunCommand and RunCommandBase to OptionDescriptor and OptionBundle (flutter/flutter#194362)
2026-10-15 kevmoo@users.noreply.github.com refactor(flutter_tools): finish TestCommand OptionDescriptor and OptionBundle migration (flutter/flutter#194361)
2026-10-15 puneetkukreja98@gmail.com [iOS][a11y] Fix VoiceOver announcement for unfocused password fields (flutter/flutter#192851)
2026-10-15 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#194477)
2026-10-15 kevmoo@users.noreply.github.com refactor(flutter_tools): finish DriveCommand OptionDescriptor migration (flutter/flutter#194360)
2026-10-15 bkonyi@google.com [flutter_tools] Roll package:vm_service to 15.4.0 (flutter/flutter#194467)
2026-10-15 kevmoo@users.noreply.github.com refactor(flutter_tools): migrate AttachCommand to OptionDescriptor and OptionBundle (flutter/flutter#194359)
2026-10-15 bkonyi@google.com [flutter_tools] Inject dependencies into update-packages and package_map (flutter/flutter#194046)
2026-10-15 30870216+gaaclarke@users.noreply.github.com [impeller] parallelize opengles shader compiles (flutter/flutter#194022)
2026-10-15 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#194469)
2026-10-15 tamirenkhbayar3@gmail.com Restrict web dev server to loopback by default (flutter/flutter#187595)
2026-10-15 engine-flutter-autoroll@skia.org Roll Packages from a1ed23c to da40eaf (33 revisions) (flutter/flutter#194459)
2026-10-15 dbebawy@users.noreply.github.com [web] Render soft hyphens on Skwasm (flutter/flutter#193850)
2026-10-15 kevmoo@users.noreply.github.com refactor(flutter_tools): migrate AssembleCommand to OptionDescriptor (flutter/flutter#194358)
2026-10-15 97480502+b-luk@users.noreply.github.com [windows] Add OpenGL golden test against ANGLE at D3D11 feature level 10_0 (flutter/flutter#194321)

If this roll has caused a breakage, revert this CL and set the roller
to dry run mode using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
suryaKommana2662 pushed a commit to suryaKommana2662/flutter that referenced this pull request Oct 29, 2026
…es (flutter#194356)

Moves the remaining shared CLI options on `FlutterCommand` into
declarative option descriptors and bundles, and replaces untyped
argument lookups in the command runner with typed descriptor reads.

- **Shared option bundles for leaf commands**: Groups common CLI
flags—device discovery, VM service/DevTools ports, filesystem overrides,
resident compiler settings, engine rendering flags, and build mode
configuration—into reusable bundles. This sets the stage for follow-up
PRs migrating `assemble` (flutter#194358), `attach` (flutter#194359), `drive`
(flutter#194360), `test` (flutter#194361), and `run` (flutter#194362).
- **Deduplicated build flags**: Consolidates duplicate definitions and
drifted help text for `--config-only`, `--target-platform` (`build apk`,
`build aar`, `build appbundle`), `--static` (`build ios-framework`,
`build macos-framework`, `build swift-package`), and
`--performance-measurement-file`.

Part of flutter#194338

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
suryaKommana2662 pushed a commit to suryaKommana2662/flutter that referenced this pull request Oct 29, 2026
…onBundle migration (flutter#194361)

Completes the `flutter test` migration to the shared option bundles and
web/debugging descriptors from flutter#194356, removing the remaining
imperative option helpers and untyped argument lookups.

Part of flutter#194338

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants