0
0
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:
Ryan Dahl 2010-08-10 17:37:30 -07:00
parent 3d551e5538
commit 9395786d11
3 changed files with 56 additions and 57 deletions

View File

@ -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);

View File

@ -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);

View File

@ -54,4 +54,4 @@ server.on("close", function () {
timer = setTimeout(function () {
throw new Error("Timeout");
}, 200);
}, 500);