Commit Graph

297 Commits

Author SHA1 Message Date
Jenn Magder
a2f67720ef
Migrate test/src/common to null safety (#79907) 2021-04-06 22:55:03 -07:00
Sam Rawlins
68492c5b69
Remove "unnecessary" imports. (#78664) 2021-04-06 11:19:02 -07:00
Jonah Williams
304448af8c
[flutter_tools] consume package:process exceptions (#79657) 2021-04-02 12:08:29 -07:00
Jonah Williams
430626d0f3
[flutter_tools] use existing service implementations for web (#78995) 2021-03-29 21:44:03 -07:00
Jonah Williams
dfc134dd9a
[versions] roll many versions (#79088) 2021-03-25 15:43:44 -07:00
Jenn Magder
d79b16689d
Migrate error_handling_io to null safety (#78932) 2021-03-24 14:56:26 -07:00
Jonah Williams
9cc61b0f90
[flutter_tools] handle concurrent modification in signal callback (#78913) 2021-03-23 17:30:09 -07:00
Jenn Magder
d165ea5c42
Migrate os to null safety (#78901) 2021-03-23 17:28:09 -07:00
Michael Goderbauer
197b440e96
Migrate out custom ignore syntax to flutter_ignore (#78497) 2021-03-19 15:33:05 -07:00
Jonah Williams
cdfe39556b
[flutter_tools] handle OSError 2 from current working directory (#78380) 2021-03-18 09:49:25 -07:00
Jonah Williams
4807f806e2
[flutter_tools] remove globals from logger (#78353) 2021-03-16 16:46:21 -07:00
Jenn Magder
d018c24bb8
MockProcessUtils->FakeProcessManager in version_test (#77985) 2021-03-12 16:38:04 -08:00
Jonah Williams
9f420ffb3e
[flutter_tools] io cleanups to simplify null safety migration (#77955) 2021-03-12 16:21:14 -08:00
Jonah Williams
2daac9201a
[flutter_tools] simplify shutdown hooks (#77969) 2021-03-11 22:18:15 -08:00
Jonah Williams
233015572c
[flutter_tools] simplify platform null safety (#77727) 2021-03-09 12:52:57 -08:00
Michael Goderbauer
cb867bbedc
Enable unnecessary_await_in_return lint (#77434) 2021-03-05 18:38:15 -08:00
Gary Qian
ee41782732
[flutter_tools] Deferred components build system (#76192) 2021-03-04 18:09:02 -08:00
Michael Goderbauer
7b251f5f37
Enable use_function_type_syntax_for_parameters lint (#77163) 2021-03-04 08:59:17 -08:00
Jonah Williams
fc35508a40
[flutter_tools] remove mock from logger tests (#77064) 2021-03-02 10:35:44 -08:00
Michael Goderbauer
fc99e7c0d7
Enable missing_whitespace_between_adjacent_strings (#77027) 2021-03-01 18:30:17 -08:00
Jonah Williams
2f1702f78e
[flutter_tools] remove mock from terminal test (#76812) 2021-02-26 08:38:55 -08:00
Jenn Magder
f5903a91e0
Remove dead ensureDirectoryExists (#76829) 2021-02-25 18:11:01 -08:00
Jonah Williams
acdf4ba871
[flutter_tools] remove process manager mocks from error_handling_io tests (#76725) 2021-02-24 14:51:04 -08:00
Jenn Magder
e5b5e1475c
Adopt FakeProcess, remove MockProcess (#76276) 2021-02-18 11:13:26 -08:00
Jenn Magder
23e41734e5
Swap Mocks to Fakes in config_test (#76274) 2021-02-18 00:46:02 -08:00
Jenn Magder
90531179f5
MockProcessManager -> FakeProcessManager in os_test (#76264) 2021-02-17 23:21:02 -08:00
Jonah Williams
d65c98b4a2
[flutter_tools] replace some mock file/directories with new op handle (#76268) 2021-02-17 21:26:03 -08:00
Jonah Williams
93e7d34dc4
[flutter_tools] Remove globals/mocks from GradleUtils (#76020) 2021-02-17 14:26:57 -08:00
Jonah Williams
dce8f71228
[flutter_tools] do not use context logger in gradle (#75940) 2021-02-12 17:38:52 -08:00
Hidenori Matsubayashi
4cc0ab2d19
[flutter_tools] Add ARM64 Linux host and cross-building option support (#61221) 2021-02-12 14:25:30 -08:00
Jonah Williams
8df58eb650
[flutter_tools] use a single fake implementation of HttpClient (#75471) 2021-02-09 15:32:03 -08:00
Gary Qian
81530744bf
flutter_tool: DeferredComponent and LoadingUnit classes, Manifest deferred-components parsing (#75394) 2021-02-09 10:02:13 -08:00
Jonah Williams
021311ed8a
Revert "[flutter_tools] move process manager into tool (#75350)" (#75639)
This reverts commit 8b6baae44c.
2021-02-08 09:21:46 -08:00
Jonah Williams
8b6baae44c
[flutter_tools] move process manager into tool (#75350)
Our current top crasher is an unclear error when ProcessManager fails to resolve an executable path. To fix this, we'd like to being adjusting the process resolution logic and adding more instrumentation to track failures. In order to begin the process, the ProcessManager has been folded back into the flutter tool
2021-02-04 13:19:11 -08:00
Jonah Williams
dcd061c70b
[flutter_tools] experiment with skipping process resolution (#74447) 2021-02-03 10:56:22 -08:00
Vyacheslav Egorov
4ba26191ea
Add support for producing unstripped AOT snapshots. (#75243) 2021-02-02 09:16:04 -08:00
Jonah Williams
18b1e23e89
[flutter_tools] move some fakes out of mocks.dart (#74992) 2021-01-29 14:28:18 -08:00
Jenn Magder
6ecb8cbcfa
Replace MockUsage with TestUsage (#74946) 2021-01-28 18:49:04 -08:00
Jonah Williams
38d928b1ba
[flutter_tools] remove mock from analyze_size_test.dart (#74817) 2021-01-28 18:19:04 -08:00
Jonah Williams
cf54d6a2f0
[flutter_tools] remove mocks from file system test (#74919) 2021-01-28 12:40:20 -08:00
Jenn Magder
ff87150ba9
Revert "Swap MockStdio to FakeStdio in tests (#74838)" (#74867)
This reverts commit 547ed88ab3.
2021-01-27 19:35:16 -08:00
Jenn Magder
547ed88ab3
Swap MockStdio to FakeStdio in tests (#74838) 2021-01-27 17:33:47 -08:00
Jonah Williams
74bd7b6f6d
[flutter_tools] opt all flutter tool libraries and tests out of null safety. (#74832)
* opt out the flutter tool

* oops EOF

* fix import

* Update tool_backend.dart

* Update daemon_client.dart

* fix more
2021-01-27 15:17:53 -08:00
Jenn Magder
2bf560b481
Replace MockProcessManager with FakeProcessManager in process_test where possible (#74834) 2021-01-27 13:25:30 -08:00
Jenn Magder
fe921211df
Replace MockXcode with Xcode.test in more unit tests (#74827) 2021-01-27 13:07:07 -08:00
Jonah Williams
fa8bf67cb6
[flutter_tools] catch errors when getting cwd (#74744) 2021-01-26 12:49:03 -08:00
J-P Nurmi
e1ff62a78c
[flutter_tools] propagate build errors from the backend (#72196) 2021-01-14 13:39:05 -08:00
Jonah Williams
abb48f495b
[flutter_tools] add error handling wrapping for File.createSync (#73890) 2021-01-13 14:25:37 -08:00
Jonah Williams
25dd8684b1
[flutter_tools] add 483 to non-recoverable errors (#73579) 2021-01-08 11:56:13 -08:00
Martin Kustermann
625ecda083
Remove left-overs from causal async stacks. (#71663) 2020-12-03 11:03:07 -08:00
Jenn Magder
a8bed5e405
Add sysctl file fallbacks (#71623) 2020-12-03 08:53:07 -08:00
Jia Hao
8de72126e9
[flutter_tools] Don't fail copying files if the destination is not writable (#71215) 2020-11-25 15:48:03 -08:00
Jenn Magder
53410c4bb9
Compile snapshot_assembly with sdk root set in Xcode (#69731) 2020-11-04 10:32:01 -08:00
Konstantin Scheglov
7b86be228e
Use runZonedGuarded() instead of deprecated onError. (#69160) 2020-10-28 08:43:31 -07:00
Jonah Williams
2e54c4a8ea
[flutter_tools] implement safe file copy with multiple fallbacks (#69000)
The tool observes a large number of unhandled exceptions during the file copy portion of flutter create. it is difficult to tell whether the permission issue is caused by the source/destination, or whether it is due to a bug in dart:io.

To work around this, implement a permission check for both the source and dest files. If either fails, the tool can exit with a more specific message.

If these checks pass, then perform the actual copy. If the copy fails, fallback to manually copying the bytes
2020-10-26 15:49:07 -07:00
Jonah Williams
cb67513f29
[flutter_tools] Reland: simplify pub cache logic (#67589)
There have been some more additional reports of a missing 'package:characters' import after upgrading flutter. This has me concerned that our pub caching logic is incorrect. Instead of the tool attempting to guess when pub should be run, always delegate to pub.

Also takes an opportunity to fix the kernel snapshot depending on the .packages or package_config. Due to the generated: date field this causes extra rebuilds. Instead when pub get is run, write out an additional file with just the package contents and version.

Fixes #66777
Fixes #65723
2020-10-23 10:00:56 -07:00
Jenn Magder
f63d56e455
App.framework must support iOS 8 for older Flutter projects (#68729)
* App.framework must support iOS 8 for older Flutter projects

* Fix test
2020-10-22 13:50:54 -07:00
Alexandre Ardhuin
73301a35a2
Sync lints (#68136) 2020-10-15 15:37:04 -07:00
Jenn Magder
a82807d782
Run Xcode command lines tools in native ARM (#68050) 2020-10-14 15:24:32 -07:00
Jonah Williams
9e70180f63
[flutter_tools] do not measure progress timeout (#67959)
Remove "This is taking a long time" progress timeout and TimeoutConfiguration.
2020-10-13 13:05:47 -07:00
Jenn Magder
4dffc851bc
Detect ARM macOS arch with sysctl hw.optional.arm64 (#67970) 2020-10-13 12:05:04 -07:00
Jonah Williams
d6d06ed9f0
[flutter_tools] delete applicationPackageStore (#68026)
This class is entirely superseded by the application package factory. Only drive and install use it, and removing it from drive will allow use-application-binary support.
2020-10-13 11:33:55 -07:00
Jonah Williams
18bb4d7254
Revert "[flutter_tools] reland: fold process resolution logic into the flutter tool (#67957)" (#67968)
This reverts commit bd8138797e.
2020-10-12 15:53:16 -07:00
Jonah Williams
bd8138797e
[flutter_tools] reland: fold process resolution logic into the flutter tool (#67957)
Reland of #67669

The flutter tool has a number of crashes on stable where an ArgumentError is thrown due to the process manager not being able to resolve an executable.

So that we can adjust/modify this logic, fold it into flutter and add some additional logging.
caches the resolved executable per target directory, to avoid repeated look ups.
Instead of throwing an argument error, attempts to run the executable as given if an exact path can't be found
Accept files or symlinks for the executable path.
user where/which to resolve path instead of package:process logic.
2020-10-12 15:37:02 -07:00
Jonah Williams
354e2a57b1
Revert "[flutter_tools] fold executable resolution into flutter (#67669)" (#67954)
This reverts commit 10c78c264a.
2020-10-12 13:15:39 -07:00
Jonah Williams
10c78c264a
[flutter_tools] fold executable resolution into flutter (#67669)
The flutter tool has a number of crashes on stable where an ArgumentError is thrown due to the process manager not being able to resolve an executable. Fold the resolution logic into the tool and use where/which instead of the package:process specific logic.
2020-10-12 12:51:37 -07:00
James D. Lin
e4206ac5dd
[flutter tools] Add a DelegatingLogger class (#67581)
[flutter tools] Add a DelegatingLogger class

Move most of `DelegateLogger` `from test/src/testbed.dart` to
`lib/src/base/logger.dart` to better formalize the common practice of
chaining `Logger`s together.  I renamed the class since it isn't
itself the delegate and to better match the `Delegating...` classes
from `package:collection`.

Additionally, add a freestanding `asLogger<T>` function to "cast" a
`Logger` into a matching delegate if possible.  This will allow
`Logger` chains to be ordered a *bit* more freely (e.g.
`NotifyingLogger` and `AppRunLogger` will no longer required to be
at the end of the chain, an unwritten rule that has led to breakage in
google3).  Chain order still matters since lack of virtual dispatch
means that parent `Logger`s can never invoke child methods, however.

I made `asLogger<T>` a freestanding function because I didn't want to
make it part of the `Logger` interface (and I thought that making it
an extension method might be weird).

Bonus cleanup:
There no longer appears to be a way to construct an `AppRunLogger`
with a null parent, so remove all of code paths for that case and
make the `parent` construction parameter required.
2020-10-09 15:55:24 -07:00
Christopher Fujino
ccdaa37043
Remove the .zip method from OSUtils, as it was not used (#67367)
We used to use zip to verify the integrity of downloaded zip archives, but we now use unzip. This removes the .zip method from OperatingSystemUtils.
2020-10-08 13:40:01 -07:00
Jonah Williams
c8466d0430
[flutter_tools] handle case where file is deleted by other program or running on read only volume (#66708)
* [flutter_tools] handle case where file is deleted by other program

* Add test cases

* Update file_system.dart

* Update file_system_test.dart

* fix import

* make a static on ErrorHandligFS

* add support for no exit on failure

* address comments

* update doc comment to file or directory
2020-10-05 17:00:07 -07:00
Jenn Magder
36fca52c0d
Replace MockArtifacts with Artifacts.test() (#67012) 2020-09-30 16:25:29 -07:00
Jenn Magder
e8fbb43aac
Replace MockFile with memory file system files (#66941) 2020-09-29 17:50:33 -07:00
Jonah Williams
6f20c8a83f
[flutter_tools] handle missing zip/unzip argument errors (#66685)
it is possible for users that download the prebuilt SDKs to run the tool without unzip installed. Rather than crashing with an unclear argument error, exit the tool with a message on how to install that mirrors the message in the update_dart_sdk.sh script.

Also applied to zip for completeness
2020-09-29 07:58:09 -07:00
Jonah Williams
549de844ed
[flutter_tools] add a mechanism to turn off immediate tool exit (#66787)
Instead of always exiting the tool, provide a mechanism to turn off this behavior for non-critical functionality like configuration and analytics settings.

Fixes #66786 Fixes #4674
2020-09-28 13:04:38 -07:00
Jonah Williams
19fbe98df3
[flutter_tools] pass existsSync through error handling io (#66704)
Crash reporting shows at least one instance of EACCES during an existsSync cache call. Add this to the list of error handling io methods. Did not add the async exists method since we lint against its usage.
2020-09-25 20:17:39 -07:00
Jonah Williams
99d0954857
[flutter_tools] ensure ErrorHandlingFileSystem wraps current directory (#66680)
The lack of current directory wrapping was letting some of the already handled errors through

Fixes #66675
2020-09-25 14:29:22 -07:00
Jonah Williams
2c6f862bf8
[flutter_tools] add EPERM to set of immediate exit errors (#66159) 2020-09-21 11:32:07 -07:00
Daniel Edrisian
3a5e45404d
Updated androidMissingSdkInstructions error message (#65964) 2020-09-17 15:57:06 -07:00
gaaclarke
fa646339d6
Added the machine's architecture to macos doctor results. (#65978) 2020-09-16 17:47:04 -07:00
Michael R Fairhurst
7f3c9b6bda
Remove unused 'dart:async' imports. (#65568) 2020-09-16 14:14:06 -07:00
Devon Carew
04e4b117f6
fix an issue where raw json output is written to IDE clients (#65508)
fix an issues where raw json output was written to IDE clients
2020-09-15 12:44:05 -07:00
Jonah Williams
039f1cf853
[flutter_tools] handle terminals that do not support single char mode in Terminal.promptForCharInput (#65418)
Some terminals stdin do not support single char mode (like an emacs terminal buffer apparently). If this is the case, then the presented choice values would always have an appended newline \n which would prevent us from finding the value in the listed index (or using it as a signal for the default choice). To fix, treat '' as the default choice and always trim the choice value.

While this has seemingly always been broken, it wasn't noticeable until the multi-device selection prompt was added a few months ago.

Fixes #65267
2020-09-14 17:57:04 -07:00
Jonah Williams
9248fda410
[flutter_tools] add EACCES to list of immediate exit tool conditions (#65125)
Similar to the permission denied error on Windows, this is not resolvable by the tool.
2020-09-03 16:08:01 -07:00
Jonah Williams
bd3eee75f3
[flutter_tools] rethrow process exceptions as tool exit from gradle build (#64745)
The flutter tool is currently unable to detect missing permissions in gradle/gradle.bat that would cause a gradle build to fail via process exception. Rather than crashing and exiting, we can display the exception as an error message and tool exit.

While linux/macOS are able to add the +x bit, this is not possible on windows with our current file system/OS API. These crashes represent a substantial amount of crash reporting, but are otherwise not actionable on our end.
2020-09-03 11:55:55 -07:00
Jonah Williams
d3fd62c843
[flutter_tools] exit with helpful message if where is missing on windows (#65112) 2020-09-02 16:50:04 -07:00
Jonah Williams
15d18b9e42
[flutter_tools] remove unused zip verification (#64970)
This is no longer used, in favor of just attempting to unzip and handling the exception.
2020-08-31 13:26:38 -07:00
Jonah Williams
5a4fa220e2
[flutter_tools] handle OsError thrown during azure detector (#64749) 2020-08-27 17:13:04 -07:00
Jonah Williams
d3515f5fb6
[flutter_tools] add analytics to code size, add more testing (#64578)
* [flutter_tools] add analytics to code size, add more testing

* add gradle case

* Update build_macos_test.dart

* move analytics to code size tooling

* Update analyze_size.dart

* fix analysis
2020-08-27 09:45:10 -07:00
Jonah Williams
23032d772d
[flutter_tools] refactor artifact downloading to retry zip exceptions. (#64512) 2020-08-25 10:06:04 -07:00
Jonah Williams
059de1537e
[flutter_tools] support code size tooling on iOS, linux, windows, macOS, and Android on Windows (#63610)
Adds support for size analysis on iOS, macOS, linux, and Windows - using an uncompressed directory based approach. The output format is not currently specified.

Adds support for size analysis on android on windows, switching to package:archive

Updates the console format to display as a tree, allowing longer paths. Increases the number of dart libraries shown (to avoid only ever printing the flutter/dart:ui libraries, which dominate the size)
2020-08-25 10:00:24 -07:00
Jonah Williams
ee12d7c3fc
[flutter_tools] check for permission issues when copying file (#63540) 2020-08-21 11:11:04 -07:00
Jonah Williams
a42c56791b
[flutter_tools] shrink fingerprinter API to currently used subset (#63840) 2020-08-18 17:01:06 -07:00
Jonah Williams
9225d8d5b7
[flutter_tools] move to fake_async, skip failing tests (#63536) 2020-08-11 19:36:05 -07:00
James D. Lin
ec58182b3b
[flutter tools] Make SizeAnalyzer support .apk files that don't use libapp.so (#63250) 2020-08-10 21:06:05 -07:00
Jenn Magder
0aafdf9aa9
Change minimum iOS version from 8.0 to 9.0 (#62902) 2020-08-06 13:46:15 -07:00
Peter Lee
8b39af2ea7
Implement size analyzer to unzip & parse APK and AOT size snapshot to generate analysis json (#62495)
* Implement size analyzer to unzip & parse APK and AOT size snapshot to generate analysis json
2020-07-31 13:25:29 -04:00
Jonah Williams
b880dad4ab
[flutter_tools] delete test that will start failing (#62580) 2020-07-30 10:06:02 -07:00
Christopher Fujino
f796e047fd
Verbose process exceptions (#61552) 2020-07-16 11:31:03 -07:00
Dan Field
eadc35f62b
Optionally invert oversized images (#61209)
* Optionally invert oversized images
2020-07-13 14:03:23 -07:00
Dan Field
cd80ed3009
Fix bold not getting cleared on new line (#61256)
* Fix bold not getting cleared on new line
2020-07-10 16:09:49 -07:00
Jonah Williams
fbca40add2
[flutter_tools] abstract logger construction (why can't I hold all these loggers) (#61201)
We have too many loggers, and the logger construction rules are too complicated to be untested. Capture these in a LoggerFactory and test that construction is correct.
2020-07-10 11:51:47 -07:00