[O] Removing all timeouts (mark II) (#26736)
These are essentially self-inflicted race conditions. Instead of timeouts we're going to try a more verbose logging mechanism that points out when things are taking a long time.
diff --git a/packages/flutter_tools/test/vmservice_test.dart b/packages/flutter_tools/test/vmservice_test.dart
index 0421764..15c64c4 100644
--- a/packages/flutter_tools/test/vmservice_test.dart
+++ b/packages/flutter_tools/test/vmservice_test.dart
@@ -153,13 +153,32 @@
}
void main() {
- final MockStdio mockStdio = MockStdio();
+ MockStdio mockStdio;
group('VMService', () {
+ setUp(() {
+ mockStdio = MockStdio();
+ });
+
testUsingContext('fails connection eagerly in the connect() method', () async {
- expect(
- VMService.connect(Uri.parse('http://host.invalid:9999/')),
- throwsToolExit(),
- );
+ FakeAsync().run((FakeAsync time) {
+ bool failed = false;
+ final Future<VMService> future = VMService.connect(Uri.parse('http://host.invalid:9999/'));
+ future.whenComplete(() {
+ failed = true;
+ });
+ time.elapse(const Duration(seconds: 5));
+ expect(failed, isFalse);
+ expect(mockStdio.writtenToStdout.join(''), '');
+ expect(mockStdio.writtenToStderr.join(''), '');
+ time.elapse(const Duration(seconds: 5));
+ expect(failed, isFalse);
+ expect(mockStdio.writtenToStdout.join(''), 'This is taking longer than expected...\n');
+ expect(mockStdio.writtenToStderr.join(''), '');
+ });
+ }, overrides: <Type, Generator>{
+ Logger: () => StdoutLogger(),
+ Stdio: () => mockStdio,
+ WebSocketConnector: () => (String url) async => throw const SocketException('test'),
});
testUsingContext('refreshViews', () {
@@ -167,7 +186,7 @@
bool done = false;
final MockPeer mockPeer = MockPeer();
expect(mockPeer.returnedFromSendRequest, 0);
- final VMService vmService = VMService(mockPeer, null, null, const Duration(seconds: 1), null, null, null);
+ final VMService vmService = VMService(mockPeer, null, null, null, null, null);
vmService.getVM().then((void value) { done = true; });
expect(done, isFalse);
expect(mockPeer.returnedFromSendRequest, 0);