Unverified Commit 5e3e5a2a authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

Revert "[flutter_tools] use correct sdk path for analysis (#58871)" (#59035)

This reverts commit 9ed3e5be.
parent c5a78210
...@@ -75,7 +75,6 @@ Future<void> main(List<String> args) async { ...@@ -75,7 +75,6 @@ Future<void> main(List<String> args) async {
processManager: globals.processManager, processManager: globals.processManager,
logger: globals.logger, logger: globals.logger,
terminal: globals.terminal, terminal: globals.terminal,
artifacts: globals.artifacts,
), ),
AssembleCommand(), AssembleCommand(),
AttachCommand(verboseHelp: verboseHelp), AttachCommand(verboseHelp: verboseHelp),
......
...@@ -10,6 +10,7 @@ import 'base/platform.dart'; ...@@ -10,6 +10,7 @@ import 'base/platform.dart';
import 'base/utils.dart'; import 'base/utils.dart';
import 'build_info.dart'; import 'build_info.dart';
import 'cache.dart'; import 'cache.dart';
import 'dart/sdk.dart';
import 'globals.dart' as globals; import 'globals.dart' as globals;
enum Artifact { enum Artifact {
...@@ -338,9 +339,9 @@ class CachedArtifacts extends Artifacts { ...@@ -338,9 +339,9 @@ class CachedArtifacts extends Artifacts {
final String platformDirName = getNameForTargetPlatform(platform); final String platformDirName = getNameForTargetPlatform(platform);
return _fileSystem.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, platform, mode)); return _fileSystem.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, platform, mode));
case Artifact.engineDartSdkPath: case Artifact.engineDartSdkPath:
return _dartSdkPath(_fileSystem); return dartSdkPath;
case Artifact.engineDartBinary: case Artifact.engineDartBinary:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', _artifactToFileName(artifact, platform)); return _fileSystem.path.join(dartSdkPath, 'bin', _artifactToFileName(artifact, platform));
case Artifact.platformKernelDill: case Artifact.platformKernelDill:
return _fileSystem.path.join(_getFlutterPatchedSdkPath(mode), _artifactToFileName(artifact)); return _fileSystem.path.join(_getFlutterPatchedSdkPath(mode), _artifactToFileName(artifact));
case Artifact.platformLibrariesJson: case Artifact.platformLibrariesJson:
...@@ -354,11 +355,11 @@ class CachedArtifacts extends Artifacts { ...@@ -354,11 +355,11 @@ class CachedArtifacts extends Artifacts {
case Artifact.webPlatformKernelDill: case Artifact.webPlatformKernelDill:
return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact)); return _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _artifactToFileName(artifact));
case Artifact.dart2jsSnapshot: case Artifact.dart2jsSnapshot:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _artifactToFileName(artifact)); return _fileSystem.path.join(dartSdkPath, 'bin', 'snapshots', _artifactToFileName(artifact));
case Artifact.dartdevcSnapshot: case Artifact.dartdevcSnapshot:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _artifactToFileName(artifact)); return _fileSystem.path.join(dartSdkPath, 'bin', 'snapshots', _artifactToFileName(artifact));
case Artifact.kernelWorkerSnapshot: case Artifact.kernelWorkerSnapshot:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _artifactToFileName(artifact)); return _fileSystem.path.join(dartSdkPath, 'bin', 'snapshots', _artifactToFileName(artifact));
case Artifact.flutterMacOSFramework: case Artifact.flutterMacOSFramework:
case Artifact.linuxDesktopPath: case Artifact.linuxDesktopPath:
case Artifact.windowsDesktopPath: case Artifact.windowsDesktopPath:
...@@ -527,7 +528,7 @@ class LocalEngineArtifacts extends Artifacts { ...@@ -527,7 +528,7 @@ class LocalEngineArtifacts extends Artifacts {
case Artifact.dart2jsSnapshot: case Artifact.dart2jsSnapshot:
return _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName); return _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName);
case Artifact.dartdevcSnapshot: case Artifact.dartdevcSnapshot:
return _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', artifactFileName); return _fileSystem.path.join(dartSdkPath, 'bin', 'snapshots', artifactFileName);
case Artifact.kernelWorkerSnapshot: case Artifact.kernelWorkerSnapshot:
return _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName); return _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName);
case Artifact.idevicescreenshot: case Artifact.idevicescreenshot:
...@@ -660,8 +661,3 @@ class OverrideArtifacts implements Artifacts { ...@@ -660,8 +661,3 @@ class OverrideArtifacts implements Artifacts {
@override @override
bool get isLocalEngine => parent.isLocalEngine; bool get isLocalEngine => parent.isLocalEngine;
} }
/// Locate the Dart SDK.
String _dartSdkPath(FileSystem fileSystem) {
return fileSystem.path.join(Cache.flutterRoot, 'bin', 'cache', 'dart-sdk');
}
...@@ -19,6 +19,7 @@ import '../base/io.dart'; ...@@ -19,6 +19,7 @@ import '../base/io.dart';
import '../base/logger.dart'; import '../base/logger.dart';
import '../codegen.dart'; import '../codegen.dart';
import '../dart/pub.dart'; import '../dart/pub.dart';
import '../dart/sdk.dart';
import '../globals.dart' as globals; import '../globals.dart' as globals;
import '../project.dart'; import '../project.dart';
...@@ -110,14 +111,7 @@ class BuildRunner extends CodeGenerator { ...@@ -110,14 +111,7 @@ class BuildRunner extends CodeGenerator {
} }
scriptIdFile.writeAsBytesSync(appliedBuilderDigest); scriptIdFile.writeAsBytesSync(appliedBuilderDigest);
final ProcessResult generateResult = await globals.processManager.run(<String>[ final ProcessResult generateResult = await globals.processManager.run(<String>[
globals.fs.path.join( sdkBinaryName('pub'), 'run', 'build_runner', 'generate-build-script',
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath),
'bin',
(globals.platform.isWindows) ? 'pub.bat' : 'pub'
),
'run',
'build_runner',
'generate-build-script',
], workingDirectory: syntheticPubspec.parent.path); ], workingDirectory: syntheticPubspec.parent.path);
if (generateResult.exitCode != 0) { if (generateResult.exitCode != 0) {
throwToolExit('Error generating build_script snapshot: ${generateResult.stderr}'); throwToolExit('Error generating build_script snapshot: ${generateResult.stderr}');
......
...@@ -7,7 +7,6 @@ import 'dart:async'; ...@@ -7,7 +7,6 @@ import 'dart:async';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import 'package:process/process.dart'; import 'package:process/process.dart';
import '../artifacts.dart';
import '../base/file_system.dart'; import '../base/file_system.dart';
import '../base/logger.dart'; import '../base/logger.dart';
import '../base/platform.dart'; import '../base/platform.dart';
...@@ -22,12 +21,10 @@ class AnalyzeCommand extends FlutterCommand { ...@@ -22,12 +21,10 @@ class AnalyzeCommand extends FlutterCommand {
this.workingDirectory, this.workingDirectory,
@required FileSystem fileSystem, @required FileSystem fileSystem,
@required Platform platform, @required Platform platform,
@required Terminal terminal, @required AnsiTerminal terminal,
@required Logger logger, @required Logger logger,
@required ProcessManager processManager, @required ProcessManager processManager,
@required Artifacts artifacts, }) : _fileSystem = fileSystem,
}) : _artifacts = artifacts,
_fileSystem = fileSystem,
_processManager = processManager, _processManager = processManager,
_logger = logger, _logger = logger,
_terminal = terminal, _terminal = terminal,
...@@ -80,10 +77,9 @@ class AnalyzeCommand extends FlutterCommand { ...@@ -80,10 +77,9 @@ class AnalyzeCommand extends FlutterCommand {
/// The working directory for testing analysis using dartanalyzer. /// The working directory for testing analysis using dartanalyzer.
final Directory workingDirectory; final Directory workingDirectory;
final Artifacts _artifacts;
final FileSystem _fileSystem; final FileSystem _fileSystem;
final Logger _logger; final Logger _logger;
final Terminal _terminal; final AnsiTerminal _terminal;
final ProcessManager _processManager; final ProcessManager _processManager;
final Platform _platform; final Platform _platform;
...@@ -121,7 +117,6 @@ class AnalyzeCommand extends FlutterCommand { ...@@ -121,7 +117,6 @@ class AnalyzeCommand extends FlutterCommand {
processManager: _processManager, processManager: _processManager,
terminal: _terminal, terminal: _terminal,
experiments: stringsArg('enable-experiment'), experiments: stringsArg('enable-experiment'),
artifacts: _artifacts,
).analyze(); ).analyze();
} else { } else {
await AnalyzeOnce( await AnalyzeOnce(
...@@ -135,7 +130,6 @@ class AnalyzeCommand extends FlutterCommand { ...@@ -135,7 +130,6 @@ class AnalyzeCommand extends FlutterCommand {
processManager: _processManager, processManager: _processManager,
terminal: _terminal, terminal: _terminal,
experiments: stringsArg('enable-experiment'), experiments: stringsArg('enable-experiment'),
artifacts: _artifacts,
).analyze(); ).analyze();
} }
return FlutterCommandResult.success(); return FlutterCommandResult.success();
......
...@@ -9,7 +9,6 @@ import 'package:meta/meta.dart'; ...@@ -9,7 +9,6 @@ import 'package:meta/meta.dart';
import 'package:process/process.dart'; import 'package:process/process.dart';
import 'package:yaml/yaml.dart' as yaml; import 'package:yaml/yaml.dart' as yaml;
import '../artifacts.dart';
import '../base/common.dart'; import '../base/common.dart';
import '../base/file_system.dart'; import '../base/file_system.dart';
import '../base/logger.dart'; import '../base/logger.dart';
...@@ -30,7 +29,6 @@ abstract class AnalyzeBase { ...@@ -30,7 +29,6 @@ abstract class AnalyzeBase {
@required this.processManager, @required this.processManager,
@required this.terminal, @required this.terminal,
@required this.experiments, @required this.experiments,
@required this.artifacts,
}); });
/// The parsed argument results for execution. /// The parsed argument results for execution.
...@@ -48,11 +46,9 @@ abstract class AnalyzeBase { ...@@ -48,11 +46,9 @@ abstract class AnalyzeBase {
@protected @protected
final Platform platform; final Platform platform;
@protected @protected
final Terminal terminal; final AnsiTerminal terminal;
@protected @protected
final List<String> experiments; final List<String> experiments;
@protected
final Artifacts artifacts;
/// Called by [AnalyzeCommand] to start the analysis process. /// Called by [AnalyzeCommand] to start the analysis process.
Future<void> analyze(); Future<void> analyze();
......
...@@ -8,7 +8,6 @@ import 'package:args/args.dart'; ...@@ -8,7 +8,6 @@ import 'package:args/args.dart';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import 'package:process/process.dart'; import 'package:process/process.dart';
import '../artifacts.dart';
import '../base/common.dart'; import '../base/common.dart';
import '../base/file_system.dart'; import '../base/file_system.dart';
import '../base/io.dart'; import '../base/io.dart';
...@@ -17,17 +16,17 @@ import '../base/platform.dart'; ...@@ -17,17 +16,17 @@ import '../base/platform.dart';
import '../base/terminal.dart'; import '../base/terminal.dart';
import '../base/utils.dart'; import '../base/utils.dart';
import '../dart/analysis.dart'; import '../dart/analysis.dart';
import '../dart/sdk.dart' as sdk;
import 'analyze_base.dart'; import 'analyze_base.dart';
class AnalyzeContinuously extends AnalyzeBase { class AnalyzeContinuously extends AnalyzeBase {
AnalyzeContinuously(ArgResults argResults, List<String> repoRoots, List<Directory> repoPackages, { AnalyzeContinuously(ArgResults argResults, List<String> repoRoots, List<Directory> repoPackages, {
@required FileSystem fileSystem, @required FileSystem fileSystem,
@required Logger logger, @required Logger logger,
@required Terminal terminal, @required AnsiTerminal terminal,
@required Platform platform, @required Platform platform,
@required ProcessManager processManager, @required ProcessManager processManager,
@required List<String> experiments, @required List<String> experiments,
@required Artifacts artifacts,
}) : super( }) : super(
argResults, argResults,
repoPackages: repoPackages, repoPackages: repoPackages,
...@@ -38,7 +37,6 @@ class AnalyzeContinuously extends AnalyzeBase { ...@@ -38,7 +37,6 @@ class AnalyzeContinuously extends AnalyzeBase {
terminal: terminal, terminal: terminal,
processManager: processManager, processManager: processManager,
experiments: experiments, experiments: experiments,
artifacts: artifacts,
); );
String analysisTarget; String analysisTarget;
...@@ -69,8 +67,7 @@ class AnalyzeContinuously extends AnalyzeBase { ...@@ -69,8 +67,7 @@ class AnalyzeContinuously extends AnalyzeBase {
analysisTarget = fileSystem.currentDirectory.path; analysisTarget = fileSystem.currentDirectory.path;
} }
final String sdkPath = argResults['dart-sdk'] as String ?? final String sdkPath = argResults['dart-sdk'] as String ?? sdk.dartSdkPath;
artifacts.getArtifactPath(Artifact.engineDartSdkPath);
final AnalysisServer server = AnalysisServer(sdkPath, directories, final AnalysisServer server = AnalysisServer(sdkPath, directories,
fileSystem: fileSystem, fileSystem: fileSystem,
......
...@@ -8,7 +8,6 @@ import 'package:args/args.dart'; ...@@ -8,7 +8,6 @@ import 'package:args/args.dart';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import 'package:process/process.dart'; import 'package:process/process.dart';
import '../artifacts.dart';
import '../base/common.dart'; import '../base/common.dart';
import '../base/file_system.dart'; import '../base/file_system.dart';
import '../base/logger.dart'; import '../base/logger.dart';
...@@ -16,6 +15,7 @@ import '../base/platform.dart'; ...@@ -16,6 +15,7 @@ import '../base/platform.dart';
import '../base/terminal.dart'; import '../base/terminal.dart';
import '../base/utils.dart'; import '../base/utils.dart';
import '../dart/analysis.dart'; import '../dart/analysis.dart';
import '../dart/sdk.dart' as sdk;
import 'analyze.dart'; import 'analyze.dart';
import 'analyze_base.dart'; import 'analyze_base.dart';
...@@ -29,9 +29,8 @@ class AnalyzeOnce extends AnalyzeBase { ...@@ -29,9 +29,8 @@ class AnalyzeOnce extends AnalyzeBase {
@required Logger logger, @required Logger logger,
@required Platform platform, @required Platform platform,
@required ProcessManager processManager, @required ProcessManager processManager,
@required Terminal terminal, @required AnsiTerminal terminal,
@required List<String> experiments, @required List<String> experiments,
@required Artifacts artifacts,
this.workingDirectory, this.workingDirectory,
}) : super( }) : super(
argResults, argResults,
...@@ -43,7 +42,6 @@ class AnalyzeOnce extends AnalyzeBase { ...@@ -43,7 +42,6 @@ class AnalyzeOnce extends AnalyzeBase {
processManager: processManager, processManager: processManager,
terminal: terminal, terminal: terminal,
experiments: experiments, experiments: experiments,
artifacts: artifacts,
); );
/// The working directory for testing analysis using dartanalyzer. /// The working directory for testing analysis using dartanalyzer.
...@@ -91,8 +89,7 @@ class AnalyzeOnce extends AnalyzeBase { ...@@ -91,8 +89,7 @@ class AnalyzeOnce extends AnalyzeBase {
final Completer<void> analysisCompleter = Completer<void>(); final Completer<void> analysisCompleter = Completer<void>();
final List<AnalysisError> errors = <AnalysisError>[]; final List<AnalysisError> errors = <AnalysisError>[];
final String sdkPath = argResults['dart-sdk'] as String ?? final String sdkPath = argResults['dart-sdk'] as String ?? sdk.dartSdkPath;
artifacts.getArtifactPath(Artifact.engineDartSdkPath);
final AnalysisServer server = AnalysisServer( final AnalysisServer server = AnalysisServer(
sdkPath, sdkPath,
......
...@@ -12,12 +12,12 @@ import 'package:webdriver/async_io.dart' as async_io; ...@@ -12,12 +12,12 @@ import 'package:webdriver/async_io.dart' as async_io;
import '../android/android_device.dart'; import '../android/android_device.dart';
import '../application_package.dart'; import '../application_package.dart';
import '../artifacts.dart';
import '../base/common.dart'; import '../base/common.dart';
import '../base/file_system.dart'; import '../base/file_system.dart';
import '../base/process.dart'; import '../base/process.dart';
import '../build_info.dart'; import '../build_info.dart';
import '../dart/package_map.dart'; import '../dart/package_map.dart';
import '../dart/sdk.dart';
import '../device.dart'; import '../device.dart';
import '../globals.dart' as globals; import '../globals.dart' as globals;
import '../project.dart'; import '../project.dart';
...@@ -505,9 +505,11 @@ Future<void> _runTests(List<String> testArgs, Map<String, String> environment) a ...@@ -505,9 +505,11 @@ Future<void> _runTests(List<String> testArgs, Map<String, String> environment) a
globals.printTrace('Running driver tests.'); globals.printTrace('Running driver tests.');
globalPackagesPath = globals.fs.path.normalize(globals.fs.path.absolute(globalPackagesPath)); globalPackagesPath = globals.fs.path.normalize(globals.fs.path.absolute(globalPackagesPath));
final String dartVmPath = globals.fs.path.join(dartSdkPath, 'bin', 'dart');
final int result = await processUtils.stream( final int result = await processUtils.stream(
<String>[ <String>[
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), dartVmPath,
...dartVmFlags,
...testArgs, ...testArgs,
'--packages=$globalPackagesPath', '--packages=$globalPackagesPath',
'-rexpanded', '-rexpanded',
......
// 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 '../cache.dart';
import '../globals.dart' as globals;
/// Locate the Dart SDK.
String get dartSdkPath {
return globals.fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'dart-sdk');
}
/// The required Dart language flags
const List<String> dartVmFlags = <String>[];
/// Return the platform specific name for the given Dart SDK binary. So, `pub`
/// ==> `pub.bat`. The default SDK location can be overridden with a specified
/// [sdkLocation].
String sdkBinaryName(String name, { String sdkLocation }) {
return globals.fs.path.absolute(
globals.fs.path.join(sdkLocation ?? dartSdkPath, 'bin', globals.platform.isWindows ? '$name.bat' : name));
}
...@@ -4,18 +4,15 @@ ...@@ -4,18 +4,15 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter_tools/src/artifacts.dart';
import 'package:flutter_tools/src/base/common.dart';
import 'package:mockito/mockito.dart';
import 'package:file/memory.dart'; import 'package:file/memory.dart';
import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/io.dart';
import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/base/terminal.dart'; import 'package:flutter_tools/src/base/terminal.dart';
import 'package:flutter_tools/src/commands/analyze.dart';
import 'package:flutter_tools/src/dart/analysis.dart'; import 'package:flutter_tools/src/dart/analysis.dart';
import 'package:flutter_tools/src/dart/pub.dart'; import 'package:flutter_tools/src/dart/pub.dart';
import 'package:flutter_tools/src/dart/sdk.dart';
import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/globals.dart' as globals;
import 'package:flutter_tools/src/runner/flutter_command_runner.dart'; import 'package:flutter_tools/src/runner/flutter_command_runner.dart';
import 'package:process/process.dart'; import 'package:process/process.dart';
...@@ -79,9 +76,7 @@ void main() { ...@@ -79,9 +76,7 @@ void main() {
); );
await pub.get(context: PubContext.flutterTests, directory: tempDir.path); await pub.get(context: PubContext.flutterTests, directory: tempDir.path);
server = AnalysisServer( server = AnalysisServer(dartSdkPath, <String>[tempDir.path],
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath),
<String>[tempDir.path],
fileSystem: fileSystem, fileSystem: fileSystem,
platform: platform, platform: platform,
processManager: processManager, processManager: processManager,
...@@ -114,16 +109,14 @@ void main() { ...@@ -114,16 +109,14 @@ void main() {
); );
await pub.get(context: PubContext.flutterTests, directory: tempDir.path); await pub.get(context: PubContext.flutterTests, directory: tempDir.path);
server = AnalysisServer( server = AnalysisServer(dartSdkPath, <String>[tempDir.path],
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath), fileSystem: fileSystem,
<String>[tempDir.path], platform: platform,
fileSystem: fileSystem, processManager: processManager,
platform: platform, logger: logger,
processManager: processManager, terminal: terminal,
logger: logger, experiments: <String>[],
terminal: terminal, );
experiments: <String>[],
);
int errorCount = 0; int errorCount = 0;
final Future<bool> onDone = server.onAnalyzing.where((bool analyzing) => analyzing == false).first; final Future<bool> onDone = server.onAnalyzing.where((bool analyzing) => analyzing == false).first;
...@@ -140,9 +133,7 @@ void main() { ...@@ -140,9 +133,7 @@ void main() {
testUsingContext('Returns no errors when source is error-free', () async { testUsingContext('Returns no errors when source is error-free', () async {
const String contents = "StringBuffer bar = StringBuffer('baz');"; const String contents = "StringBuffer bar = StringBuffer('baz');";
tempDir.childFile('main.dart').writeAsStringSync(contents); tempDir.childFile('main.dart').writeAsStringSync(contents);
server = AnalysisServer( server = AnalysisServer(dartSdkPath, <String>[tempDir.path],
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath),
<String>[tempDir.path],
fileSystem: fileSystem, fileSystem: fileSystem,
platform: platform, platform: platform,
processManager: processManager, processManager: processManager,
...@@ -196,121 +187,4 @@ void main() { ...@@ -196,121 +187,4 @@ void main() {
await server.start(); await server.start();
}); });
testUsingContext('Can run AnalysisService with customized cache location', () async {
final Completer<void> completer = Completer<void>();
final StreamController<List<int>> stdin = StreamController<List<int>>();
final FakeProcessManager processManager = FakeProcessManager.list(
<FakeCommand>[
FakeCommand(
command: const <String>[
'custom-dart-sdk/bin/dart',
'custom-dart-sdk/bin/snapshots/analysis_server.dart.snapshot',
'--disable-server-feature-completion',
'--disable-server-feature-search',
'--sdk',
'custom-dart-sdk',
],
completer: completer,
stdin: IOSink(stdin.sink),
),
]);
final Artifacts artifacts = MockArtifacts();
when(artifacts.getArtifactPath(Artifact.engineDartSdkPath))
.thenReturn('custom-dart-sdk');
final AnalyzeCommand command = AnalyzeCommand(
terminal: Terminal.test(),
artifacts: artifacts,
logger: BufferLogger.test(),
platform: FakePlatform(operatingSystem: 'linux'),
fileSystem: MemoryFileSystem.test(),
processManager: processManager,
);
final TestFlutterCommandRunner commandRunner = TestFlutterCommandRunner();
commandRunner.addCommand(command);
unawaited(commandRunner.run(<String>['analyze', '--watch']));
await stdin.stream.first;
expect(processManager.hasRemainingExpectations, false);
});
testUsingContext('Can run AnalysisService with customized cache location --watch', () async {
final Completer<void> completer = Completer<void>();
final StreamController<List<int>> stdin = StreamController<List<int>>();
final FakeProcessManager processManager = FakeProcessManager.list(
<FakeCommand>[
FakeCommand(
command: const <String>[
'custom-dart-sdk/bin/dart',
'custom-dart-sdk/bin/snapshots/analysis_server.dart.snapshot',
'--disable-server-feature-completion',
'--disable-server-feature-search',
'--sdk',
'custom-dart-sdk',
],
completer: completer,
stdin: IOSink(stdin.sink),
),
]);
final Artifacts artifacts = MockArtifacts();
when(artifacts.getArtifactPath(Artifact.engineDartSdkPath))
.thenReturn('custom-dart-sdk');
final AnalyzeCommand command = AnalyzeCommand(
terminal: Terminal.test(),
artifacts: artifacts,
logger: BufferLogger.test(),
platform: FakePlatform(operatingSystem: 'linux'),
fileSystem: MemoryFileSystem.test(),
processManager: processManager,
);
final TestFlutterCommandRunner commandRunner = TestFlutterCommandRunner();
commandRunner.addCommand(command);
unawaited(commandRunner.run(<String>['analyze', '--watch']));
await stdin.stream.first;
expect(processManager.hasRemainingExpectations, false);
});
testWithoutContext('Can forward null-safety experiments to the AnalysisServer', () async {
final Completer<void> completer = Completer<void>();
final StreamController<List<int>> stdin = StreamController<List<int>>();
const String fakeSdkPath = 'dart-sdk';
final FakeCommand fakeCommand = FakeCommand(
command: const <String>[
'dart-sdk/bin/dart',
'dart-sdk/bin/snapshots/analysis_server.dart.snapshot',
'--enable-experiment',
'non-nullable',
'--disable-server-feature-completion',
'--disable-server-feature-search',
'--sdk',
'dart-sdk',
],
completer: completer,
stdin: IOSink(stdin.sink),
);
server = AnalysisServer(fakeSdkPath, <String>[''],
fileSystem: MemoryFileSystem.test(),
platform: FakePlatform(),
processManager: FakeProcessManager.list(<FakeCommand>[
fakeCommand,
]),
logger: BufferLogger.test(),
terminal: Terminal.test(),
experiments: <String>[
'non-nullable'
],
);
await server.start();
});
} }
class MockArtifacts extends Mock implements Artifacts {}
...@@ -4,8 +4,6 @@ ...@@ -4,8 +4,6 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter_tools/src/globals.dart' as globals;
import 'package:flutter_tools/src/artifacts.dart';
import 'package:flutter_tools/src/base/common.dart'; import 'package:flutter_tools/src/base/common.dart';
import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/io.dart';
...@@ -34,7 +32,6 @@ void main() { ...@@ -34,7 +32,6 @@ void main() {
Directory tempDir; Directory tempDir;
String projectPath; String projectPath;
File libMain; File libMain;
Artifacts artifacts;
Future<void> runCommand({ Future<void> runCommand({
FlutterCommand command, FlutterCommand command,
...@@ -95,11 +92,6 @@ flutter_project:lib/ ...@@ -95,11 +92,6 @@ flutter_project:lib/
terminal: terminal, terminal: terminal,
); );
analyzerSeparator = platform.isWindows ? '-' : '•'; analyzerSeparator = platform.isWindows ? '-' : '•';
artifacts = CachedArtifacts(
cache: globals.cache,
fileSystem: fileSystem,
platform: platform,
);
}); });
setUp(() { setUp(() {
...@@ -130,7 +122,6 @@ flutter_project:lib/ ...@@ -130,7 +122,6 @@ flutter_project:lib/
platform: platform, platform: platform,
processManager: processManager, processManager: processManager,
terminal: terminal, terminal: terminal,
artifacts: artifacts,
), ),
arguments: <String>['analyze', '--no-pub'], arguments: <String>['analyze', '--no-pub'],
statusTextContains: <String>['No issues found!'], statusTextContains: <String>['No issues found!'],
...@@ -146,7 +137,6 @@ flutter_project:lib/ ...@@ -146,7 +137,6 @@ flutter_project:lib/
logger: logger, logger: logger,
processManager: processManager, processManager: processManager,
terminal: terminal, terminal: terminal,
artifacts: artifacts,
), ),
arguments: <String>['analyze', '--no-pub', libMain.path], arguments: <String>['analyze', '--no-pub', libMain.path],
toolExit: true, toolExit: true,
...@@ -185,7 +175,6 @@ flutter_project:lib/ ...@@ -185,7 +175,6 @@ flutter_project:lib/
logger: logger, logger: logger,
processManager: processManager, processManager: processManager,
terminal: terminal, terminal: terminal,
artifacts: artifacts,
), ),
arguments: <String>['analyze', '--no-pub'], arguments: <String>['analyze', '--no-pub'],
statusTextContains: <String>[ statusTextContains: <String>[
...@@ -231,7 +220,6 @@ flutter_project:lib/ ...@@ -231,7 +220,6 @@ flutter_project:lib/
logger: logger, logger: logger,
processManager: processManager, processManager: processManager,
terminal: terminal, terminal: terminal,
artifacts: artifacts,
), ),
arguments: <String>['analyze', '--no-pub'], arguments: <String>['analyze', '--no-pub'],
statusTextContains: <String>[ statusTextContains: <String>[
...@@ -278,7 +266,6 @@ void bar() { ...@@ -278,7 +266,6 @@ void bar() {
logger: logger, logger: logger,
processManager: processManager, processManager: processManager,
terminal: terminal, terminal: terminal,
artifacts: artifacts,
), ),
arguments: <String>['analyze', '--no-pub'], arguments: <String>['analyze', '--no-pub'],
statusTextContains: <String>[ statusTextContains: <String>[
...@@ -309,7 +296,6 @@ StringBuffer bar = StringBuffer('baz'); ...@@ -309,7 +296,6 @@ StringBuffer bar = StringBuffer('baz');
logger: logger, logger: logger,
processManager: processManager, processManager: processManager,
terminal: terminal, terminal: terminal,
artifacts: artifacts,
), ),
arguments: <String>['analyze', '--no-pub'], arguments: <String>['analyze', '--no-pub'],
statusTextContains: <String>['No issues found!'], statusTextContains: <String>['No issues found!'],
...@@ -336,7 +322,6 @@ int? bar; ...@@ -336,7 +322,6 @@ int? bar;
logger: logger, logger: logger,
processManager: processManager, processManager: processManager,
terminal: terminal, terminal: terminal,
artifacts: artifacts,
), ),
arguments: <String>['analyze', '--no-pub', '--enable-experiment=non-nullable'], arguments: <String>['analyze', '--no-pub', '--enable-experiment=non-nullable'],
statusTextContains: <String>['No issues found!'], statusTextContains: <String>['No issues found!'],
...@@ -364,7 +349,6 @@ StringBuffer bar = StringBuffer('baz'); ...@@ -364,7 +349,6 @@ StringBuffer bar = StringBuffer('baz');
processManager: processManager, processManager: processManager,
logger: logger, logger: logger,
fileSystem: fileSystem, fileSystem: fileSystem,
artifacts: artifacts,
), ),
arguments: <String>['analyze', '--no-pub'], arguments: <String>['analyze', '--no-pub'],
statusTextContains: <String>['No issues found!'], statusTextContains: <String>['No issues found!'],
......
...@@ -7,7 +7,6 @@ import 'dart:convert'; ...@@ -7,7 +7,6 @@ import 'dart:convert';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:args/command_runner.dart'; import 'package:args/command_runner.dart';
import 'package:flutter_tools/src/artifacts.dart';
import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/io.dart';
import 'package:flutter_tools/src/base/net.dart'; import 'package:flutter_tools/src/base/net.dart';
...@@ -16,6 +15,7 @@ import 'package:flutter_tools/src/build_info.dart'; ...@@ -16,6 +15,7 @@ import 'package:flutter_tools/src/build_info.dart';
import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/commands/create.dart'; import 'package:flutter_tools/src/commands/create.dart';
import 'package:flutter_tools/src/dart/pub.dart'; import 'package:flutter_tools/src/dart/pub.dart';
import 'package:flutter_tools/src/dart/sdk.dart';
import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/features.dart';
import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/globals.dart' as globals;
import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/project.dart';
...@@ -830,11 +830,7 @@ void main() { ...@@ -830,11 +830,7 @@ void main() {
final String original = file.readAsStringSync(); final String original = file.readAsStringSync();
final Process process = await Process.start( final Process process = await Process.start(
globals.fs.path.join( sdkBinaryName('dartfmt'),
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath),
'bin',
globals.platform.isWindows ? 'dartfmt.bat' : 'dartfmt',
),
<String>[file.path], <String>[file.path],
workingDirectory: projectDir.path, workingDirectory: projectDir.path,
); );
...@@ -932,11 +928,7 @@ void main() { ...@@ -932,11 +928,7 @@ void main() {
final String original = file.readAsStringSync(); final String original = file.readAsStringSync();
final Process process = await Process.start( final Process process = await Process.start(
globals.fs.path.join( sdkBinaryName('dartfmt'),
globals.artifacts.getArtifactPath(Artifact.engineDartSdkPath),
'bin',
globals.platform.isWindows ? 'dartfmt.bat' : 'dartfmt',
),
<String>[file.path], <String>[file.path],
workingDirectory: projectDir.path, workingDirectory: projectDir.path,
); );
...@@ -1540,6 +1532,7 @@ Future<void> _ensureFlutterToolsSnapshot() async { ...@@ -1540,6 +1532,7 @@ Future<void> _ensureFlutterToolsSnapshot() async {
} }
final List<String> snapshotArgs = <String>[ final List<String> snapshotArgs = <String>[
...dartVmFlags,
'--snapshot=$flutterToolsSnapshotPath', '--snapshot=$flutterToolsSnapshotPath',
'--packages=$dotPackages', '--packages=$dotPackages',
flutterToolsPath, flutterToolsPath,
...@@ -1583,12 +1576,13 @@ Future<void> _analyzeProject(String workingDir) async { ...@@ -1583,12 +1576,13 @@ Future<void> _analyzeProject(String workingDir) async {
)); ));
final List<String> args = <String>[ final List<String> args = <String>[
...dartVmFlags,
flutterToolsSnapshotPath, flutterToolsSnapshotPath,
'analyze', 'analyze',
]; ];
final ProcessResult exec = await Process.run( final ProcessResult exec = await Process.run(
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), '$dartSdkPath/bin/dart',
args, args,
workingDirectory: workingDir, workingDirectory: workingDir,
); );
...@@ -1611,8 +1605,9 @@ Future<void> _runFlutterTest(Directory workingDir, { String target }) async { ...@@ -1611,8 +1605,9 @@ Future<void> _runFlutterTest(Directory workingDir, { String target }) async {
// While flutter test does get packages, it doesn't write version // While flutter test does get packages, it doesn't write version
// files anymore. // files anymore.
await Process.run( await Process.run(
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), '$dartSdkPath/bin/dart',
<String>[ <String>[
...dartVmFlags,
flutterToolsSnapshotPath, flutterToolsSnapshotPath,
'packages', 'packages',
'get', 'get',
...@@ -1621,6 +1616,7 @@ Future<void> _runFlutterTest(Directory workingDir, { String target }) async { ...@@ -1621,6 +1616,7 @@ Future<void> _runFlutterTest(Directory workingDir, { String target }) async {
); );
final List<String> args = <String>[ final List<String> args = <String>[
...dartVmFlags,
flutterToolsSnapshotPath, flutterToolsSnapshotPath,
'test', 'test',
'--no-color', '--no-color',
...@@ -1628,7 +1624,7 @@ Future<void> _runFlutterTest(Directory workingDir, { String target }) async { ...@@ -1628,7 +1624,7 @@ Future<void> _runFlutterTest(Directory workingDir, { String target }) async {
]; ];
final ProcessResult exec = await Process.run( final ProcessResult exec = await Process.run(
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), '$dartSdkPath/bin/dart',
args, args,
workingDirectory: workingDir.path, workingDirectory: workingDir.path,
); );
......
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'package:flutter_tools/src/artifacts.dart';
import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/io.dart';
import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/dart/sdk.dart';
import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/globals.dart' as globals;
import '../../src/common.dart'; import '../../src/common.dart';
...@@ -302,6 +302,7 @@ Future<ProcessResult> _runFlutterTest( ...@@ -302,6 +302,7 @@ Future<ProcessResult> _runFlutterTest(
} }
final List<String> args = <String>[ final List<String> args = <String>[
...dartVmFlags,
globals.fs.path.absolute(globals.fs.path.join('bin', 'flutter_tools.dart')), globals.fs.path.absolute(globals.fs.path.join('bin', 'flutter_tools.dart')),
'test', 'test',
'--no-color', '--no-color',
...@@ -318,7 +319,7 @@ Future<ProcessResult> _runFlutterTest( ...@@ -318,7 +319,7 @@ Future<ProcessResult> _runFlutterTest(
_testExclusionLock = testExclusionCompleter.future; _testExclusionLock = testExclusionCompleter.future;
try { try {
return await Process.run( return await Process.run(
globals.artifacts.getArtifactPath(Artifact.engineDartBinary), globals.fs.path.join(dartSdkPath, 'bin', 'dart'),
args, args,
workingDirectory: workingDirectory, workingDirectory: workingDirectory,
stdoutEncoding: utf8, stdoutEncoding: utf8,
......
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