From 783081340d5f46c41105d17e6cd986193ac16e9b Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sat, 19 Aug 2023 19:39:40 +0200 Subject: [PATCH 1/3] test: reduce flakiness of `test-esm-loader-hooks` --- test/es-module/test-esm-loader-hooks.mjs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/test/es-module/test-esm-loader-hooks.mjs b/test/es-module/test-esm-loader-hooks.mjs index 445ceedd968aa2..45232a13c2f2ab 100644 --- a/test/es-module/test-esm-loader-hooks.mjs +++ b/test/es-module/test-esm-loader-hooks.mjs @@ -599,7 +599,7 @@ describe('Loader hooks', { concurrency: true }, () => { ` import {MessageChannel} from 'node:worker_threads'; import {register} from 'node:module'; - import {setTimeout} from 'node:timers/promises'; + import {once} from 'node:events'; const {port1, port2} = new MessageChannel(); port1.on('message', (msg) => { console.log('message', msg); @@ -610,8 +610,12 @@ describe('Loader hooks', { concurrency: true }, () => { ); console.log('register', result); - await import('node:os'); - await setTimeout(99); // delay to limit flakiness + const timeout = setTimeout(() => {}, 2**31 - 1); // to keep the process alive. + await Promise.all([ + once(port1, 'message').then(() => once(port1, 'message')), + import('node:os'), + ]); + clearTimeout(timeout); port1.close(); `, ]); From 8bce651d6a119824de3036da5796e7ce7b8be14a Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sat, 19 Aug 2023 21:19:53 +0200 Subject: [PATCH 2/3] fixup! test: reduce flakiness of `test-esm-loader-hooks` --- test/fixtures/es-module-loaders/hooks-initialize.mjs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/fixtures/es-module-loaders/hooks-initialize.mjs b/test/fixtures/es-module-loaders/hooks-initialize.mjs index 646be145503134..ab6f2c50d146e3 100644 --- a/test/fixtures/es-module-loaders/hooks-initialize.mjs +++ b/test/fixtures/es-module-loaders/hooks-initialize.mjs @@ -1,7 +1,8 @@ +import { writeFileSync } from 'node:fs'; + let counter = 0; export async function initialize() { - counter += 1; - console.log('hooks initialize', counter); + writeFileSync(1, `hooks initialize ${++counter}\n`); return counter; } From 93b4ee7fb21d31caff0de5a09bce8c56f2e6bd26 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sat, 19 Aug 2023 21:31:48 +0200 Subject: [PATCH 3/3] fixup! fixup! test: reduce flakiness of `test-esm-loader-hooks` --- test/es-module/test-esm-loader-hooks.mjs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/es-module/test-esm-loader-hooks.mjs b/test/es-module/test-esm-loader-hooks.mjs index 45232a13c2f2ab..2ea0128596e25b 100644 --- a/test/es-module/test-esm-loader-hooks.mjs +++ b/test/es-module/test-esm-loader-hooks.mjs @@ -711,10 +711,10 @@ describe('Loader hooks', { concurrency: true }, () => { ]); assert.strictEqual(stderr, ''); - assert.deepStrictEqual(stdout.split('\n'), [ 'result 1', - 'result 2', - 'hooks initialize 1', + assert.deepStrictEqual(stdout.split('\n'), [ 'hooks initialize 1', + 'result 1', 'hooks initialize 2', + 'result 2', '' ]); assert.strictEqual(code, 0); assert.strictEqual(signal, null);