Repository navigation
[Windows] Remove the usage of SETLOCAL ENABLEDELAYEDEXPANSION from bat scripts. - #106861
Conversation
|
It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!). If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
|
I added a test. |
|
@loic-sharma would you by any chance know how batch files work, and be able to review this change? |
christopherfujino
left a comment
There was a problem hiding this comment.
RSLGTM, thanks for this change!
…N` from bat scripts. (flutter/flutter#106861)
…N` from bat scripts. (flutter/flutter#106861)
… and batch entrypoints (flutter#191438) ## Description Fixes flutter#84270 The root cause of flutter#84270 (delayed variable expansion in batch scripts stripping `!` from CLI arguments like `^(?!Golden).+`) was previously addressed in flutter#106861, which removed `SETLOCAL ENABLEDELAYEDEXPANSION` from `bin/flutter.bat`, `bin/dart.bat`, and `bin/internal/shared.bat`. However, flutter#84270 was left open without dedicated regression tests. This PR: 1. Adds a hermetic unit test in `test_test.dart` verifying that `TestCommand` preserves and forwards negative lookahead regexes (`^(?!Golden).+`) to `FlutterTestRunner`. 2. Adds a case-insensitive static test in `script_test.dart` asserting that Windows entrypoint batch scripts do not enable delayed expansion. 3. Unskips and modernizes the integration test in `variable_expansion_windows_test.dart` verifying that `bin/dart.bat` preserves lookahead regexes on Windows. ## 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. - [ ] 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] All existing and new tests are passing. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/
On Windows, calling another script without
CALLfrom bat script won't back to caller when callee exited. The callee can use last exit code. When the callee exits with exit code, the caller's caller can receive the code.This PR replaces the usage of
SETLOCAL ENABLEDELAYEDEXPANSIONwith this behavior.This PR also replaces the usage of it which can be replaced by normal %~%.
Fixes #26571.
No changes in the flutter/tests repo.
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.