// Copyright 2022 The Chromium 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 'package:test/test.dart'; import 'utils/server_driver.dart'; late final DevToolsServerTestController testController; void main() { testController = DevToolsServerTestController(); setUp(() async { await testController.setUp(); }); tearDown(() async { await testController.tearDown(); }); test('can bind to next available port', () async { final server1 = await DevToolsServerDriver.create(port: 8855); try { // Wait for the first server to start up and ensure it got the // expected port. final event1 = (await server1.stdout.firstWhere( (map) => map!['event'] == 'server.started', ))!; expect(event1['params']['port'], 8855); // Now spawn another requesting the same port and ensure it got the next // port number. final server2 = await DevToolsServerDriver.create( port: 8855, tryPorts: 2, ); try { final event2 = (await server2.stdout.firstWhere( (map) => map!['event'] == 'server.started', ))!; expect(event2['params']['port'], 8856); } finally { server2.kill(); } } finally { server1.kill(); } }, timeout: const Timeout.factor(10)); }