From 09207b8075e0e5a2c7b05d0b57952c0b0455e25e Mon Sep 17 00:00:00 2001 From: Abdirahim Musse <33973272+abmusse@users.noreply.github.com> Date: Wed, 17 May 2023 15:11:28 -0500 Subject: [PATCH 1/2] test: handle EUNATCH When IPv6 is disabled IBM i returns EUNATCH (errno 42) instead of EADDRNOTAVAIL. libuv 1.46.0 adds EUNATCH errno We can now use error.code to refer to EUNATCH in node versions that use libuv 1.46.0. --- .../test-net-autoselectfamily-commandline-option.js | 5 ++--- test/parallel/test-net-autoselectfamily-default.js | 9 ++------- test/parallel/test-net-autoselectfamily.js | 9 ++------- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/test/parallel/test-net-autoselectfamily-commandline-option.js b/test/parallel/test-net-autoselectfamily-commandline-option.js index a99bf02cf02d3a..679d2d62abaeb6 100644 --- a/test/parallel/test-net-autoselectfamily-commandline-option.js +++ b/test/parallel/test-net-autoselectfamily-commandline-option.js @@ -87,9 +87,8 @@ 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 { - assert.strictEqual(error.code, 'EADDRNOTAVAIL'); - assert.strictEqual(error.message, `connect EADDRNOTAVAIL ::1:${port} - Local (:::0)`); + } else if (error.code === 'EADDRNOTAVAIL' || error.code === 'EUNATCH') { + assert.strictEqual(error.message, `connect ${error.code} ::1:${port} - Local (:::0)`); } ipv4Server.close(); diff --git a/test/parallel/test-net-autoselectfamily-default.js b/test/parallel/test-net-autoselectfamily-default.js index 2c87bf97dfa87e..b7e6ef57c57660 100644 --- a/test/parallel/test-net-autoselectfamily-default.js +++ b/test/parallel/test-net-autoselectfamily-default.js @@ -125,13 +125,8 @@ 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)`); + } else if (error.code === 'EADDRNOTAVAIL' || error.code === 'EUNATCH') { + assert.strictEqual(error.message, `connect ${error.code} ::1:${port} - Local (:::0)`); } ipv4Server.close(); diff --git a/test/parallel/test-net-autoselectfamily.js b/test/parallel/test-net-autoselectfamily.js index 3cce88f9ce907e..8b849682846819 100644 --- a/test/parallel/test-net-autoselectfamily.js +++ b/test/parallel/test-net-autoselectfamily.js @@ -282,13 +282,8 @@ 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)`); + } else if (error.code === 'EADDRNOTAVAIL' || error.code === 'EUNATCH') { + assert.strictEqual(error.message, `connect ${error.code} ::1:${port} - Local (:::0)`); } ipv4Server.close(); From f83b1021341d5e9ddc3ea5e590d947e4e85d5703 Mon Sep 17 00:00:00 2001 From: Abdirahim Musse <33973272+abmusse@users.noreply.github.com> Date: Fri, 18 Aug 2023 19:21:30 -0500 Subject: [PATCH 2/2] fixup! test: handle EUNATCH --- .../test-net-autoselectfamily-commandline-option.js | 7 +++++-- test/parallel/test-net-autoselectfamily-default.js | 7 +++++-- test/parallel/test-net-autoselectfamily.js | 7 +++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/test/parallel/test-net-autoselectfamily-commandline-option.js b/test/parallel/test-net-autoselectfamily-commandline-option.js index 679d2d62abaeb6..47ad69566d5c16 100644 --- a/test/parallel/test-net-autoselectfamily-commandline-option.js +++ b/test/parallel/test-net-autoselectfamily-commandline-option.js @@ -87,8 +87,11 @@ 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 (error.code === 'EADDRNOTAVAIL' || error.code === 'EUNATCH') { - assert.strictEqual(error.message, `connect ${error.code} ::1:${port} - Local (:::0)`); + } else if (error.code === 'EUNATCH') { + assert.strictEqual(error.message, `connect EUNATCH ::1:${port} - Local (:::0)`); + } else { + assert.strictEqual(error.code, 'EADDRNOTAVAIL'); + assert.strictEqual(error.message, `connect EADDRNOTAVAIL ::1:${port} - Local (:::0)`); } ipv4Server.close(); diff --git a/test/parallel/test-net-autoselectfamily-default.js b/test/parallel/test-net-autoselectfamily-default.js index b7e6ef57c57660..3fb95a08313c6c 100644 --- a/test/parallel/test-net-autoselectfamily-default.js +++ b/test/parallel/test-net-autoselectfamily-default.js @@ -125,8 +125,11 @@ 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 (error.code === 'EADDRNOTAVAIL' || error.code === 'EUNATCH') { - assert.strictEqual(error.message, `connect ${error.code} ::1:${port} - Local (:::0)`); + } else if (error.code === 'EUNATCH') { + assert.strictEqual(error.message, `connect EUNATCH ::1:${port} - Local (:::0)`); + } else { + assert.strictEqual(error.code, 'EADDRNOTAVAIL'); + assert.strictEqual(error.message, `connect EADDRNOTAVAIL ::1:${port} - Local (:::0)`); } ipv4Server.close(); diff --git a/test/parallel/test-net-autoselectfamily.js b/test/parallel/test-net-autoselectfamily.js index 8b849682846819..f4b696fd192828 100644 --- a/test/parallel/test-net-autoselectfamily.js +++ b/test/parallel/test-net-autoselectfamily.js @@ -282,8 +282,11 @@ 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 (error.code === 'EADDRNOTAVAIL' || error.code === 'EUNATCH') { - assert.strictEqual(error.message, `connect ${error.code} ::1:${port} - Local (:::0)`); + } else if (error.code === 'EUNATCH') { + assert.strictEqual(error.message, `connect EUNATCH ::1:${port} - Local (:::0)`); + } else { + assert.strictEqual(error.code, 'EADDRNOTAVAIL'); + assert.strictEqual(error.message, `connect EADDRNOTAVAIL ::1:${port} - Local (:::0)`); } ipv4Server.close();