diff --git a/packages/playwright-core/src/server/trace/viewer/traceViewer.ts b/packages/playwright-core/src/server/trace/viewer/traceViewer.ts index f3ed7fa06c..8bf26d3db1 100644 --- a/packages/playwright-core/src/server/trace/viewer/traceViewer.ts +++ b/packages/playwright-core/src/server/trace/viewer/traceViewer.ts @@ -229,7 +229,6 @@ class StdinServer implements Transport { } onclose() { - gracefullyProcessExitDoNotHang(0); } sendEvent?: (method: string, params: any) => void; diff --git a/packages/playwright/src/runner/testServer.ts b/packages/playwright/src/runner/testServer.ts index 3156530698..f563e8beb6 100644 --- a/packages/playwright/src/runner/testServer.ts +++ b/packages/playwright/src/runner/testServer.ts @@ -98,7 +98,7 @@ class TestServerDispatcher implements TestServerInterface { this._configFile = configFile; this.transport = { dispatch: (method, params) => (this as any)[method](params), - onclose: () => gracefullyProcessExitDoNotHang(0), + onclose: () => {}, }; this._globalWatcher = new Watcher('deep', () => this._dispatchEvent('listChanged', {})); this._testWatcher = new Watcher('flat', events => { @@ -392,6 +392,7 @@ async function innerRunTestServer(configFile: string | undefined, options: { hos const testServer = new TestServer(configFile); const cancelPromise = new ManualPromise(); const sigintWatcher = new SigIntWatcher(); + process.stdin.on('close', () => gracefullyProcessExitDoNotHang(0)); void sigintWatcher.promise().then(() => cancelPromise.resolve()); try { const server = await testServer.start(options);