From 68718134266c2f75e80344f8075c0b33e5ddf879 Mon Sep 17 00:00:00 2001 From: Abdirahim Musse <33973272+abmusse@users.noreply.github.com> Date: Tue, 7 Feb 2023 12:38:02 -0600 Subject: [PATCH 1/2] test: fix IPv6 checks on IBM i --- test/common/index.js | 9 ++++++++- test/parallel/test-net-autoselectfamily.js | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/test/common/index.js b/test/common/index.js index d6fddac2d5d864..f399465f3d5aba 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -940,7 +940,14 @@ const common = { get hasIPv6() { const iFaces = require('os').networkInterfaces(); - const re = isWindows ? /Loopback Pseudo-Interface/ : /lo/; + let re; + if (isWindows) { + re = /Loopback Pseudo-Interface/; + } else if (this.isIBMi) { + re = /\*LOOPBACK/; + } else { + re = /lo/; + } return Object.keys(iFaces).some((name) => { return re.test(name) && iFaces[name].some(({ family }) => family === 'IPv6'); diff --git a/test/parallel/test-net-autoselectfamily.js b/test/parallel/test-net-autoselectfamily.js index 777fe357e89434..c006627f2d8ede 100644 --- a/test/parallel/test-net-autoselectfamily.js +++ b/test/parallel/test-net-autoselectfamily.js @@ -217,6 +217,10 @@ if (common.hasIPv6) { assert.strictEqual(error.message, `connect ECONNREFUSED ::1:${port}`); } else if (error.code === 'EAFNOSUPPORT') { assert.strictEqual(error.message, `connect EAFNOSUPPORT ::1:${port} - Local (undefined:undefined)`); + } else if (common.isIBMi) { + // IBMi returns EUNATCH (ERRNO 42) when IPv6 is disabled + // keep this errno assertion until EUNATCH is recognized by libuv + assert.strictEqual(error.errno, -42); } else { assert.strictEqual(error.code, 'EADDRNOTAVAIL'); assert.strictEqual(error.message, `connect EADDRNOTAVAIL ::1:${port} - Local (:::0)`); From e8a7d202f6c139f6cf086cef146c8dd4d10dcb7f Mon Sep 17 00:00:00 2001 From: Abdirahim Musse <33973272+abmusse@users.noreply.github.com> Date: Wed, 22 Feb 2023 13:17:58 -0600 Subject: [PATCH 2/2] fixup! test: fix IPv6 checks on IBM i --- test/parallel/test-net-autoselectfamilydefault.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/parallel/test-net-autoselectfamilydefault.js b/test/parallel/test-net-autoselectfamilydefault.js index a3faa9c3c1e118..be110a836a057b 100644 --- a/test/parallel/test-net-autoselectfamilydefault.js +++ b/test/parallel/test-net-autoselectfamilydefault.js @@ -129,6 +129,10 @@ function createDnsServer(ipv6Addr, ipv4Addr, cb) { assert.strictEqual(error.message, `connect ECONNREFUSED ::1:${port}`); } else if (error.code === 'EAFNOSUPPORT') { assert.strictEqual(error.message, `connect EAFNOSUPPORT ::1:${port} - Local (undefined:undefined)`); + } else if (common.isIBMi) { + // IBMi returns EUNATCH (ERRNO 42) when IPv6 is disabled + // keep this errno assertion until EUNATCH is recognized by libuv + assert.strictEqual(error.errno, -42); } else { assert.strictEqual(error.code, 'EADDRNOTAVAIL'); assert.strictEqual(error.message, `connect EADDRNOTAVAIL ::1:${port} - Local (:::0)`);