[flutter_tools] Handle Windows reserved characters in test target path - #191900
auto-submit[bot] merged 6 commits into
Conversation
Catch `ArgumentError` and `FormatException` in `TestCommand._parseTestArgument` when test target arguments contain Windows reserved characters or unexpanded globs, emitting a clean `ToolExit` instead of crashing. Fixes flutter#191896
There was a problem hiding this comment.
Code Review
This pull request modifies TestCommand in flutter_tools to catch ArgumentError and FormatException when parsing test file paths into URIs, throwing a ToolExit with an explanatory message. It also adds a test case to verify that running the test command with Windows-reserved characters in the path throws the expected ToolExit. No review comments were provided, and there is no additional feedback.
mattkae
left a comment
There was a problem hiding this comment.
Thanks for the contribution! I have a nit and some questions, but definitely worth fixing
|
autosubmit label was removed for flutter/flutter/191900, because The base commit of the PR is older than 7 days and can not be merged. Please merge the latest changes from the main into this branch and resubmit the PR. |
|
autosubmit label was removed for flutter/flutter/191900, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
autosubmit label was removed for flutter/flutter/191900, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
autosubmit label was removed for flutter/flutter/191900, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
autosubmit label was removed for flutter/flutter/191900, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
autosubmit label was removed for flutter/flutter/191900, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
Reset `Cache.flutterRoot = getFlutterRoot()` in `setUp()` so `FileSystemStyle.windows` overrides in individual tests do not pollute `Cache.flutterRoot` for subsequent POSIX `MemoryFileSystem` tests. Also use `await expectLater(...)` in `throws ToolExit when test argument contains Windows reserved characters`.
|
autosubmit label was removed for flutter/flutter/191900, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
flutter#191900) ### Description Catch `ArgumentError` and `FormatException` in `TestCommand._parseTestArgument` when test target arguments contain Windows reserved characters or unexpanded globs, emitting a clean `ToolExit` instead of crashing. Fixes flutter#191896 ### Tests - Added hermetic unit test in `packages/flutter_tools/test/commands.shard/hermetic/test_test.dart` verifying that `flutter test` throws a clean `ToolExit` when given a path containing Windows reserved characters. --------- Co-authored-by: Matthew Kosarek <matt.kosarek@canonical.com>
flutter#191900) ### Description Catch `ArgumentError` and `FormatException` in `TestCommand._parseTestArgument` when test target arguments contain Windows reserved characters or unexpanded globs, emitting a clean `ToolExit` instead of crashing. Fixes flutter#191896 ### Tests - Added hermetic unit test in `packages/flutter_tools/test/commands.shard/hermetic/test_test.dart` verifying that `flutter test` throws a clean `ToolExit` when given a path containing Windows reserved characters. --------- Co-authored-by: Matthew Kosarek <matt.kosarek@canonical.com>
…#13060) Manual roll Flutter from 4fcd90be0045 to c5a061b18fa2 (222 revisions) Manual roll requested by quncheng@google.com flutter/flutter@4fcd90b...c5a061b 2026-09-28 brackenavaron@gmail.com [cross imports] navigator_test.dart (flutter/flutter#190954) 2026-09-28 154381524+flutteractionsbot@users.noreply.github.com Revert: Reland: Only render views that need to be rendered (flutter/flutter#193360) 2026-09-28 codefu@google.com ci(bringup): android_intent_security_test is green (flutter/flutter#193469) 2026-09-28 154381524+flutteractionsbot@users.noreply.github.com Sync CHANGELOG.md from stable (flutter/flutter#193020) 2026-09-28 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from ukukV5lEkKabtOATk... to QdgqP02_cYpRQQQNN... (flutter/flutter#193454) 2026-09-28 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#193460) 2026-09-28 victorsanniay@gmail.com Un-nest sceneBuildDuration and windowRenderDuration in web SceneBuilderRecorder (flutter/flutter#193260) 2026-09-28 zarah@google.com Fix unresolved doc comment references in dev/integration_tests and dev/benchmarks (flutter/flutter#193433) 2026-09-28 engine-flutter-autoroll@skia.org Roll Packages from e55e7ac to ba0364a (9 revisions) (flutter/flutter#193450) 2026-09-28 bkonyi@google.com [tool] Require explicit dependency injection for FlutterDevice and FlutterDevice.create (flutter/flutter#192830) 2026-09-28 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#193442) 2026-09-28 dacoharkes@google.com [flutter_tools] Include data assets from hooks when pubspec.yaml is empty (flutter/flutter#193434) 2026-09-28 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#193438) 2026-09-28 zarah@google.com Fix unresolved doc comment references in Material and Cupertino (flutter/flutter#193283) 2026-09-28 zarah@google.com Fix doc references to Material and Cupertino in the widgets library and its tests (flutter/flutter#193334) 2026-09-26 kevmoo@users.noreply.github.com wasm: enforce WasmGC opt-in capability checks and Firefox < 147 guard (flutter/flutter#193180) 2026-09-26 43054281+camsim99@users.noreply.github.com [Android] Refuse external setters of engine entrypoint and cached engine arguments via `Intent`s (flutter/flutter#190249) 2026-09-26 1961493+harryterkelsen@users.noreply.github.com [web] Unskip TextPainter.getWordBoundary test (flutter/flutter#193378) 2026-09-26 bkonyi@google.com Specify non-obvious types in pattern variable declarations (flutter/flutter#192632) 2026-09-26 30870216+gaaclarke@users.noreply.github.com Removes feedback loop from advanced filters without offscreen msaa and framebufferfetch (flutter/flutter#193306) 2026-09-26 1961493+harryterkelsen@users.noreply.github.com [web] Unskip 8 passing image tests in painting and rendering (flutter/flutter#193377) 2026-09-26 154381524+flutteractionsbot@users.noreply.github.com Revert: Allow resetting test invariants in `addTearDown` (flutter/flutter#193383) 2026-09-25 bkonyi@google.com [tool] Migrate CoverageCollector to modular dependency injection (flutter/flutter#192924) 2026-09-25 zarah@google.com Fix more unresolved doc comment references (flutter/flutter#193336) 2026-09-25 dkwingsmt@users.noreply.github.com Allow resetting test invariants in `addTearDown` (flutter/flutter#192082) 2026-09-25 jhy03261997@gmail.com [a11y] Add a semantics role for slider (flutter/flutter#193324) 2026-09-25 stuartmorgan@google.com Fix plugin tests after Pigeon plugin template changes (flutter/flutter#193302) 2026-09-25 jesswon@google.com [Android 17] Bump Standard Test Apps in flutter/flutter to AGP 9.3.1 (flutter/flutter#193263) 2026-09-25 97480502+b-luk@users.noreply.github.com SSBO-based gradients in UberSDF (flutter/flutter#192962) 2026-09-25 robert.ancell@canonical.com [Linux] Handle FlView being destroyed before rendering is complete. (flutter/flutter#193268) 2026-09-25 bkonyi@google.com [flutter_tools] Handle Windows reserved characters in test target path (flutter/flutter#191900) 2026-09-25 sneurlax@gmail.com docs(tools): nit: say hook/build.dart in CMake native assets comment (flutter/flutter#192205) 2026-09-25 kevmoo@users.noreply.github.com [web] Enable Firefox Skwasm UI CI suites, configure COI configs, and fail fast on loader rejections (flutter/flutter#193187) 2026-09-25 jesswon@google.com [Android 17] Bumped Engine Dependencies to 9.3.1 (flutter/flutter#193265) 2026-09-25 kevmoo@users.noreply.github.com [web] Omit group role on menu scrollables and assign region role to named routes (flutter/flutter#192965) 2026-09-25 engine-flutter-autoroll@skia.org Roll Skia from 8eedeed98e79 to f441ca223b2b (5 revisions) (flutter/flutter#193353) 2026-09-25 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from EbPpoJW-Lnsu-8dyZ... to ukukV5lEkKabtOATk... (flutter/flutter#193326) 2026-09-25 engine-flutter-autoroll@skia.org Roll Packages from 431ea69 to e55e7ac (6 revisions) (flutter/flutter#193351) 2026-09-25 139053348+shikharish@users.noreply.github.com Support DynamicLibrary.codeAsset in Flutter (flutter/flutter#188947) 2026-09-25 engine-flutter-autoroll@skia.org Roll Dart SDK from 75d9e87d4e3d to 0e7642b85457 (1 revision) (flutter/flutter#193346) 2026-09-25 15619084+vashworth@users.noreply.github.com Exclude iOS PRs from macOS link (flutter/flutter#193315) 2026-09-25 engine-flutter-autoroll@skia.org Roll Skia from 6357608543ec to 8eedeed98e79 (4 revisions) (flutter/flutter#193341) 2026-09-25 engine-flutter-autoroll@skia.org Roll Dart SDK from d3aedb186aab to 75d9e87d4e3d (3 revisions) (flutter/flutter#193335) 2026-09-25 nickolasdeluca@live.com Cache the paint offset adjusted line metrics in TextPainter (flutter/flutter#191223) ...
Description
Catch
ArgumentErrorandFormatExceptioninTestCommand._parseTestArgumentwhen test target arguments contain Windows reserved characters or unexpanded globs, emitting a cleanToolExitinstead of crashing.Fixes #191896
Tests
packages/flutter_tools/test/commands.shard/hermetic/test_test.dartverifying thatflutter testthrows a cleanToolExitwhen given a path containing Windows reserved characters.