Merge pull request #18401 from timvandermeij/test-orphaned-browsers
Fix orphaned browser processes due to uncaught exceptions in the tests
This commit is contained in:
commit
fe692435d3
@ -970,8 +970,6 @@ async function startBrowsers({ baseUrl, initializeSession }) {
|
|||||||
await puppeteer.trimCache();
|
await puppeteer.trimCache();
|
||||||
|
|
||||||
const browserNames = options.noChrome ? ["firefox"] : ["firefox", "chrome"];
|
const browserNames = options.noChrome ? ["firefox"] : ["firefox", "chrome"];
|
||||||
|
|
||||||
sessions = [];
|
|
||||||
for (const browserName of browserNames) {
|
for (const browserName of browserNames) {
|
||||||
// The session must be pushed first and augmented with the browser once
|
// The session must be pushed first and augmented with the browser once
|
||||||
// it's initialized. The reason for this is that browser initialization
|
// it's initialized. The reason for this is that browser initialization
|
||||||
@ -1078,25 +1076,33 @@ async function main() {
|
|||||||
stats = [];
|
stats = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
if (options.downloadOnly) {
|
if (options.downloadOnly) {
|
||||||
await ensurePDFsDownloaded();
|
await ensurePDFsDownloaded();
|
||||||
} else if (options.unitTest) {
|
} else if (options.unitTest) {
|
||||||
// Allows linked PDF files in unit-tests as well.
|
// Allows linked PDF files in unit-tests as well.
|
||||||
await ensurePDFsDownloaded();
|
await ensurePDFsDownloaded();
|
||||||
startUnitTest("/test/unit/unit_test.html", "unit");
|
await startUnitTest("/test/unit/unit_test.html", "unit");
|
||||||
} else if (options.fontTest) {
|
} else if (options.fontTest) {
|
||||||
startUnitTest("/test/font/font_test.html", "font");
|
await startUnitTest("/test/font/font_test.html", "font");
|
||||||
} else if (options.integration) {
|
} else if (options.integration) {
|
||||||
// Allows linked PDF files in integration-tests as well.
|
// Allows linked PDF files in integration-tests as well.
|
||||||
await ensurePDFsDownloaded();
|
await ensurePDFsDownloaded();
|
||||||
startIntegrationTest();
|
await startIntegrationTest();
|
||||||
} else {
|
} else {
|
||||||
startRefTest(options.masterMode, options.reftest);
|
await startRefTest(options.masterMode, options.reftest);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
// Close the browsers if uncaught exceptions occur, otherwise the spawned
|
||||||
|
// processes can become orphaned and keep running after `test.mjs` exits
|
||||||
|
// because the teardown logic of the tests did not get a chance to run.
|
||||||
|
console.error(e);
|
||||||
|
await Promise.all(sessions.map(session => closeSession(session.name)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var server;
|
var server;
|
||||||
var sessions;
|
var sessions = [];
|
||||||
var onAllSessionsClosed;
|
var onAllSessionsClosed;
|
||||||
var host = "127.0.0.1";
|
var host = "127.0.0.1";
|
||||||
var options = parseOptions();
|
var options = parseOptions();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user