diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2011-01-31 16:38:05 -0800 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2011-01-31 16:38:05 -0800 |
commit | 33e8e3d799f7b04991728218bb1c411e01ffcfe2 (patch) | |
tree | 53d435187e6df21eb6a1c55ca3858406bed2e366 /test | |
parent | 45b30a879bfec50107913baefe451055953881fb (diff) | |
download | nodejs-33e8e3d799f7b04991728218bb1c411e01ffcfe2.tar.gz nodejs-33e8e3d799f7b04991728218bb1c411e01ffcfe2.tar.bz2 nodejs-33e8e3d799f7b04991728218bb1c411e01ffcfe2.zip |
Add simpler failing tls throttle test
Diffstat (limited to 'test')
-rw-r--r-- | test/simple/test-tls-throttle.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/test/simple/test-tls-throttle.js b/test/simple/test-tls-throttle.js new file mode 100644 index 000000000..8d009ec96 --- /dev/null +++ b/test/simple/test-tls-throttle.js @@ -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); +}); |