From 68bad0be6ce688566eb18b4ad78f22f91d1c1f52 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Thu, 11 Nov 2021 17:14:36 -0800 Subject: [PATCH] cherry-pick(#10266): fix(sigint): remove sigint handler early --- packages/playwright-test/src/reporters/html.ts | 1 - packages/playwright-test/src/runner.ts | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/playwright-test/src/reporters/html.ts b/packages/playwright-test/src/reporters/html.ts index 2768b4ccfa..4511c57f2e 100644 --- a/packages/playwright-test/src/reporters/html.ts +++ b/packages/playwright-test/src/reporters/html.ts @@ -177,7 +177,6 @@ export async function showHTMLReport(reportFolder: string | undefined, testId?: if (testId) url += `#?testId=${testId}`; open(url); - process.on('SIGINT', () => process.exit(0)); await new Promise(() => {}); } diff --git a/packages/playwright-test/src/runner.ts b/packages/playwright-test/src/runner.ts index 9bb8ccdf8b..5d27eddd67 100644 --- a/packages/playwright-test/src/runner.ts +++ b/packages/playwright-test/src/runner.ts @@ -328,6 +328,11 @@ export class Runner { if (!list) { const dispatcher = new Dispatcher(this._loader, testGroups, this._reporter); await Promise.race([dispatcher.run(), sigIntPromise]); + if (!sigint) { + // We know for sure there was no Ctrl+C, so we remove custom SIGINT handler + // as soon as we can. + process.off('SIGINT', sigintHandler); + } await dispatcher.stop(); hasWorkerErrors = dispatcher.hasWorkerErrors(); }