mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
Fix race conditions in tests
This commit is contained in:
parent
3d551e5538
commit
9395786d11
@ -1,36 +1,37 @@
|
||||
common = require("../common");
|
||||
assert = common.assert
|
||||
|
||||
var tcp = require("tcp"),
|
||||
var net = require("net"),
|
||||
sys = require("sys"),
|
||||
http = require("http");
|
||||
|
||||
var errorCount = 0;
|
||||
var eofCount = 0;
|
||||
|
||||
var server = tcp.createServer(function(socket) {
|
||||
var server = net.createServer(function(socket) {
|
||||
socket.end();
|
||||
});
|
||||
server.on('listening', function(){
|
||||
var client = http.createClient(common.PORT);
|
||||
|
||||
client.addListener("error", function(err) {
|
||||
console.log("ERROR! "+(err.stack||err));
|
||||
errorCount++;
|
||||
});
|
||||
|
||||
client.addListener("end", function() {
|
||||
console.log("EOF!");
|
||||
eofCount++;
|
||||
});
|
||||
|
||||
var request = client.request("GET", "/", {"host": "localhost"});
|
||||
request.end();
|
||||
request.addListener('response', function(response) {
|
||||
console.log("STATUS: " + response.statusCode);
|
||||
});
|
||||
});
|
||||
server.listen(common.PORT);
|
||||
|
||||
var client = http.createClient(common.PORT);
|
||||
|
||||
client.addListener("error", function() {
|
||||
console.log("ERROR!");
|
||||
errorCount++;
|
||||
});
|
||||
|
||||
client.addListener("end", function() {
|
||||
console.log("EOF!");
|
||||
eofCount++;
|
||||
});
|
||||
|
||||
var request = client.request("GET", "/", {"host": "localhost"});
|
||||
request.end();
|
||||
request.addListener('response', function(response) {
|
||||
console.log("STATUS: " + response.statusCode);
|
||||
});
|
||||
|
||||
setTimeout(function () {
|
||||
server.close();
|
||||
}, 500);
|
||||
|
@ -1,7 +1,8 @@
|
||||
common = require("../common");
|
||||
assert = common.assert
|
||||
net = require("net");
|
||||
N = 200;
|
||||
var common = require("../common");
|
||||
var assert = common.assert;
|
||||
var net = require("net");
|
||||
var N = 200;
|
||||
var recv = "", chars_recved = 0;
|
||||
|
||||
server = net.createServer(function (connection) {
|
||||
function write (j) {
|
||||
@ -16,38 +17,35 @@ server = net.createServer(function (connection) {
|
||||
}
|
||||
write(0);
|
||||
});
|
||||
server.listen(common.PORT);
|
||||
server.on('listening', function(){
|
||||
client = net.createConnection(common.PORT);
|
||||
client.setEncoding("ascii");
|
||||
client.addListener("data", function (d) {
|
||||
print(d);
|
||||
recv += d;
|
||||
});
|
||||
|
||||
|
||||
recv = "";
|
||||
chars_recved = 0;
|
||||
|
||||
client = net.createConnection(common.PORT);
|
||||
client.setEncoding("ascii");
|
||||
client.addListener("data", function (d) {
|
||||
print(d);
|
||||
recv += d;
|
||||
});
|
||||
|
||||
setTimeout(function () {
|
||||
chars_recved = recv.length;
|
||||
console.log("pause at: " + chars_recved);
|
||||
assert.equal(true, chars_recved > 1);
|
||||
client.pause();
|
||||
setTimeout(function () {
|
||||
console.log("resume at: " + chars_recved);
|
||||
assert.equal(chars_recved, recv.length);
|
||||
client.resume();
|
||||
|
||||
chars_recved = recv.length;
|
||||
console.log("pause at: " + chars_recved);
|
||||
assert.equal(true, chars_recved > 1);
|
||||
client.pause();
|
||||
setTimeout(function () {
|
||||
chars_recved = recv.length;
|
||||
console.log("pause at: " + chars_recved);
|
||||
client.pause();
|
||||
console.log("resume at: " + chars_recved);
|
||||
assert.equal(chars_recved, recv.length);
|
||||
client.resume();
|
||||
|
||||
setTimeout(function () {
|
||||
console.log("resume at: " + chars_recved);
|
||||
assert.equal(chars_recved, recv.length);
|
||||
client.resume();
|
||||
chars_recved = recv.length;
|
||||
console.log("pause at: " + chars_recved);
|
||||
client.pause();
|
||||
|
||||
setTimeout(function () {
|
||||
console.log("resume at: " + chars_recved);
|
||||
assert.equal(chars_recved, recv.length);
|
||||
client.resume();
|
||||
|
||||
}, 500);
|
||||
|
||||
}, 500);
|
||||
|
||||
@ -55,12 +53,12 @@ setTimeout(function () {
|
||||
|
||||
}, 500);
|
||||
|
||||
}, 500);
|
||||
|
||||
client.addListener("end", function () {
|
||||
server.close();
|
||||
client.end();
|
||||
client.addListener("end", function () {
|
||||
server.close();
|
||||
client.end();
|
||||
});
|
||||
});
|
||||
server.listen(common.PORT);
|
||||
|
||||
process.addListener("exit", function () {
|
||||
assert.equal(N, recv.length);
|
||||
|
@ -54,4 +54,4 @@ server.on("close", function () {
|
||||
|
||||
timer = setTimeout(function () {
|
||||
throw new Error("Timeout");
|
||||
}, 200);
|
||||
}, 500);
|
||||
|
Loading…
Reference in New Issue
Block a user