Unverified Commit 63cc4ad3 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

Revert "[flutter_tool] Prevent accidental calls to io.exit when asserts are...

Revert "[flutter_tool] Prevent accidental calls to io.exit when asserts are active in unit tests (#46210)" (#46630)

This reverts commit b698c9d7.
parent b698c9d7
......@@ -26,7 +26,7 @@
/// increase the API surface that we have to test in Flutter tools, and the APIs
/// in `dart:io` can sometimes be hard to use in tests.
import 'dart:async';
import 'dart:io' as io show exit, IOSink, Platform, Process, ProcessInfo, ProcessSignal,
import 'dart:io' as io show exit, IOSink, Process, ProcessInfo, ProcessSignal,
stderr, stdin, Stdin, StdinException, Stdout, stdout;
import 'package:meta/meta.dart';
......@@ -92,26 +92,12 @@ ExitFunction _exitFunction = _defaultExitFunction;
/// Exits the process.
///
/// Throws [StateError] if assertions are enabled and the dart:io exit
/// is still active when called. This may indicate exit was called in
/// a test without being configured correctly. This behavior can be
/// removed by setting the `FLUTTER_TEST` environment
/// variable to a non-null string.
///
/// This is analogous to the `exit` function in `dart:io`, except that this
/// function may be set to a testing-friendly value by calling
/// [setExitFunctionForTests] (and then restored to its default implementation
/// with [restoreExitFunction]). The default implementation delegates to
/// `dart:io`.
ExitFunction get exit {
assert(
_exitFunction != io.exit || io.Platform.environment['FLUTTER_TEST'] != null,
'io.exit was called with assertions active. If this is an integration test, '
'ensure that the environment variable FLUTTER_TEST is set '
'to a non-null String.',
);
return _exitFunction;
}
ExitFunction get exit => _exitFunction;
/// Sets the [exit] function to a function that throws an exception rather
/// than exiting the process; this is intended for testing purposes.
......
......@@ -68,16 +68,6 @@ void main() {
testUsingContext('ProcessSignal toString() works', () async {
expect(io.ProcessSignal.sigint.toString(), ProcessSignal.SIGINT.toString());
});
test('exit throws a StateError if called without being overriden', () {
expect(() => exit(0), throwsA(isInstanceOf<AssertionError>()));
});
test('exit does not throw a StateError if overriden', () {
setExitFunctionForTests((int value) {});
expect(() => exit(0), returnsNormally);
});
}
class MockIoProcessSignal extends Mock implements io.ProcessSignal {}
......@@ -29,9 +29,6 @@ void main() {
final Process process = await processManager.start(
<String>[flutterBin, '--show-test-device', 'daemon'],
workingDirectory: tempDir.path,
environment: <String, String>{
'FLUTTER_TEST': 'true',
}
);
final StreamController<String> stdout = StreamController<String>.broadcast();
......
......@@ -46,12 +46,7 @@ Future<void> getPackages(String folder) async {
'pub',
'get',
];
final ProcessResult result = await processManager.run(command,
workingDirectory: folder,
environment: <String, String>{
'FLUTTER_TEST': 'true'
},
);
final ProcessResult result = await processManager.run(command, workingDirectory: folder);
if (result.exitCode != 0) {
throw Exception('flutter pub get failed: ${result.stderr}\n${result.stdout}');
}
......
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