2013-08-21 07:04:36 +00:00
|
|
|
// Copyright (c) 2013, 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.
|
|
|
|
//
|
|
|
|
// VMOptions=
|
|
|
|
// VMOptions=--short_socket_read
|
|
|
|
// VMOptions=--short_socket_write
|
|
|
|
// VMOptions=--short_socket_read --short_socket_write
|
|
|
|
|
|
|
|
import "dart:async";
|
|
|
|
import "dart:io";
|
|
|
|
import "dart:isolate";
|
|
|
|
|
|
|
|
void testTimeoutAfterRequest() {
|
|
|
|
HttpServer.bind("127.0.0.1", 0).then((server) {
|
2013-08-21 07:44:09 +00:00
|
|
|
server.idleTimeout = null;
|
2013-08-21 07:04:36 +00:00
|
|
|
|
2013-08-21 07:44:09 +00:00
|
|
|
server.listen((request) {
|
|
|
|
server.idleTimeout = const Duration(milliseconds: 100);
|
|
|
|
request.response.close();
|
|
|
|
});
|
2013-08-21 07:04:36 +00:00
|
|
|
|
|
|
|
Socket.connect("127.0.0.1", server.port).then((socket) {
|
|
|
|
var data = "GET / HTTP/1.1\r\nContent-Length: 0\r\n\r\n";
|
|
|
|
socket.write(data);
|
2017-04-17 21:52:57 +00:00
|
|
|
socket.listen(null, onDone: () {
|
|
|
|
socket.close();
|
|
|
|
server.close();
|
|
|
|
});
|
2013-08-21 07:04:36 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
void testTimeoutBeforeRequest() {
|
|
|
|
HttpServer.bind("127.0.0.1", 0).then((server) {
|
|
|
|
server.idleTimeout = const Duration(milliseconds: 100);
|
|
|
|
|
|
|
|
server.listen((request) => request.response.close());
|
|
|
|
|
|
|
|
Socket.connect("127.0.0.1", server.port).then((socket) {
|
2017-04-17 21:52:57 +00:00
|
|
|
socket.listen(null, onDone: () {
|
|
|
|
socket.close();
|
|
|
|
server.close();
|
|
|
|
});
|
2013-08-21 07:04:36 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
void main() {
|
|
|
|
testTimeoutAfterRequest();
|
|
|
|
testTimeoutBeforeRequest();
|
|
|
|
}
|