Skip to content

Commit 760722f

Browse files
author
Dart CI
committed
Version 2.17.0-266.0.dev
Merge commit '2ebad4841ff854891916b55ba6b295b138434888' into 'dev'
2 parents 2271a79 + 2ebad48 commit 760722f

File tree

7 files changed

+142
-93
lines changed

7 files changed

+142
-93
lines changed

pkg/analysis_server/lib/src/domain_server.dart

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
import 'package:analysis_server/protocol/protocol.dart';
66
import 'package:analysis_server/protocol/protocol_constants.dart';
7-
import 'package:analysis_server/protocol/protocol_generated.dart';
87
import 'package:analysis_server/src/analysis_server.dart';
8+
import 'package:analysis_server/src/handler/legacy/server_cancel_request.dart';
9+
import 'package:analysis_server/src/handler/legacy/server_get_version.dart';
10+
import 'package:analysis_server/src/handler/legacy/server_set_subscriptions.dart';
911
import 'package:analysis_server/src/handler/legacy/server_shutdown.dart';
1012
import 'package:analysis_server/src/utilities/progress.dart';
1113

@@ -19,51 +21,28 @@ class ServerDomainHandler implements RequestHandler {
1921
/// [server].
2022
ServerDomainHandler(this.server);
2123

22-
Response cancelRequest(Request request) {
23-
final id = ServerCancelRequestParams.fromRequest(request).id;
24-
server.cancelRequest(id);
25-
26-
return ServerCancelRequestResult().toResponse(request.id);
27-
}
28-
29-
/// Return the version number of the analysis server.
30-
Response getVersion(Request request) {
31-
return ServerGetVersionResult(
32-
server.options.reportProtocolVersion ?? PROTOCOL_VERSION,
33-
).toResponse(request.id);
34-
}
35-
3624
@override
3725
Response? handleRequest(
3826
Request request, CancellationToken cancellationToken) {
3927
try {
4028
var requestName = request.method;
4129
if (requestName == SERVER_REQUEST_GET_VERSION) {
42-
return getVersion(request);
30+
ServerGetVersionHandler(server, request, cancellationToken).handle();
31+
return Response.DELAYED_RESPONSE;
4332
} else if (requestName == SERVER_REQUEST_SET_SUBSCRIPTIONS) {
44-
return setSubscriptions(request);
33+
ServerSetSubscriptionsHandler(server, request, cancellationToken)
34+
.handle();
35+
return Response.DELAYED_RESPONSE;
4536
} else if (requestName == SERVER_REQUEST_SHUTDOWN) {
4637
ServerShutdownHandler(server, request, cancellationToken).handle();
4738
return Response.DELAYED_RESPONSE;
4839
} else if (requestName == SERVER_REQUEST_CANCEL_REQUEST) {
49-
return cancelRequest(request);
40+
ServerCancelRequestHandler(server, request, cancellationToken).handle();
41+
return Response.DELAYED_RESPONSE;
5042
}
5143
} on RequestFailure catch (exception) {
5244
return exception.response;
5345
}
5446
return null;
5547
}
56-
57-
/// Subscribe for services.
58-
///
59-
/// All previous subscriptions are replaced by the given set of subscriptions.
60-
Response setSubscriptions(Request request) {
61-
server.serverServices =
62-
ServerSetSubscriptionsParams.fromRequest(request).subscriptions.toSet();
63-
64-
server.requestStatistics?.isNotificationSubscribed =
65-
server.serverServices.contains(ServerService.LOG);
66-
67-
return ServerSetSubscriptionsResult().toResponse(request.id);
68-
}
6948
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'dart:async';
6+
7+
import 'package:analysis_server/protocol/protocol.dart';
8+
import 'package:analysis_server/protocol/protocol_generated.dart';
9+
import 'package:analysis_server/src/analysis_server.dart';
10+
import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
11+
import 'package:analysis_server/src/utilities/progress.dart';
12+
13+
/// The handler for the `server.cancelRequest` request.
14+
class ServerCancelRequestHandler extends LegacyHandler {
15+
/// Initialize a newly created handler to be able to service requests for the
16+
/// [server].
17+
ServerCancelRequestHandler(AnalysisServer server, Request request,
18+
CancellationToken cancellationToken)
19+
: super(server, request, cancellationToken);
20+
21+
@override
22+
Future<void> handle() async {
23+
final id = ServerCancelRequestParams.fromRequest(request).id;
24+
server.cancelRequest(id);
25+
sendResult(ServerCancelRequestResult());
26+
}
27+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'dart:async';
6+
7+
import 'package:analysis_server/protocol/protocol.dart';
8+
import 'package:analysis_server/protocol/protocol_constants.dart';
9+
import 'package:analysis_server/protocol/protocol_generated.dart';
10+
import 'package:analysis_server/src/analysis_server.dart';
11+
import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
12+
import 'package:analysis_server/src/utilities/progress.dart';
13+
14+
/// The handler for the `server.getVersion` request.
15+
class ServerGetVersionHandler extends LegacyHandler {
16+
/// Initialize a newly created handler to be able to service requests for the
17+
/// [server].
18+
ServerGetVersionHandler(AnalysisServer server, Request request,
19+
CancellationToken cancellationToken)
20+
: super(server, request, cancellationToken);
21+
22+
@override
23+
Future<void> handle() async {
24+
sendResult(ServerGetVersionResult(
25+
server.options.reportProtocolVersion ?? PROTOCOL_VERSION,
26+
));
27+
}
28+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'dart:async';
6+
7+
import 'package:analysis_server/protocol/protocol.dart';
8+
import 'package:analysis_server/protocol/protocol_generated.dart';
9+
import 'package:analysis_server/src/analysis_server.dart';
10+
import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
11+
import 'package:analysis_server/src/utilities/progress.dart';
12+
13+
/// The handler for the `server.setSubscriptions` request.
14+
class ServerSetSubscriptionsHandler extends LegacyHandler {
15+
/// Initialize a newly created handler to be able to service requests for the
16+
/// [server].
17+
ServerSetSubscriptionsHandler(AnalysisServer server, Request request,
18+
CancellationToken cancellationToken)
19+
: super(server, request, cancellationToken);
20+
21+
@override
22+
Future<void> handle() async {
23+
try {
24+
server.serverServices = ServerSetSubscriptionsParams.fromRequest(request)
25+
.subscriptions
26+
.toSet();
27+
server.requestStatistics?.isNotificationSubscribed =
28+
server.serverServices.contains(ServerService.LOG);
29+
} on RequestFailure catch (exception) {
30+
sendResponse(exception.response);
31+
return;
32+
}
33+
sendResult(ServerSetSubscriptionsResult());
34+
}
35+
}

pkg/analysis_server/test/domain_server_test.dart

Lines changed: 39 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -5,74 +5,52 @@
55
import 'package:analysis_server/protocol/protocol.dart';
66
import 'package:analysis_server/protocol/protocol_constants.dart';
77
import 'package:analysis_server/protocol/protocol_generated.dart';
8-
import 'package:analysis_server/src/analysis_server.dart';
9-
import 'package:analysis_server/src/domain_server.dart';
10-
import 'package:analysis_server/src/server/crash_reporting_attachments.dart';
11-
import 'package:analysis_server/src/utilities/mocks.dart';
12-
import 'package:analysis_server/src/utilities/progress.dart';
13-
import 'package:analyzer/file_system/memory_file_system.dart';
14-
import 'package:analyzer/instrumentation/instrumentation.dart';
15-
import 'package:analyzer/src/generated/sdk.dart';
168
import 'package:test/test.dart';
9+
import 'package:test_reflective_loader/test_reflective_loader.dart';
1710

11+
import 'analysis_server_base.dart';
1812
import 'constants.dart';
1913
import 'mocks.dart';
2014

2115
void main() {
22-
late AnalysisServer server;
23-
late ServerDomainHandler handler;
24-
late MockServerChannel serverChannel;
25-
26-
setUp(() {
27-
serverChannel = MockServerChannel();
28-
var resourceProvider = MemoryResourceProvider();
29-
server = AnalysisServer(
30-
serverChannel,
31-
resourceProvider,
32-
AnalysisServerOptions(),
33-
DartSdkManager(''),
34-
CrashReportingAttachmentsBuilder.empty,
35-
InstrumentationService.NULL_SERVICE);
36-
handler = ServerDomainHandler(server);
16+
defineReflectiveSuite(() {
17+
defineReflectiveTests(ServerDomainTest);
3718
});
19+
}
3820

39-
group('ServerDomainHandler', () {
40-
test('getVersion', () {
41-
var request = ServerGetVersionParams().toRequest('0');
42-
var response = handler.handleRequest(request, NotCancelableToken())!;
43-
expect(
44-
response.toJson(),
45-
equals({
46-
Response.ID: '0',
47-
Response.RESULT: {VERSION: PROTOCOL_VERSION}
48-
}));
49-
});
50-
51-
group('setSubscriptions', () {
52-
test('invalid service name', () {
53-
var request = Request('0', SERVER_REQUEST_SET_SUBSCRIPTIONS, {
54-
SUBSCRIPTIONS: ['noSuchService']
55-
});
56-
var response = handler.handleRequest(request, NotCancelableToken());
57-
expect(response, isResponseFailure('0'));
58-
});
59-
60-
test('success', () {
61-
expect(server.serverServices, isEmpty);
62-
// send request
63-
var request =
64-
ServerSetSubscriptionsParams([ServerService.STATUS]).toRequest('0');
65-
var response = handler.handleRequest(request, NotCancelableToken());
66-
expect(response, isResponseSuccess('0'));
67-
// set of services has been changed
68-
expect(server.serverServices, contains(ServerService.STATUS));
69-
});
70-
});
71-
72-
test('shutdown', () async {
73-
var request = ServerShutdownParams().toRequest('0');
74-
var response = await serverChannel.sendRequest(request);
75-
expect(response, isResponseSuccess('0'));
21+
@reflectiveTest
22+
class ServerDomainTest extends PubPackageAnalysisServerTest {
23+
Future<void> test_getVersion() async {
24+
var request = ServerGetVersionParams().toRequest('0');
25+
var response = await handleSuccessfulRequest(request);
26+
expect(
27+
response.toJson(),
28+
equals({
29+
Response.ID: '0',
30+
Response.RESULT: {VERSION: PROTOCOL_VERSION}
31+
}));
32+
}
33+
34+
Future<void> test_setSubscriptions_invalidServiceName() async {
35+
var request = Request('0', SERVER_REQUEST_SET_SUBSCRIPTIONS, {
36+
SUBSCRIPTIONS: ['noSuchService']
7637
});
77-
});
38+
var response = await handleRequest(request);
39+
expect(response, isResponseFailure('0'));
40+
}
41+
42+
Future<void> test_setSubscriptions_success() async {
43+
expect(server.serverServices, isEmpty);
44+
// send request
45+
var request =
46+
ServerSetSubscriptionsParams([ServerService.STATUS]).toRequest('0');
47+
await handleSuccessfulRequest(request);
48+
// set of services has been changed
49+
expect(server.serverServices, contains(ServerService.STATUS));
50+
}
51+
52+
Future<void> test_shutdown() async {
53+
var request = ServerShutdownParams().toRequest('0');
54+
await handleSuccessfulRequest(request);
55+
}
7856
}

pkg/pkg.status

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@ vm_service/test/*: SkipByDesign # Uses dart:io
145145
vm_snapshot_analysis/test/*: SkipByDesign # Only meant to run on vm
146146

147147
[ $system == windows ]
148+
dds/test/devtools_server/devtools_server_connection_test: Pass, Slow
149+
dds/test/devtools_server/devtools_server_test: Pass, Slow
148150
front_end/test/fasta/bootstrap_test: Skip # Issue 31902
149151
front_end/test/fasta/strong_test: Pass, Slow, Timeout
150152
front_end/test/fasta/text_serialization_test: Pass, Slow, Timeout

tools/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ CHANNEL dev
2727
MAJOR 2
2828
MINOR 17
2929
PATCH 0
30-
PRERELEASE 265
30+
PRERELEASE 266
3131
PRERELEASE_PATCH 0

0 commit comments

Comments
 (0)