Fix race conditions in tests
This commit is contained in:
parent
3d551e5538
commit
9395786d11
@ -1,36 +1,37 @@
|
|||||||
common = require("../common");
|
common = require("../common");
|
||||||
assert = common.assert
|
assert = common.assert
|
||||||
|
|
||||||
var tcp = require("tcp"),
|
var net = require("net"),
|
||||||
sys = require("sys"),
|
sys = require("sys"),
|
||||||
http = require("http");
|
http = require("http");
|
||||||
|
|
||||||
var errorCount = 0;
|
var errorCount = 0;
|
||||||
var eofCount = 0;
|
var eofCount = 0;
|
||||||
|
|
||||||
var server = tcp.createServer(function(socket) {
|
var server = net.createServer(function(socket) {
|
||||||
socket.end();
|
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);
|
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 () {
|
setTimeout(function () {
|
||||||
server.close();
|
server.close();
|
||||||
}, 500);
|
}, 500);
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
common = require("../common");
|
var common = require("../common");
|
||||||
assert = common.assert
|
var assert = common.assert;
|
||||||
net = require("net");
|
var net = require("net");
|
||||||
N = 200;
|
var N = 200;
|
||||||
|
var recv = "", chars_recved = 0;
|
||||||
|
|
||||||
server = net.createServer(function (connection) {
|
server = net.createServer(function (connection) {
|
||||||
function write (j) {
|
function write (j) {
|
||||||
@ -16,38 +17,35 @@ server = net.createServer(function (connection) {
|
|||||||
}
|
}
|
||||||
write(0);
|
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 () {
|
setTimeout(function () {
|
||||||
console.log("resume at: " + chars_recved);
|
chars_recved = recv.length;
|
||||||
assert.equal(chars_recved, recv.length);
|
console.log("pause at: " + chars_recved);
|
||||||
client.resume();
|
assert.equal(true, chars_recved > 1);
|
||||||
|
client.pause();
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
chars_recved = recv.length;
|
console.log("resume at: " + chars_recved);
|
||||||
console.log("pause at: " + chars_recved);
|
assert.equal(chars_recved, recv.length);
|
||||||
client.pause();
|
client.resume();
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
console.log("resume at: " + chars_recved);
|
chars_recved = recv.length;
|
||||||
assert.equal(chars_recved, recv.length);
|
console.log("pause at: " + chars_recved);
|
||||||
client.resume();
|
client.pause();
|
||||||
|
|
||||||
|
setTimeout(function () {
|
||||||
|
console.log("resume at: " + chars_recved);
|
||||||
|
assert.equal(chars_recved, recv.length);
|
||||||
|
client.resume();
|
||||||
|
|
||||||
|
}, 500);
|
||||||
|
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
||||||
@ -55,12 +53,12 @@ setTimeout(function () {
|
|||||||
|
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
||||||
}, 500);
|
client.addListener("end", function () {
|
||||||
|
server.close();
|
||||||
client.addListener("end", function () {
|
client.end();
|
||||||
server.close();
|
});
|
||||||
client.end();
|
|
||||||
});
|
});
|
||||||
|
server.listen(common.PORT);
|
||||||
|
|
||||||
process.addListener("exit", function () {
|
process.addListener("exit", function () {
|
||||||
assert.equal(N, recv.length);
|
assert.equal(N, recv.length);
|
||||||
|
@ -54,4 +54,4 @@ server.on("close", function () {
|
|||||||
|
|
||||||
timer = setTimeout(function () {
|
timer = setTimeout(function () {
|
||||||
throw new Error("Timeout");
|
throw new Error("Timeout");
|
||||||
}, 200);
|
}, 500);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user