Skip to content

Commit 4324d46

Browse files
scheglovcommit-bot@chromium.org
authored andcommitted
Use an available socket port for memory benchmark.
R=devoncarew@google.com Change-Id: I96472010b6bfa01e0ae2254f105d8e71bb7e86d5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105683 Reviewed-by: Devon Carew <devoncarew@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
1 parent 0e4e14a commit 4324d46

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

pkg/analysis_server/benchmark/perf/memory_tests.dart

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'dart:async';
6+
import 'dart:io';
67

78
import 'package:analysis_server/protocol/protocol_generated.dart';
89
import 'package:analysis_server/src/status/diagnostics.dart';
@@ -15,10 +16,10 @@ import '../../test/integration/support/integration_tests.dart';
1516
*/
1617
class AnalysisServerMemoryUsageTest
1718
extends AbstractAnalysisServerIntegrationTest {
18-
static const int vmServicePort = 12345;
19+
int _vmServicePort;
1920

2021
Future<int> getMemoryUsage() async {
21-
Uri uri = Uri.parse('ws://127.0.0.1:$vmServicePort/ws');
22+
Uri uri = Uri.parse('ws://127.0.0.1:$_vmServicePort/ws');
2223
final ServiceProtocol service = await ServiceProtocol.connect(uri);
2324
final Map vm = await service.call('getVM');
2425

@@ -50,7 +51,9 @@ class AnalysisServerMemoryUsageTest
5051
* The server is automatically started before every test.
5152
*/
5253
@override
53-
Future setUp() {
54+
Future setUp() async {
55+
_vmServicePort = await _findAvailableSocketPort();
56+
5457
onAnalysisErrors.listen((AnalysisErrorsParams params) {
5558
currentAnalysisErrors[params.file] = params.errors;
5659
});
@@ -63,7 +66,7 @@ class AnalysisServerMemoryUsageTest
6366
outOfTestExpect(serverConnected.isCompleted, isFalse);
6467
serverConnected.complete();
6568
});
66-
return startServer(servicesPort: vmServicePort).then((_) {
69+
return startServer(servicesPort: _vmServicePort).then((_) {
6770
server.listenToOutput(dispatchNotification);
6871
server.exitCode.then((_) {
6972
skipShutdown = true;
@@ -84,4 +87,13 @@ class AnalysisServerMemoryUsageTest
8487
Future subscribeToStatusNotifications() async {
8588
await sendServerSetSubscriptions([ServerService.STATUS]);
8689
}
90+
91+
static Future<int> _findAvailableSocketPort() async {
92+
var socket = await ServerSocket.bind(InternetAddress.loopbackIPv4, 0);
93+
try {
94+
return socket.port;
95+
} finally {
96+
await socket.close();
97+
}
98+
}
8799
}

0 commit comments

Comments
 (0)