diff options
author | Artur G Vieira <vieira.artur.g@gmail.com> | 2017-05-15 03:38:54 +0000 |
---|---|---|
committer | Refael Ackermann <refack@gmail.com> | 2017-05-20 08:08:13 -0400 |
commit | c60a7fa7383a983a0348e8876fdd84b04c353436 (patch) | |
tree | 23613ec09e0e270e797695ae0e701503d2032fee /test/sequential/test-net-reconnect-error.js | |
parent | 06a617aa21c434b5e607370e7ee0051d506a4793 (diff) | |
download | android-node-v8-c60a7fa7383a983a0348e8876fdd84b04c353436.tar.gz android-node-v8-c60a7fa7383a983a0348e8876fdd84b04c353436.tar.bz2 android-node-v8-c60a7fa7383a983a0348e8876fdd84b04c353436.zip |
test: move net reconnect error test to sequential
The usage of common.PORT could cause undesired port collisions when run
in parallel. The following test was moved to sequential.
test-net-reconnect-error.js
PR-URL: https://github.com/nodejs/node/pull/13033
Refs: https://github.com/nodejs/node/issues/12376
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'test/sequential/test-net-reconnect-error.js')
-rw-r--r-- | test/sequential/test-net-reconnect-error.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/sequential/test-net-reconnect-error.js b/test/sequential/test-net-reconnect-error.js new file mode 100644 index 0000000000..128feffc93 --- /dev/null +++ b/test/sequential/test-net-reconnect-error.js @@ -0,0 +1,47 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; +const common = require('../common'); +const net = require('net'); +const assert = require('assert'); +const N = 20; +let client_error_count = 0; +let disconnect_count = 0; + +const c = net.createConnection(common.PORT); + +c.on('connect', common.mustNotCall('client should not have connected')); + +c.on('error', common.mustCall((e) => { + client_error_count++; + assert.strictEqual('ECONNREFUSED', e.code); +}, N + 1)); + +c.on('close', common.mustCall(() => { + if (disconnect_count++ < N) + c.connect(common.PORT); // reconnect +}, N + 1)); + +process.on('exit', function() { + assert.strictEqual(N + 1, disconnect_count); + assert.strictEqual(N + 1, client_error_count); +}); |