mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
tweak the doctor check for host compatibility (#9720)
This commit is contained in:
parent
e8c46927c4
commit
6957eabe2c
@ -44,7 +44,6 @@ class Doctor {
|
||||
if (_validators == null) {
|
||||
_validators = <DoctorValidator>[];
|
||||
_validators.add(new _FlutterValidator());
|
||||
_validators.add(new _HostExecutableValidator());
|
||||
|
||||
if (_androidWorkflow.appliesToHostPlatform)
|
||||
_validators.add(_androidWorkflow);
|
||||
@ -213,39 +212,26 @@ class _FlutterValidator extends DoctorValidator {
|
||||
));
|
||||
messages.add(new ValidationMessage('Engine revision ${version.engineRevisionShort}'));
|
||||
messages.add(new ValidationMessage('Tools Dart version ${version.dartSdkVersion}'));
|
||||
final String genSnapshotPath =
|
||||
artifacts.getArtifactPath(Artifact.genSnapshot);
|
||||
|
||||
// Check that the binaries we downloaded for this platform actually run on it.
|
||||
if (!_genSnapshotRuns(genSnapshotPath)) {
|
||||
messages.add(new ValidationMessage.error('Downloaded executables cannot execute '
|
||||
'on host (see https://github.com/flutter/flutter/issues/6207 for more information)'));
|
||||
}
|
||||
|
||||
return new ValidationResult(valid, messages,
|
||||
statusInfo: 'on ${os.name}, channel ${version.channel}');
|
||||
}
|
||||
}
|
||||
|
||||
class _HostExecutableValidator extends DoctorValidator {
|
||||
_HostExecutableValidator() : super('Host Executable Compatibility');
|
||||
|
||||
bool _genSnapshotRuns(String genSnapshotPath) {
|
||||
final int kExpectedExitCode = 255;
|
||||
try {
|
||||
return processManager.runSync(<String>[genSnapshotPath]).exitCode == kExpectedExitCode;
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<ValidationResult> validate() async {
|
||||
final String genSnapshotPath =
|
||||
artifacts.getArtifactPath(Artifact.genSnapshot);
|
||||
final List<ValidationMessage> messages = <ValidationMessage>[];
|
||||
final bool hostExecutablesRun = _genSnapshotRuns(genSnapshotPath);
|
||||
final ValidationType valid = hostExecutablesRun ? ValidationType.installed : ValidationType.missing;
|
||||
|
||||
if (hostExecutablesRun) {
|
||||
messages.add(new ValidationMessage('Downloaded executables execute on host'));
|
||||
} else {
|
||||
messages.add(new ValidationMessage.error(
|
||||
'Downloaded executables cannot execute on host. See https://github.com/flutter/flutter/issues/6207 for more information'));
|
||||
}
|
||||
return new ValidationResult(valid, messages);
|
||||
bool _genSnapshotRuns(String genSnapshotPath) {
|
||||
final int kExpectedExitCode = 255;
|
||||
try {
|
||||
return processManager.runSync(<String>[genSnapshotPath]).exitCode == kExpectedExitCode;
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user