From 0d9baf15e85fb6f26aa52305ca3efa59d265949c Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 11 Aug 2023 10:15:16 +0200 Subject: [PATCH 1/3] test: reduce flakiness of `test-esm-loader-hooks` --- test/es-module/test-esm-loader-hooks.mjs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/es-module/test-esm-loader-hooks.mjs b/test/es-module/test-esm-loader-hooks.mjs index 4d0f5a6bd91acf..1b56f7f66ebed1 100644 --- a/test/es-module/test-esm-loader-hooks.mjs +++ b/test/es-module/test-esm-loader-hooks.mjs @@ -593,17 +593,19 @@ describe('Loader hooks', { concurrency: true }, () => { ` import {MessageChannel} from 'node:worker_threads'; import {register} from 'node:module'; + import {setTimeout} from 'node:timers/promises'; const {port1, port2} = new MessageChannel(); port1.on('message', (msg) => { console.log('message', msg); }); const result = register( - ${JSON.stringify(fixtures.fileURL('/es-module-loaders/hooks-initialize-port.mjs'))}, + ${JSON.stringify(fixtures.fileURL('es-module-loaders/hooks-initialize-port.mjs'))}, {data: port2, transferList: [port2]}, ); console.log('register', result); await import('node:os'); + await setTimeout(99); // delay to limit flakiness port1.close(); `, ]); From 5604d92da29a37e887ba4d926e0796e2a89a34be Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 11 Aug 2023 12:51:52 +0200 Subject: [PATCH 2/3] fixup! test: reduce flakiness of `test-esm-loader-hooks` --- test/es-module/test-esm-loader-hooks.mjs | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/test/es-module/test-esm-loader-hooks.mjs b/test/es-module/test-esm-loader-hooks.mjs index 1b56f7f66ebed1..518e59e5c8cee5 100644 --- a/test/es-module/test-esm-loader-hooks.mjs +++ b/test/es-module/test-esm-loader-hooks.mjs @@ -610,12 +610,7 @@ describe('Loader hooks', { concurrency: true }, () => { `, ]); - const lines = stdout.split('\n'); - - assert.strictEqual(lines[0], 'register ok'); - assert.strictEqual(lines[1], 'message initialize'); - assert.strictEqual(lines[2], 'message resolve node:os'); - + assert.deepStrictEqual(stdout.split('\n'), ['register ok', 'message initialize', 'message resolve node:os']); assert.strictEqual(stderr, ''); assert.strictEqual(code, 0); @@ -636,17 +631,13 @@ describe('Loader hooks', { concurrency: true }, () => { ${JSON.stringify(fixtures.fileURL('/es-module-loaders/loader-load-foo-or-42.mjs'))}, ); - import('node:os').then((result) => { + await import('node:os').then((result) => { console.log(result.default); }); `, ]); - const lines = stdout.split('\n'); - - assert.strictEqual(lines[0], 'hooks initialize 1'); - assert.strictEqual(lines[1], 'foo'); - + assert.deepStrictEqual(stdout.split('\n'), ['hooks initialize 1', 'foo']); assert.strictEqual(stderr, ''); assert.strictEqual(code, 0); From 37bdb8f461766aa035c9acce0e5f4329328bc28b Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 11 Aug 2023 13:04:02 +0200 Subject: [PATCH 3/3] fixup! fixup! test: reduce flakiness of `test-esm-loader-hooks` --- test/es-module/test-esm-loader-hooks.mjs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/test/es-module/test-esm-loader-hooks.mjs b/test/es-module/test-esm-loader-hooks.mjs index 518e59e5c8cee5..ecb429d4593a3a 100644 --- a/test/es-module/test-esm-loader-hooks.mjs +++ b/test/es-module/test-esm-loader-hooks.mjs @@ -610,8 +610,8 @@ describe('Loader hooks', { concurrency: true }, () => { `, ]); - assert.deepStrictEqual(stdout.split('\n'), ['register ok', 'message initialize', 'message resolve node:os']); assert.strictEqual(stderr, ''); + assert.deepStrictEqual(stdout.split('\n'), ['register ok', 'message initialize', 'message resolve node:os', '']); assert.strictEqual(code, 0); assert.strictEqual(signal, null); @@ -623,22 +623,23 @@ describe('Loader hooks', { concurrency: true }, () => { '--input-type=commonjs', '--eval', ` + 'use strict'; const {register} = require('node:module'); register( - ${JSON.stringify(fixtures.fileURL('/es-module-loaders/hooks-initialize.mjs'))}, + ${JSON.stringify(fixtures.fileURL('es-module-loaders/hooks-initialize.mjs'))}, ); register( - ${JSON.stringify(fixtures.fileURL('/es-module-loaders/loader-load-foo-or-42.mjs'))}, + ${JSON.stringify(fixtures.fileURL('es-module-loaders/loader-load-foo-or-42.mjs'))}, ); - await import('node:os').then((result) => { - console.log(result.default); + import('node:os').then((result) => { + console.log(JSON.stringify(result)); }); `, ]); - assert.deepStrictEqual(stdout.split('\n'), ['hooks initialize 1', 'foo']); assert.strictEqual(stderr, ''); + assert.deepStrictEqual(stdout.split('\n').sort(), ['hooks initialize 1', '{"default":"foo"}', ''].sort()); assert.strictEqual(code, 0); assert.strictEqual(signal, null);