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
65a81c7c
Unverified
Commit
65a81c7c
authored
Sep 29, 2020
by
Ben Konyi
Committed by
GitHub
Sep 29, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Roll package:dds to 1.4.0 and update error handling (#66836)
parent
d693d2b9
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
147 additions
and
37 deletions
+147
-37
pubspec.yaml
dev/benchmarks/macrobenchmarks/pubspec.yaml
+3
-4
pubspec.yaml
dev/bots/pubspec.yaml
+2
-2
pubspec.yaml
dev/devicelab/pubspec.yaml
+2
-2
pubspec.yaml
dev/integration_tests/flutter_gallery/pubspec.yaml
+4
-5
pubspec.yaml
dev/integration_tests/ui/pubspec.yaml
+2
-2
dds.dart
packages/flutter_tools/lib/src/base/dds.dart
+9
-1
resident_runner.dart
packages/flutter_tools/lib/src/resident_runner.dart
+36
-16
pubspec.yaml
packages/flutter_tools/pubspec.yaml
+2
-2
attach_test.dart
...utter_tools/test/commands.shard/hermetic/attach_test.dart
+8
-0
resident_runner_test.dart
...lutter_tools/test/general.shard/resident_runner_test.dart
+2
-0
flutter_immediately_exit_test.dart
...test/integration.shard/flutter_immediately_exit_test.dart
+43
-0
project_with_immediate_exit.dart
...egration.shard/test_data/project_with_immediate_exit.dart
+31
-0
test_driver.dart
...ges/flutter_tools/test/integration.shard/test_driver.dart
+3
-3
No files found.
dev/benchmarks/macrobenchmarks/pubspec.yaml
View file @
65a81c7c
...
...
@@ -55,7 +55,6 @@ dependencies:
path_provider_windows
:
0.0.4+1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pedantic
:
1.10.0-nullsafety.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
platform
:
3.0.0-nullsafety.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
platform_detect
:
1.4.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
plugin_platform_interface
:
1.0.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
process
:
4.0.0-nullsafety.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pub_semver
:
1.4.4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
...
...
@@ -75,11 +74,11 @@ dependencies:
sync_http
:
0.2.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
term_glyph
:
1.2.0-nullsafety.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
typed_data
:
1.3.0-nullsafety.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher
:
5.7.
1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher
:
5.7.
2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_linux
:
0.0.1+1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_macos
:
0.0.1+8
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_platform_interface
:
1.0.8
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_web
:
0.1.
3+2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_web
:
0.1.
4+1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_windows
:
0.0.1+1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
vector_math
:
2.1.0-nullsafety.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
vm_service_client
:
0.2.6+2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
...
...
@@ -299,4 +298,4 @@ flutter:
fonts
:
-
asset
:
packages/flutter_gallery_assets/fonts/GalleryIcons.ttf
# PUBSPEC CHECKSUM:
c0a7
# PUBSPEC CHECKSUM:
6419
dev/bots/pubspec.yaml
View file @
65a81c7c
...
...
@@ -36,7 +36,7 @@ dependencies:
glob
:
1.2.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
html
:
0.14.0+3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
http_multi_server
:
2.2.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
image
:
2.1.1
7
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
image
:
2.1.1
8
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
io
:
0.3.4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
js
:
0.6.3-nullsafety.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
json_rpc_2
:
2.2.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
...
...
@@ -76,4 +76,4 @@ dev_dependencies:
mockito
:
4.1.1
test_api
:
0.2.19-nullsafety.2
# PUBSPEC CHECKSUM:
646a
# PUBSPEC CHECKSUM:
e26b
dev/devicelab/pubspec.yaml
View file @
65a81c7c
...
...
@@ -10,7 +10,7 @@ environment:
dependencies
:
args
:
1.6.0
file
:
6.0.0-nullsafety.2
image
:
2.1.1
7
image
:
2.1.1
8
meta
:
1.3.0-nullsafety.3
path
:
1.8.0-nullsafety.1
platform
:
3.0.0-nullsafety.2
...
...
@@ -75,4 +75,4 @@ dev_dependencies:
webkit_inspection_protocol
:
0.7.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
yaml
:
2.2.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
# PUBSPEC CHECKSUM:
d925
# PUBSPEC CHECKSUM:
3c26
dev/integration_tests/flutter_gallery/pubspec.yaml
View file @
65a81c7c
...
...
@@ -12,7 +12,7 @@ dependencies:
intl
:
0.16.1
connectivity
:
0.4.9+3
string_scanner
:
1.1.0-nullsafety.1
url_launcher
:
5.7.
1
url_launcher
:
5.7.
2
cupertino_icons
:
0.1.3
video_player
:
0.10.6
scoped_model
:
1.0.1
...
...
@@ -30,16 +30,14 @@ dependencies:
device_info_platform_interface
:
1.0.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
meta
:
1.3.0-nullsafety.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
path
:
1.8.0-nullsafety.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
platform_detect
:
1.4.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
plugin_platform_interface
:
1.0.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pub_semver
:
1.4.4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
source_span
:
1.8.0-nullsafety.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
term_glyph
:
1.2.0-nullsafety.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
typed_data
:
1.3.0-nullsafety.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_linux
:
0.0.1+1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_macos
:
0.0.1+8
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_platform_interface
:
1.0.8
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_web
:
0.1.
3+2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_web
:
0.1.
4+1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
url_launcher_windows
:
0.0.1+1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
vector_math
:
2.1.0-nullsafety.3
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
video_player_platform_interface
:
1.0.5
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
...
...
@@ -88,6 +86,7 @@ dev_dependencies:
platform
:
3.0.0-nullsafety.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pool
:
1.5.0-nullsafety.1
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
process
:
4.0.0-nullsafety.2
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pub_semver
:
1.4.4
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
shelf
:
0.7.5
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
shelf_packages_handler
:
2.0.0
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
shelf_static
:
0.2.8
# THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
...
...
@@ -278,4 +277,4 @@ flutter:
-
asset
:
packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Regular.ttf
-
asset
:
packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Light.ttf
# PUBSPEC CHECKSUM:
1166
# PUBSPEC CHECKSUM:
5ed7
dev/integration_tests/ui/pubspec.yaml
View file @
65a81c7c
...
...
@@ -6,7 +6,7 @@ environment:
sdk
:
"
>=2.8.0
<3.0.0"
dependencies
:
image
:
2.1.1
7
image
:
2.1.1
8
flutter
:
sdk
:
flutter
flutter_driver
:
...
...
@@ -84,4 +84,4 @@ dev_dependencies:
flutter
:
uses-material-design
:
true
# PUBSPEC CHECKSUM:
b22c
# PUBSPEC CHECKSUM:
252d
packages/flutter_tools/lib/src/base/dds.dart
View file @
65a81c7c
...
...
@@ -2,9 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:async'
;
import
'package:dds/dds.dart'
as
dds
;
import
'package:meta/meta.dart'
;
import
'common.dart'
;
import
'io.dart'
as
io
;
import
'logger.dart'
;
...
...
@@ -18,6 +21,9 @@ class DartDevelopmentService {
Uri
get
uri
=>
_ddsInstance
.
uri
;
Future
<
void
>
get
done
=>
_completer
.
future
;
final
Completer
<
void
>
_completer
=
Completer
<
void
>();
Future
<
void
>
startDartDevelopmentService
(
Uri
observatoryUri
,
int
hostPort
,
...
...
@@ -43,9 +49,11 @@ class DartDevelopmentService {
enableAuthCodes:
!
disableServiceAuthCodes
,
ipv6:
ipv6
,
);
unawaited
(
_ddsInstance
.
done
.
whenComplete
(
_completer
.
complete
));
logger
.
printTrace
(
'DDS is listening at
${_ddsInstance.uri}
.'
);
}
on
dds
.
DartDevelopmentServiceException
catch
(
e
)
{
logger
.
printError
(
'Warning: Failed to start DDS:
${e.message}
'
);
logger
.
printTrace
(
'Warning: Failed to start DDS:
${e.message}
'
);
_completer
.
complete
();
rethrow
;
}
}
...
...
packages/flutter_tools/lib/src/resident_runner.dart
View file @
65a81c7c
...
...
@@ -230,24 +230,44 @@ class FlutterDevice {
isWaitingForVm
=
true
;
vm_service
.
VmService
service
;
if
(!
disableDds
)
{
await
device
.
dds
.
startDartDevelopmentService
(
observatoryUri
,
ddsPort
,
ipv6
,
disableServiceAuthCodes
,
);
// This first try block is meant to catch errors that occur during DDS startup
// (e.g., failure to bind to a port, failure to connect to the VM service,
// attaching to a VM service with existing clients, etc.).
try
{
await
device
.
dds
.
startDartDevelopmentService
(
observatoryUri
,
ddsPort
,
ipv6
,
disableServiceAuthCodes
,
);
}
on
Exception
catch
(
e
)
{
globals
.
printTrace
(
'Fail to connect to service protocol:
$observatoryUri
:
$e
'
);
if
(!
completer
.
isCompleted
&&
!
_isListeningForObservatoryUri
)
{
completer
.
completeError
(
'failed to connect to
$observatoryUri
'
);
}
return
;
}
}
// This second try block handles cases where the VM service connection goes down
// before flutter_tools connects to DDS. The DDS `done` future completes when DDS
// shuts down, including after an error. If `done` completes before `connectToVmService`,
// something went wrong that caused DDS to shutdown early.
try
{
service
=
await
connectToVmService
(
disableDds
?
observatoryUri
:
device
.
dds
.
uri
,
reloadSources:
reloadSources
,
restart:
restart
,
compileExpression:
compileExpression
,
reloadMethod:
reloadMethod
,
getSkSLMethod:
getSkSLMethod
,
printStructuredErrorLogMethod:
printStructuredErrorLogMethod
,
device:
device
,
);
service
=
await
Future
.
any
<
dynamic
>(
<
Future
<
dynamic
>>[
connectToVmService
(
disableDds
?
observatoryUri
:
device
.
dds
.
uri
,
reloadSources:
reloadSources
,
restart:
restart
,
compileExpression:
compileExpression
,
reloadMethod:
reloadMethod
,
getSkSLMethod:
getSkSLMethod
,
printStructuredErrorLogMethod:
printStructuredErrorLogMethod
,
device:
device
,
),
device
.
dds
.
done
.
whenComplete
(()
=>
throw
Exception
(
'DDS shut down too early'
)),
]
)
as
vm_service
.
VmService
;
}
on
Exception
catch
(
exception
)
{
globals
.
printTrace
(
'Fail to connect to service protocol:
$observatoryUri
:
$exception
'
);
if
(!
completer
.
isCompleted
&&
!
_isListeningForObservatoryUri
)
{
...
...
packages/flutter_tools/pubspec.yaml
View file @
65a81c7c
...
...
@@ -11,7 +11,7 @@ dependencies:
# To update these, use "flutter update-packages --force-upgrade".
archive
:
2.0.13
args
:
1.6.0
dds
:
1.
3.5
dds
:
1.
4.0
dwds
:
6.0.0
completion
:
0.2.2
coverage
:
0.14.1
...
...
@@ -113,4 +113,4 @@ dartdoc:
# Exclude this package from the hosted API docs.
nodoc
:
true
# PUBSPEC CHECKSUM:
8b89
# PUBSPEC CHECKSUM:
3d85
packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart
View file @
65a81c7c
...
...
@@ -90,8 +90,10 @@ void main() {
when
(
portForwarder
.
unforward
(
any
))
.
thenAnswer
((
_
)
async
{});
when
(
device
.
dds
).
thenReturn
(
mockDds
);
final
Completer
<
void
>
noopCompleter
=
Completer
<
void
>();
when
(
mockDds
.
startDartDevelopmentService
(
any
,
any
,
false
,
any
)).
thenReturn
(
null
);
when
(
mockDds
.
uri
).
thenReturn
(
Uri
.
parse
(
'http://localhost:8181'
));
when
(
mockDds
.
done
).
thenAnswer
((
_
)
=>
noopCompleter
.
future
);
final
HttpClientRequest
httpClientRequest
=
MockHttpClientRequest
();
httpClient
=
MockHttpClient
();
when
(
httpClient
.
putUrl
(
any
))
...
...
@@ -299,6 +301,8 @@ void main() {
.
thenReturn
(
portForwarder
);
when
(
device
.
dds
)
.
thenReturn
(
mockDds
);
final
Completer
<
void
>
noopCompleter
=
Completer
<
void
>();
when
(
mockDds
.
done
).
thenAnswer
((
_
)
=>
noopCompleter
.
future
);
when
(
portForwarder
.
forward
(
devicePort
,
hostPort:
anyNamed
(
'hostPort'
)))
.
thenAnswer
((
_
)
async
=>
hostPort
);
when
(
portForwarder
.
forwardedPorts
)
...
...
@@ -379,6 +383,8 @@ void main() {
.
thenReturn
(
portForwarder
);
when
(
device
.
dds
)
.
thenReturn
(
mockDds
);
final
Completer
<
void
>
noopCompleter
=
Completer
<
void
>();
when
(
mockDds
.
done
).
thenAnswer
((
_
)
=>
noopCompleter
.
future
);
when
(
device
.
getLogReader
(
includePastLogs:
anyNamed
(
'includePastLogs'
)))
.
thenAnswer
((
_
)
=>
mockLogReader
);
when
(
portForwarder
.
forward
(
devicePort
,
hostPort:
anyNamed
(
'hostPort'
)))
...
...
@@ -449,6 +455,8 @@ void main() {
when
(
mockDds
.
startDartDevelopmentService
(
any
,
any
,
any
,
any
))
.
thenReturn
(
null
);
when
(
mockDds
.
uri
).
thenReturn
(
Uri
.
parse
(
'http://localhost:8181'
));
final
Completer
<
void
>
noopCompleter
=
Completer
<
void
>();
when
(
mockDds
.
done
).
thenAnswer
((
_
)
=>
noopCompleter
.
future
);
});
testUsingContext
(
'succeeds in ipv4 mode'
,
()
async
{
...
...
packages/flutter_tools/test/general.shard/resident_runner_test.dart
View file @
65a81c7c
...
...
@@ -2328,10 +2328,12 @@ void main() {
final
MockDevice
mockDevice
=
MockDevice
();
final
MockDartDevelopmentService
mockDds
=
MockDartDevelopmentService
();
final
MockDeviceLogReader
mockLogReader
=
MockDeviceLogReader
();
final
Completer
<
void
>
noopCompleter
=
Completer
<
void
>();
when
(
mockDevice
.
getLogReader
(
app:
anyNamed
(
'app'
))).
thenReturn
(
mockLogReader
);
when
(
mockDevice
.
dds
).
thenReturn
(
mockDds
);
when
(
mockDds
.
startDartDevelopmentService
(
any
,
any
,
any
,
any
)).
thenReturn
(
null
);
when
(
mockDds
.
uri
).
thenReturn
(
Uri
.
parse
(
'http://localhost:8181'
));
when
(
mockDds
.
done
).
thenAnswer
((
_
)
=>
noopCompleter
.
future
);
final
TestFlutterDevice
flutterDevice
=
TestFlutterDevice
(
mockDevice
,
...
...
packages/flutter_tools/test/integration.shard/flutter_immediately_exit_test.dart
0 → 100644
View file @
65a81c7c
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'package:file/file.dart'
;
import
'../src/common.dart'
;
import
'test_data/project_with_immediate_exit.dart'
;
import
'test_driver.dart'
;
import
'test_utils.dart'
;
void
main
(
)
{
Directory
tempDir
;
final
ProjectWithImmediateExit
_project
=
ProjectWithImmediateExit
();
FlutterRunTestDriver
_flutter
;
setUp
(()
async
{
tempDir
=
createResolvedTempDirectorySync
(
'run_test.'
);
await
_project
.
setUpIn
(
tempDir
);
_flutter
=
FlutterRunTestDriver
(
tempDir
);
});
tearDown
(()
async
{
tryToDelete
(
tempDir
);
});
testWithoutContext
(
'flutter_tools gracefully handles quick app shutdown'
,
()
async
{
try
{
await
_flutter
.
run
();
}
on
Exception
{
expect
(
_flutter
.
lastErrorInfo
,
contains
(
'Error connecting to the service protocol:'
));
expect
(
_flutter
.
lastErrorInfo
.
contains
(
// Looks for stack trace entry of the form:
// test/integration.shard/test_driver.dart 379:18 FlutterTestDriver._waitFor.<fn>
RegExp
(
'^(.+)
\
/([^
\
/]+)
\
.dart
\
d*:
\
d*
\
s*.*
\$
'
)
),
isFalse
);
}
});
}
packages/flutter_tools/test/integration.shard/test_data/project_with_immediate_exit.dart
0 → 100644
View file @
65a81c7c
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'project.dart'
;
class
ProjectWithImmediateExit
extends
Project
{
@override
final
String
pubspec
=
'''
name: test
environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
'''
;
@override
final
String
main
=
r''
'
import '
dart:
async
';
import '
dart:
io
';
Future<void> main() async {
await Future.delayed(const Duration(milliseconds: 50));
exit(0);
}
'''
;
}
packages/flutter_tools/test/integration.shard/test_driver.dart
View file @
65a81c7c
...
...
@@ -376,7 +376,7 @@ abstract class FlutterTestDriver {
if
(
json
[
'params'
]
!=
null
&&
json
[
'params'
][
'trace'
]
!=
null
)
{
error
.
write
(
'
${json['params']['trace']}
\n\n
'
);
}
response
.
completeError
(
error
.
toString
(
));
response
.
completeError
(
Exception
(
error
.
toString
()
));
}
});
...
...
@@ -536,7 +536,7 @@ class FlutterRunTestDriver extends FlutterTestDriver {
// fast.
unawaited
(
_process
.
exitCode
.
then
((
_
)
{
if
(!
prematureExitGuard
.
isCompleted
)
{
prematureExitGuard
.
completeError
(
'Process exited prematurely:
${args.join(' ')}
:
$_errorBuffer
'
);
prematureExitGuard
.
completeError
(
Exception
(
'Process exited prematurely:
${args.join(' ')}
:
$_errorBuffer
'
)
);
}
}));
...
...
@@ -567,7 +567,7 @@ class FlutterRunTestDriver extends FlutterTestDriver {
_currentRunningAppId
=
(
await
started
)[
'params'
][
'appId'
]
as
String
;
prematureExitGuard
.
complete
();
}
on
Exception
catch
(
error
,
stackTrace
)
{
prematureExitGuard
.
completeError
(
error
,
stackTrace
);
prematureExitGuard
.
completeError
(
Exception
(
error
.
toString
())
,
stackTrace
);
}
}());
...
...
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