From 889153b11bc97c98a42cd662eb143ce9d67e7adf Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Fri, 24 May 2024 15:06:30 -0700 Subject: [PATCH 1/2] tests: add timeout to runSmokeTest --- cli/test/smokehouse/smokehouse.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cli/test/smokehouse/smokehouse.js b/cli/test/smokehouse/smokehouse.js index 4e29e378c212..ded3f9920a60 100644 --- a/cli/test/smokehouse/smokehouse.js +++ b/cli/test/smokehouse/smokehouse.js @@ -163,8 +163,17 @@ async function runSmokeTest(smokeTestDefn, testOptions) { // Run Lighthouse. try { + // Each individual runner has internal timeouts, but we've had bugs where + // that didn't cover some edge case. So to be safe give a (long) timeout here. + const timeoutPromise = new Promise((_, reject) => { + setTimeout(reject, 1000 * 120); + }); + const timedResult = await Promise.race([ + lighthouseRunner(requestedUrl, config, testRunnerOptions), + timeoutPromise, + ]); result = { - ...await lighthouseRunner(requestedUrl, config, testRunnerOptions), + ...timedResult, networkRequests: takeNetworkRequestUrls ? takeNetworkRequestUrls() : undefined, }; From 4b176f21e11ff9606203fcddbaabb32354b008e4 Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Fri, 24 May 2024 15:15:21 -0700 Subject: [PATCH 2/2] fine heres an error object --- cli/test/smokehouse/smokehouse.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cli/test/smokehouse/smokehouse.js b/cli/test/smokehouse/smokehouse.js index ded3f9920a60..0a329abdaac8 100644 --- a/cli/test/smokehouse/smokehouse.js +++ b/cli/test/smokehouse/smokehouse.js @@ -166,7 +166,8 @@ async function runSmokeTest(smokeTestDefn, testOptions) { // Each individual runner has internal timeouts, but we've had bugs where // that didn't cover some edge case. So to be safe give a (long) timeout here. const timeoutPromise = new Promise((_, reject) => { - setTimeout(reject, 1000 * 120); + setTimeout(() => + reject(new Error('Timed out waiting for provided lighthouseRunner')), 1000 * 120); }); const timedResult = await Promise.race([ lighthouseRunner(requestedUrl, config, testRunnerOptions),