diff options
author | Rich Trott <rtrott@gmail.com> | 2017-10-17 21:50:25 -0700 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2017-10-17 23:10:20 -0700 |
commit | 9be3d99b2b94d8a08b5a36efb06f3a6fd196805a (patch) | |
tree | 77a6cd98b9fc4e72134ddde0fbfd2606af39f91c /test/sequential/test-inspector-ip-detection.js | |
parent | 978629ca1240b9f2038390c7e960f3d226daa4e8 (diff) | |
download | android-node-v8-9be3d99b2b94d8a08b5a36efb06f3a6fd196805a.tar.gz android-node-v8-9be3d99b2b94d8a08b5a36efb06f3a6fd196805a.tar.bz2 android-node-v8-9be3d99b2b94d8a08b5a36efb06f3a6fd196805a.zip |
test: fix inspector tests
The inspector tests should not be in the parallel directory as they
likely all (or certainly almost all) use static ports, so port
collisions will happen.
This moves them all to sequential. We can move them back on a
case-by-case basis. They were run sequentially when they were in the
inspector directory which they were only moved from very recently.
PR-URL: https://github.com/nodejs/node/pull/16281
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Bryan English <bryan@bryanenglish.com>
Diffstat (limited to 'test/sequential/test-inspector-ip-detection.js')
-rw-r--r-- | test/sequential/test-inspector-ip-detection.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/sequential/test-inspector-ip-detection.js b/test/sequential/test-inspector-ip-detection.js new file mode 100644 index 0000000000..f7dee4494d --- /dev/null +++ b/test/sequential/test-inspector-ip-detection.js @@ -0,0 +1,48 @@ +'use strict'; +const common = require('../common'); + +common.skipIfInspectorDisabled(); + +const assert = require('assert'); +const { NodeInstance } = require('../common/inspector-helper.js'); +const os = require('os'); + +const ip = pickIPv4Address(); + +if (!ip) + common.skip('No IP address found'); + +function checkIpAddress(ip, response) { + const res = response[0]; + const wsUrl = res['webSocketDebuggerUrl']; + assert.ok(wsUrl); + const match = wsUrl.match(/^ws:\/\/(.*):\d+\/(.*)/); + assert.strictEqual(ip, match[1]); + assert.strictEqual(res['id'], match[2]); + assert.strictEqual(ip, res['devtoolsFrontendUrl'].match(/.*ws=(.*):\d+/)[1]); +} + +function pickIPv4Address() { + for (const i of [].concat(...Object.values(os.networkInterfaces()))) { + if (i.family === 'IPv4' && i.address !== '127.0.0.1') + return i.address; + } +} + +async function test() { + const instance = new NodeInstance('--inspect-brk=0.0.0.0:0'); + try { + checkIpAddress(ip, await instance.httpGet(ip, '/json/list')); + } catch (error) { + if (error.code === 'EHOSTUNREACH') { + common.printSkipMessage('Unable to connect to self'); + } else { + throw error; + } + } + instance.kill(); +} + +common.crashOnUnhandledRejection(); + +test(); |