Fix race conditions in test-http-upgrade-client2
This commit is contained in:
parent
4adadc38f4
commit
40f675b64b
@ -12,51 +12,55 @@ server.on('upgrade', function(req, socket, head) {
|
||||
socket.end();
|
||||
});
|
||||
});
|
||||
server.listen(8000);
|
||||
|
||||
var client = http.createClient(8000);
|
||||
|
||||
function upgradeRequest(fn) {
|
||||
var request = client.request('GET', '/', {
|
||||
'Connection': 'Upgrade',
|
||||
'Upgrade': 'Test'
|
||||
});
|
||||
|
||||
var wasUpgrade = false;
|
||||
|
||||
function onUpgrade(res, socket, head) {
|
||||
wasUpgrade = true;
|
||||
server.listen(common.PORT, function () {
|
||||
|
||||
var client = http.createClient(common.PORT);
|
||||
|
||||
function upgradeRequest(fn) {
|
||||
var request = client.request('GET', '/', {
|
||||
'Connection': 'Upgrade',
|
||||
'Upgrade': 'Test'
|
||||
});
|
||||
|
||||
client.removeListener('upgrade', onUpgrade);
|
||||
socket.end();
|
||||
}
|
||||
client.on('upgrade', onUpgrade);
|
||||
|
||||
function onEnd() {
|
||||
client.removeListener('end', onEnd);
|
||||
if (!wasUpgrade) {
|
||||
throw new Error('hasn\'t received upgrade event');
|
||||
} else {
|
||||
fn && process.nextTick(fn);
|
||||
var wasUpgrade = false;
|
||||
|
||||
function onUpgrade(res, socket, head) {
|
||||
wasUpgrade = true;
|
||||
|
||||
client.removeListener('upgrade', onUpgrade);
|
||||
socket.end();
|
||||
}
|
||||
client.on('upgrade', onUpgrade);
|
||||
|
||||
function onEnd() {
|
||||
client.removeListener('end', onEnd);
|
||||
if (!wasUpgrade) {
|
||||
throw new Error('hasn\'t received upgrade event');
|
||||
} else {
|
||||
fn && process.nextTick(fn);
|
||||
}
|
||||
}
|
||||
client.on('end', onEnd);
|
||||
|
||||
request.write('head');
|
||||
|
||||
}
|
||||
client.on('end', onEnd);
|
||||
|
||||
request.write('head');
|
||||
|
||||
}
|
||||
|
||||
successCount = 0;
|
||||
upgradeRequest(function() {
|
||||
successCount++;
|
||||
successCount = 0;
|
||||
upgradeRequest(function() {
|
||||
successCount++;
|
||||
// Test pass
|
||||
console.log('Pass!');
|
||||
client.end();
|
||||
client.destroy();
|
||||
server.close();
|
||||
upgradeRequest(function() {
|
||||
successCount++;
|
||||
// Test pass
|
||||
console.log('Pass!');
|
||||
client.end();
|
||||
client.destroy();
|
||||
server.close();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
process.on('exit', function () {
|
||||
|
Loading…
x
Reference in New Issue
Block a user