mirror of https://github.com/lukechilds/node.git
Ryan Dahl
14 years ago
1 changed files with 61 additions and 0 deletions
@ -0,0 +1,61 @@ |
|||
// Server sends a large string. Client counts bytes and pauses every few
|
|||
// seconds. Makes sure that pause and resume work properly.
|
|||
var common = require('../common'); |
|||
var assert = require('assert'); |
|||
var tls = require('tls'); |
|||
var fs = require('fs'); |
|||
|
|||
|
|||
var body = ''; |
|||
|
|||
process.stdout.write('build body...'); |
|||
for (var i = 0; i < 1024*1024; i++) { |
|||
body += 'hello world\n'; |
|||
} |
|||
process.stdout.write('done\n'); |
|||
|
|||
|
|||
var options = { |
|||
key: fs.readFileSync(common.fixturesDir + '/keys/agent2-key.pem'), |
|||
cert: fs.readFileSync(common.fixturesDir + '/keys/agent2-cert.pem') |
|||
}; |
|||
|
|||
var connections = 0; |
|||
|
|||
|
|||
var server = tls.Server(options, function(socket) { |
|||
socket.end(body); |
|||
connections++; |
|||
}); |
|||
|
|||
var recvCount = 0; |
|||
|
|||
server.listen(common.PORT, function() { |
|||
var client = tls.connect(common.PORT); |
|||
|
|||
client.on('data', function(d) { |
|||
recvCount += d.length; |
|||
|
|||
client.pause(); |
|||
process.nextTick(function () { |
|||
client.resume(); |
|||
}); |
|||
}); |
|||
|
|||
|
|||
client.on('close', function() { |
|||
server.close(); |
|||
clearTimeout(timeout); |
|||
}); |
|||
}); |
|||
|
|||
|
|||
var timeout = setTimeout(function() { |
|||
process.exit(1); |
|||
}, 10*1000); |
|||
|
|||
|
|||
process.on('exit', function() { |
|||
assert.equal(1, connections); |
|||
assert.equal(body.length, recvCount); |
|||
}); |
Loading…
Reference in new issue