Commit Graph

224 Commits

Author SHA1 Message Date
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