Unverified Commit ada04e6c authored by Michael Goderbauer's avatar Michael Goderbauer Committed by GitHub

Revert "Make flutter_driver be usable from a null-safe app (#75175)" (#75266)

This reverts commit 9fd5242e.
parent 917cbc34
...@@ -311,7 +311,7 @@ abstract class FlutterDriver { ...@@ -311,7 +311,7 @@ abstract class FlutterDriver {
/// See also: /// See also:
/// ///
/// * [getWidgetDiagnostics], which gets the [DiagnosticsNode] of a [Widget]. /// * [getWidgetDiagnostics], which gets the [DiagnosticsNode] of a [Widget].
Future<Map<String, Object?>> getRenderObjectDiagnostics( Future<Map<String, Object>> getRenderObjectDiagnostics(
SerializableFinder finder, { SerializableFinder finder, {
int subtreeDepth = 0, int subtreeDepth = 0,
bool includeProperties = true, bool includeProperties = true,
...@@ -323,7 +323,7 @@ abstract class FlutterDriver { ...@@ -323,7 +323,7 @@ abstract class FlutterDriver {
subtreeDepth: subtreeDepth, subtreeDepth: subtreeDepth,
includeProperties: includeProperties, includeProperties: includeProperties,
timeout: timeout, timeout: timeout,
)); )) as Map<String, Object>;
} }
/// Returns a JSON map of the [DiagnosticsNode] that is associated with the /// Returns a JSON map of the [DiagnosticsNode] that is associated with the
...@@ -344,7 +344,7 @@ abstract class FlutterDriver { ...@@ -344,7 +344,7 @@ abstract class FlutterDriver {
/// ///
/// * [getRenderObjectDiagnostics], which gets the [DiagnosticsNode] of a /// * [getRenderObjectDiagnostics], which gets the [DiagnosticsNode] of a
/// [RenderObject]. /// [RenderObject].
Future<Map<String, Object?>> getWidgetDiagnostics( Future<Map<String, Object>> getWidgetDiagnostics(
SerializableFinder finder, { SerializableFinder finder, {
int subtreeDepth = 0, int subtreeDepth = 0,
bool includeProperties = true, bool includeProperties = true,
...@@ -356,7 +356,7 @@ abstract class FlutterDriver { ...@@ -356,7 +356,7 @@ abstract class FlutterDriver {
subtreeDepth: subtreeDepth, subtreeDepth: subtreeDepth,
includeProperties: includeProperties, includeProperties: includeProperties,
timeout: timeout, timeout: timeout,
)); )) as Map<String, Object>;
} }
/// Tell the driver to perform a scrolling action. /// Tell the driver to perform a scrolling action.
......
...@@ -149,7 +149,6 @@ class VMServiceFlutterDriver extends FlutterDriver { ...@@ -149,7 +149,6 @@ class VMServiceFlutterDriver extends FlutterDriver {
'when another tool (usually a debugger) resumed the isolate ' 'when another tool (usually a debugger) resumed the isolate '
'before the flutter_driver did.' 'before the flutter_driver did.'
); );
return vms.Success();
} else { } else {
// Failed to resume due to another reason. Fail hard. // Failed to resume due to another reason. Fail hard.
throw e; throw e;
...@@ -313,11 +312,11 @@ class VMServiceFlutterDriver extends FlutterDriver { ...@@ -313,11 +312,11 @@ class VMServiceFlutterDriver extends FlutterDriver {
isolateId: _appIsolate.id, isolateId: _appIsolate.id,
args: serialized, args: serialized,
).then<Map<String, dynamic>>((vms.Response value) => value.json!); ).then<Map<String, dynamic>>((vms.Response value) => value.json!);
response = await _warnIfSlow<Map<String, dynamic>>( response = (await _warnIfSlow<Map<String, dynamic>>(
future: future, future: future,
timeout: command.timeout ?? kUnusuallyLongTimeout, timeout: command.timeout ?? kUnusuallyLongTimeout,
message: '${command.kind} message is taking a long time to complete...', message: '${command.kind} message is taking a long time to complete...',
); ))!;
_logCommunication('<<< $response'); _logCommunication('<<< $response');
} catch (error, stackTrace) { } catch (error, stackTrace) {
throw DriverError( throw DriverError(
...@@ -408,7 +407,7 @@ class VMServiceFlutterDriver extends FlutterDriver { ...@@ -408,7 +407,7 @@ class VMServiceFlutterDriver extends FlutterDriver {
const int kSecondInMicros = 1000000; const int kSecondInMicros = 1000000;
int currentStart = startTime; int currentStart = startTime;
int currentEnd = startTime + kSecondInMicros; // 1 second of timeline int currentEnd = startTime + kSecondInMicros; // 1 second of timeline
final List<Map<String, Object?>?> chunks = <Map<String, Object?>?>[]; final List<Map<String, Object?>?> chunks = <Map<String, Object>?>[];
do { do {
final vms.Timeline chunk = await _serviceClient.getVMTimeline( final vms.Timeline chunk = await _serviceClient.getVMTimeline(
timeOriginMicros: currentStart, timeOriginMicros: currentStart,
...@@ -421,9 +420,9 @@ class VMServiceFlutterDriver extends FlutterDriver { ...@@ -421,9 +420,9 @@ class VMServiceFlutterDriver extends FlutterDriver {
currentEnd += kSecondInMicros; currentEnd += kSecondInMicros;
} while (currentStart < endTime!); } while (currentStart < endTime!);
return Timeline.fromJson(<String, Object>{ return Timeline.fromJson(<String, Object>{
'traceEvents': <Object?> [ 'traceEvents': <Object> [
for (Map<String, Object?>? chunk in chunks) for (Map<String, Object?>? chunk in chunks)
...chunk!['traceEvents']! as List<Object?>, ...chunk!['traceEvents']! as List<Object>,
], ],
}); });
} catch (error, stackTrace) { } catch (error, stackTrace) {
...@@ -622,24 +621,22 @@ void _log(String message) { ...@@ -622,24 +621,22 @@ void _log(String message) {
driverLog('VMServiceFlutterDriver', message); driverLog('VMServiceFlutterDriver', message);
} }
Future<T> _warnIfSlow<T>({ Future<T?> _warnIfSlow<T>({
required Future<T> future, required Future<T?> future,
required Duration timeout, required Duration timeout,
required String message, required String message,
}) async { }) {
assert(future != null); assert(future != null);
assert(timeout != null); assert(timeout != null);
assert(message != null); assert(message != null);
final Completer<void> completer = Completer<void>(); future
completer.future.timeout(timeout, onTimeout: () { .timeout(timeout, onTimeout: () {
_log(message); _log(message);
return null; return null;
}); })
try {
await future.whenComplete(() { completer.complete(); });
} catch (e) {
// Don't duplicate errors if [future] completes with an error. // Don't duplicate errors if [future] completes with an error.
} .catchError((Object e, StackTrace s) => null);
return future; return future;
} }
......
...@@ -14,7 +14,7 @@ import 'package:flutter_driver/src/driver/timeline.dart'; ...@@ -14,7 +14,7 @@ import 'package:flutter_driver/src/driver/timeline.dart';
import 'package:fake_async/fake_async.dart'; import 'package:fake_async/fake_async.dart';
import 'package:vm_service/vm_service.dart' as vms; import 'package:vm_service/vm_service.dart' as vms;
import '../../common.dart'; import 'common.dart';
/// Magical timeout value that's different from the default. /// Magical timeout value that's different from the default.
const Duration _kTestTimeout = Duration(milliseconds: 1234); const Duration _kTestTimeout = Duration(milliseconds: 1234);
......
// 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 'dart:io';
import 'package:flutter_test/flutter_test.dart';
import 'package:path/path.dart' as p;
void main() {
// On CI we only execute the tests in the `test/src/real_test` and
// `test/src/web_test` directory, see https://github.com/flutter/flutter/blob/master/dev/bots/test.dart.
// This test ensures that we do not accidentally add tests in the the `test`
// or `test/src` directory, which would not run on CI.
test('test files exist only in directories where CI expects them', () {
final String flutterDriverPath = p.dirname(Platform.script.path);
expect(p.basename(flutterDriverPath), 'flutter_driver');
final String flutterDriverTestPath = p.join(flutterDriverPath, 'test');
final Directory flutterDriverTestDir = Directory(flutterDriverTestPath);
expect(flutterDriverTestDir.existsSync(), isTrue);
final List<String> filesInTestDir = flutterDriverTestDir.listSync()
.map((FileSystemEntity e) => p.basename(e.path))
.where((String s) => p.extension(s) == '.dart')
.toList();
// There are no test files in the `test` directory.
expect(filesInTestDir, <String>['common.dart']);
// There are no test files in the src directory.
final String flutterDriverTestSrcPath = p.join(flutterDriverTestPath, 'src');
final Directory flutterDriverTestSrcDir = Directory(flutterDriverTestSrcPath);
expect(flutterDriverTestSrcDir.existsSync(), isTrue);
final List<String> filesInTestSrcDir = flutterDriverTestSrcDir.listSync()
.map((FileSystemEntity e) => p.basename(e.path))
.where((String s) => p.extension(s) == '.dart')
.toList();
// There are no test files in the `test/src` directory.
expect(filesInTestSrcDir, unorderedEquals(<String>[]));
});
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment