diff --git a/lib/client.js b/lib/client.js index 8fae5ff..07eb63b 100644 --- a/lib/client.js +++ b/lib/client.js @@ -9,7 +9,7 @@ function init(config,log){ connect : connect, emit : emit, log : log, - retriesRemaining:0 + retriesRemaining:config.maxRetries||0 } new pubsub(client); @@ -78,15 +78,19 @@ function connect(){ client.socket.on( 'close', function(){ - client.log('connection closed'.notice ,client.id.variable , client.path.variable); + client.log('connection closed'.notice ,client.id.variable , client.path.variable, client.retriesRemaining+' of '+client.config.maxRetries); - if(client.stopRetrying || client.retriesRemaining<1){ - if(client.config.maxRetries){ - client.log(client.config.id.variable,'exceeded connection rety amount of'.warn,client.config.stopRetrying, " or stopRetrying flag set."); - client.socket.destroy(); - client=undefined; - return; - } + if(client.config.stopRetrying || client.retriesRemaining<1){ + client.log( + client.config.id.variable, + 'exceeded connection rety amount of'.warn, + " or stopRetrying flag set." + ); + + client.socket.destroy(); + client=undefined; + + return; } client.isRetrying=true; diff --git a/testHarness/test.js b/testHarness/test.js index 4c46c8c..c694da1 100644 --- a/testHarness/test.js +++ b/testHarness/test.js @@ -4,7 +4,8 @@ var ipc = require('../node-ipc'), tests = {}, testCount=0, fails=[], - passes=[]; + passes=[], + debug=true; ipc.config.id = 'testHarness'; @@ -161,5 +162,6 @@ function checkComplete(){ ipc.log('####################################\n\n FAILS\n\n####################################\n\n'.warn,fails.join('\n').warn,'\n\n'); ipc.log('####################################\n\n PASS/FAIL COUNT\n\n####################################\n\n'.data,(passes.length+' ').good,(fails.length+' ').warn,'\n\n'); - process.exit(0); + if(!debug) + process.exit(0); } \ No newline at end of file diff --git a/testHarness/tests/unix-socket-test/client.js b/testHarness/tests/unix-socket-test/client.js index 133556f..9d4689a 100644 --- a/testHarness/tests/unix-socket-test/client.js +++ b/testHarness/tests/unix-socket-test/client.js @@ -3,7 +3,7 @@ var ipc = require('../../../node-ipc'), server=server[server.length-1] ipc.config.id = server+'-client'; -ipc.config.maxRetries=1; +ipc.config.maxRetries=50; ipc.connectTo( server, @@ -18,7 +18,21 @@ ipc.connectTo( } ); - process.exit(); + //wait to ensure above event has opportunity to tranfer and register client properly + setTimeout( + function(){ + ipc.disconnect(server); + }, + 100 + ); + + //wait long enough that the test will fail if disconnect does not happen + setTimeout( + function(){ + process.exit(0); + }, + 2000 + ) } ); } diff --git a/testHarness/tests/unix-socket-test/server.js b/testHarness/tests/unix-socket-test/server.js index c3bef24..690a0de 100644 --- a/testHarness/tests/unix-socket-test/server.js +++ b/testHarness/tests/unix-socket-test/server.js @@ -1,4 +1,5 @@ -var ipc = require('../../../node-ipc'); +var ipc = require('../../../node-ipc'), + expectedClient=ipc.config.id+'-client'; ipc.config.id = __dirname.split('/'); ipc.config.id = ipc.config.id[ipc.config.id.length-1] @@ -10,68 +11,74 @@ ipc.connectTo( ipc.of.testHarness.on( 'connect', function(){ - console.log(ipc.of) ipc.of.testHarness.emit( 'start.test', { id : ipc.config.id, - duration: 2000 + duration: 1200 } ); - - ipc.serve( - function(){ - - } - ); - - ipc.server.on( - 'connect', - function(){ - ipc.of.testHarness.emit( - 'pass', - 'unix-server-connection' - ); - } - ) - - ipc.server.on( - 'socket.disconnected', - function(socket,id){ - var test='unix-server-detected-correct-id-disconnection'; - if(id==ipc.config.id+'-client'){ - ipc.of.testHarness.emit( - 'pass', - test - ); - }else{ - ipc.of.testHarness.emit( - 'fail', - test - ); - } - ipc.of.testHarness.emit( - 'end.test' - ); - - process.exit(0); - } - ) - - ipc.server.on( - 'test-test', - function(data,socket){ - ipc.of.testHarness.emit( - 'pass', - 'unix-client-message' - ); - } - ); - - ipc.server.define.listen['app.message']='This event type listens for message strings as value of data key.'; - - ipc.server.start(); } ) } -); \ No newline at end of file +); + +ipc.serve( + function(){ + + } +); + +ipc.server.on( + 'connect', + function(){ + ipc.of.testHarness.emit( + 'pass', + 'unix-server-connection' + ); + } +) + +ipc.server.on( + 'socket.disconnected', + function(socket,id){ + var test='unix-server-detected-correct-id-disconnection'; + if(id==ipc.config.id+'-client'){ + ipc.of.testHarness.emit( + 'pass', + test + ); + }else{ + ipc.of.testHarness.emit( + 'fail', + test+' : detected wrong id of '+id + ); + } + ipc.of.testHarness.emit( + 'end.test' + ); + + process.exit(0); + } +) + +ipc.server.on( + 'test-test', + function(data,socket){ + ipc.of.testHarness.emit( + 'pass', + 'unix-client-message' + ); + + if(socket.id==expectedClient){ + ipc.of.testHarness.emit( + 'pass', + 'unix-client-registered with proper id' + ); + } + } +); + +ipc.server.define.listen['app.message']='This event type listens for message strings as value of data key.'; + +ipc.server.start(); \ No newline at end of file