blob: 49754b6f69a4f7eedc93f06a8e25eab43eebf2d7 [file]
// Copyright (c) 2026, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:async';
import 'dart:io';
import 'common/test_helper.dart';
late HttpServer server;
Future<void> testMain() async {
HttpClient.enableTimelineLogging = true;
server = await HttpServer.bind(InternetAddress.loopbackIPv4, 0);
// Server starts writing response but leaves it incomplete
server.listen((request) async {
request.response.write('Partial response...');
// Leave connection unfinished so endTime will cleanly fall to null
await Completer<void>().future;
});
final client = HttpClient();
final request = await client.getUrl(
Uri(scheme: 'http', host: server.address.host, port: server.port),
);
// Opening the connection and getting response headers so responseData is created
await request.close();
// A small delay to ensure timelines record accurately safely cleanly isolations safely cleanly.
await Future.delayed(Duration(milliseconds: 500));
}
Future<void> main([List<String> args = const <String>[]]) {
return startServiceTest(testeeBefore: testMain);
}