diff options
Diffstat (limited to 'signaling-server/node_modules/socket.io/node_modules/redis/benches/hiredis_parser.js')
-rw-r--r-- | signaling-server/node_modules/socket.io/node_modules/redis/benches/hiredis_parser.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/signaling-server/node_modules/socket.io/node_modules/redis/benches/hiredis_parser.js b/signaling-server/node_modules/socket.io/node_modules/redis/benches/hiredis_parser.js new file mode 100644 index 0000000..f1515b1 --- /dev/null +++ b/signaling-server/node_modules/socket.io/node_modules/redis/benches/hiredis_parser.js @@ -0,0 +1,38 @@ +var Parser = require('../lib/parser/hiredis').Parser; +var assert = require('assert'); + +/* +This test makes sure that exceptions thrown inside of "reply" event handlers +are not trapped and mistakenly emitted as parse errors. +*/ +(function testExecuteDoesNotCatchReplyCallbackExceptions() { + var parser = new Parser(); + var replies = [{}]; + + parser.reader = { + feed: function() {}, + get: function() { + return replies.shift(); + } + }; + + var emittedError = false; + var caughtException = false; + + parser + .on('error', function() { + emittedError = true; + }) + .on('reply', function() { + throw new Error('bad'); + }); + + try { + parser.execute(); + } catch (err) { + caughtException = true; + } + + assert.equal(caughtException, true); + assert.equal(emittedError, false); +})(); |