Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
f149eec3
Unverified
Commit
f149eec3
authored
Mar 17, 2020
by
Jonah Williams
Committed by
GitHub
Mar 17, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[flutter_tools] always initialize the resident runner from dill (#52497)
parent
d3a66e31
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
1 deletion
+32
-1
resident_runner.dart
packages/flutter_tools/lib/src/resident_runner.dart
+13
-1
resident_runner_test.dart
...lutter_tools/test/general.shard/resident_runner_test.dart
+19
-0
No files found.
packages/flutter_tools/lib/src/resident_runner.dart
View file @
f149eec3
...
...
@@ -75,6 +75,12 @@ class FlutterDevice {
if
(
device
.
platformType
==
PlatformType
.
fuchsia
)
{
targetModel
=
TargetModel
.
flutterRunner
;
}
// For both web and non-web platforms we initialize dill to/from
// a shared location for faster bootstrapping. If the compiler fails
// due to a kernel target or version mismatch, no error is reported
// and the compiler starts up as normal. Unexpected errors will print
// a warning message and dump some debug information which can be
// used to file a bug, but the compiler will still start up correctly.
if
(
targetPlatform
==
TargetPlatform
.
web_javascript
)
{
generator
=
ResidentCompiler
(
globals
.
artifacts
.
getArtifactPath
(
Artifact
.
flutterWebSdk
,
mode:
buildInfo
.
mode
),
...
...
@@ -84,6 +90,7 @@ class FlutterDevice {
// Override the filesystem scheme so that the frontend_server can find
// the generated entrypoint code.
fileSystemScheme:
'org-dartlang-app'
,
initializeFromDill:
globals
.
fs
.
path
.
join
(
getBuildDirectory
(),
'cache.dill'
),
targetModel:
TargetModel
.
dartdevc
,
experimentalFlags:
experimentalFlags
,
platformDill:
globals
.
fs
.
file
(
globals
.
artifacts
...
...
@@ -107,6 +114,7 @@ class FlutterDevice {
targetModel:
targetModel
,
experimentalFlags:
experimentalFlags
,
dartDefines:
buildInfo
.
dartDefines
,
initializeFromDill:
globals
.
fs
.
path
.
join
(
getBuildDirectory
(),
'cache.dill'
),
);
}
...
...
@@ -637,7 +645,6 @@ abstract class ResidentRunner {
final
bool
ipv6
;
final
String
_dillOutputPath
;
/// The parent location of the incremental artifacts.
@visibleForTesting
final
Directory
artifactDirectory
;
final
String
packagesFilePath
;
final
String
projectRootPath
;
...
...
@@ -1017,6 +1024,11 @@ abstract class ResidentRunner {
Future
<
void
>
preExit
()
async
{
// If _dillOutputPath is null, we created a temporary directory for the dill.
if
(
_dillOutputPath
==
null
&&
artifactDirectory
.
existsSync
())
{
final
File
outputDill
=
artifactDirectory
.
childFile
(
'app.dill'
);
if
(
outputDill
.
existsSync
())
{
artifactDirectory
.
childFile
(
'app.dill'
)
.
copySync
(
globals
.
fs
.
path
.
join
(
getBuildDirectory
(),
'cache.dill'
));
}
artifactDirectory
.
deleteSync
(
recursive:
true
);
}
}
...
...
packages/flutter_tools/test/general.shard/resident_runner_test.dart
View file @
f149eec3
...
...
@@ -5,6 +5,7 @@
import
'dart:async'
;
import
'package:file/memory.dart'
;
import
'package:file_testing/file_testing.dart'
;
import
'package:flutter_tools/src/artifacts.dart'
;
import
'package:flutter_tools/src/base/command_help.dart'
;
import
'package:flutter_tools/src/base/common.dart'
;
...
...
@@ -356,6 +357,22 @@ void main() {
expect
(
otherRunner
.
artifactDirectory
.
path
,
contains
(
'foobar'
));
}));
test
(
'ResidentRunner copies output dill to cache location during preExit'
,
()
=>
testbed
.
run
(()
async
{
residentRunner
.
artifactDirectory
.
childFile
(
'app.dill'
).
writeAsStringSync
(
'hello'
);
await
residentRunner
.
preExit
();
final
File
cacheDill
=
globals
.
fs
.
file
(
globals
.
fs
.
path
.
join
(
getBuildDirectory
(),
'cache.dill'
));
expect
(
cacheDill
,
exists
);
expect
(
cacheDill
.
readAsStringSync
(),
'hello'
);
}));
test
(
'ResidentRunner handles output dill missing during preExit'
,
()
=>
testbed
.
run
(()
async
{
await
residentRunner
.
preExit
();
final
File
cacheDill
=
globals
.
fs
.
file
(
globals
.
fs
.
path
.
join
(
getBuildDirectory
(),
'cache.dill'
));
expect
(
cacheDill
,
isNot
(
exists
));
}));
test
(
'ResidentRunner printHelpDetails'
,
()
=>
testbed
.
run
(()
{
when
(
mockDevice
.
supportsHotRestart
).
thenReturn
(
true
);
when
(
mockDevice
.
supportsScreenshot
).
thenReturn
(
true
);
...
...
@@ -697,6 +714,8 @@ void main() {
target:
null
,
)).
generator
as
DefaultResidentCompiler
;
expect
(
residentCompiler
.
initializeFromDill
,
globals
.
fs
.
path
.
join
(
getBuildDirectory
(),
'cache.dill'
));
expect
(
residentCompiler
.
librariesSpec
,
globals
.
fs
.
file
(
globals
.
artifacts
.
getArtifactPath
(
Artifact
.
flutterWebLibrariesJson
))
.
uri
.
toString
());
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment