Version 2.15.0-74.0.dev
Merge commit '7ccf06ad6392d6105db6879a1acf13e883b71a46' into 'dev'
diff --git a/pkg/analysis_server/lib/src/analysis_server_abstract.dart b/pkg/analysis_server/lib/src/analysis_server_abstract.dart
index 4b28f5c..538236d 100644
--- a/pkg/analysis_server/lib/src/analysis_server_abstract.dart
+++ b/pkg/analysis_server/lib/src/analysis_server_abstract.dart
@@ -168,7 +168,9 @@
if (baseResourceProvider is PhysicalResourceProvider) {
processRunner ??= ProcessRunner();
}
- final pubCommand = processRunner != null
+ final pubCommand = processRunner != null &&
+ Platform.environment[PubCommand.disablePubCommandEnvironmentKey] ==
+ null
? PubCommand(instrumentationService, processRunner)
: null;
diff --git a/pkg/analysis_server/lib/src/services/pub/pub_command.dart b/pkg/analysis_server/lib/src/services/pub/pub_command.dart
index 5f24d1a..f6188e0 100644
--- a/pkg/analysis_server/lib/src/services/pub/pub_command.dart
+++ b/pkg/analysis_server/lib/src/services/pub/pub_command.dart
@@ -15,6 +15,15 @@
/// `pub` commands will be queued and not run concurrently.
class PubCommand {
static const String _pubEnvironmentKey = 'PUB_ENVIRONMENT';
+
+ /// An environment variable that can be set to prevent a [PubCommand] from
+ /// being created/used by the analysis server.
+ ///
+ /// This is generally intended for integration tests to prevent them spawning
+ /// pub commands while testing other functionality.
+ static const String disablePubCommandEnvironmentKey =
+ 'DART_SERVER_DISABLE_PUB_COMMAND';
+
final InstrumentationService _instrumentationService;
late final ProcessRunner _processRunner;
late final String _pubPath;
diff --git a/pkg/analysis_server/test/integration/lsp_server/integration_tests.dart b/pkg/analysis_server/test/integration/lsp_server/integration_tests.dart
index 6b05d1a..3022431 100644
--- a/pkg/analysis_server/test/integration/lsp_server/integration_tests.dart
+++ b/pkg/analysis_server/test/integration/lsp_server/integration_tests.dart
@@ -7,6 +7,7 @@
import 'package:analysis_server/lsp_protocol/protocol_generated.dart';
import 'package:analysis_server/src/lsp/channel/lsp_byte_stream_channel.dart';
+import 'package:analysis_server/src/services/pub/pub_command.dart';
import 'package:analyzer/instrumentation/instrumentation.dart';
import 'package:meta/meta.dart';
import 'package:path/path.dart';
@@ -164,7 +165,11 @@
}
final arguments = [...?vmArgs, serverPath, '--lsp', '--suppress-analytics'];
- final process = await Process.start(dartBinary, arguments);
+ final process = await Process.start(
+ dartBinary,
+ arguments,
+ environment: {PubCommand.disablePubCommandEnvironmentKey: 'true'},
+ );
_process = process;
process.exitCode.then((int code) {
if (code != 0) {
diff --git a/pkg/analysis_server/test/integration/support/integration_tests.dart b/pkg/analysis_server/test/integration/support/integration_tests.dart
index 4585df2..dd30a55 100644
--- a/pkg/analysis_server/test/integration/support/integration_tests.dart
+++ b/pkg/analysis_server/test/integration/support/integration_tests.dart
@@ -9,6 +9,7 @@
import 'package:analysis_server/protocol/protocol_constants.dart';
import 'package:analysis_server/protocol/protocol_generated.dart';
+import 'package:analysis_server/src/services/pub/pub_command.dart';
import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:path/path.dart' as path;
@@ -681,7 +682,11 @@
if (useAnalysisHighlight2) {
arguments.add('--useAnalysisHighlight2');
}
- _process = await Process.start(dartBinary, arguments);
+ _process = await Process.start(
+ dartBinary,
+ arguments,
+ environment: {PubCommand.disablePubCommandEnvironmentKey: 'true'},
+ );
_process.exitCode.then((int code) {
if (code != 0) {
_badDataFromServer('server terminated with exit code $code');
diff --git a/tools/VERSION b/tools/VERSION
index 08b82e6..8b74792 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 15
PATCH 0
-PRERELEASE 73
+PRERELEASE 74
PRERELEASE_PATCH 0
\ No newline at end of file