diff options
author | isaacs <i@izs.me> | 2013-02-11 14:38:00 -0800 |
---|---|---|
committer | isaacs <i@izs.me> | 2013-02-19 14:14:37 -0800 |
commit | bafc51c0f9bbd178e347ff2ea9d110e2f1a4202e (patch) | |
tree | 228100de5629c92c4c6ffc2ee8a39fb1d1f73442 /benchmark/tls | |
parent | 8c719f7c71ed415d7c5e2952782d1352d14a9389 (diff) | |
download | android-node-v8-bafc51c0f9bbd178e347ff2ea9d110e2f1a4202e.tar.gz android-node-v8-bafc51c0f9bbd178e347ff2ea9d110e2f1a4202e.tar.bz2 android-node-v8-bafc51c0f9bbd178e347ff2ea9d110e2f1a4202e.zip |
bench: Move tls-connect into benchmark/tls
Also, make it work properly with current node.
Diffstat (limited to 'benchmark/tls')
-rw-r--r-- | benchmark/tls/tls-connect.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/benchmark/tls/tls-connect.js b/benchmark/tls/tls-connect.js new file mode 100644 index 0000000000..b3bd3e3c7a --- /dev/null +++ b/benchmark/tls/tls-connect.js @@ -0,0 +1,63 @@ +var assert = require('assert'), + fs = require('fs'), + path = require('path'), + tls = require('tls'); + +var common = require('../common.js'); +var bench = common.createBenchmark(main, { + concurrency: [1, 10], + dur: [1, 3] +}); + +var clientConn = 0; +var serverConn = 0; +var server; +var dur; +var concurrency; +var running = true; + +function main(conf) { + dur = +conf.dur; + concurrency = +conf.concurrency; + + var cert_dir = path.resolve(__dirname, '../../test/fixtures'), + options = { key: fs.readFileSync(cert_dir + '/test_key.pem'), + cert: fs.readFileSync(cert_dir + '/test_cert.pem'), + ca: [ fs.readFileSync(cert_dir + '/test_ca.pem') ] }; + + server = tls.createServer(options, onConnection); + server.listen(common.PORT, onListening); +} + +function onListening() { + setTimeout(done, dur * 1000); + bench.start(); + for (var i = 0; i < concurrency; i++) + makeConnection(); +} + +function onConnection(conn) { + serverConn++; +} + +function makeConnection() { + var conn = tls.connect({ port: common.PORT, + rejectUnauthorized: false }, function() { + clientConn++; + conn.on('error', function(er) { + console.error('client error', er); + throw er; + }); + conn.end(); + if (running) makeConnection(); + }); +} + +function done() { + running = false; + // it's only an established connection if they both saw it. + // because we destroy the server somewhat abruptly, these + // don't always match. Generally, serverConn will be + // the smaller number, but take the min just to be sure. + bench.end(Math.min(serverConn, clientConn)); +} |