mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-19 22:58:07 +02:00
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
1 changed files with 23 additions and 17 deletions
|
@ -970,8 +970,6 @@ async function startBrowsers({ baseUrl, initializeSession }) {
|
|||
await puppeteer.trimCache();
|
||||
|
||||
const browserNames = options.noChrome ? ["firefox"] : ["firefox", "chrome"];
|
||||
|
||||
sessions = [];
|
||||
for (const browserName of browserNames) {
|
||||
// The session must be pushed first and augmented with the browser once
|
||||
// it's initialized. The reason for this is that browser initialization
|
||||
|
@ -1078,25 +1076,33 @@ async function main() {
|
|||
stats = [];
|
||||
}
|
||||
|
||||
if (options.downloadOnly) {
|
||||
await ensurePDFsDownloaded();
|
||||
} else if (options.unitTest) {
|
||||
// Allows linked PDF files in unit-tests as well.
|
||||
await ensurePDFsDownloaded();
|
||||
startUnitTest("/test/unit/unit_test.html", "unit");
|
||||
} else if (options.fontTest) {
|
||||
startUnitTest("/test/font/font_test.html", "font");
|
||||
} else if (options.integration) {
|
||||
// Allows linked PDF files in integration-tests as well.
|
||||
await ensurePDFsDownloaded();
|
||||
startIntegrationTest();
|
||||
} else {
|
||||
startRefTest(options.masterMode, options.reftest);
|
||||
try {
|
||||
if (options.downloadOnly) {
|
||||
await ensurePDFsDownloaded();
|
||||
} else if (options.unitTest) {
|
||||
// Allows linked PDF files in unit-tests as well.
|
||||
await ensurePDFsDownloaded();
|
||||
await startUnitTest("/test/unit/unit_test.html", "unit");
|
||||
} else if (options.fontTest) {
|
||||
await startUnitTest("/test/font/font_test.html", "font");
|
||||
} else if (options.integration) {
|
||||
// Allows linked PDF files in integration-tests as well.
|
||||
await ensurePDFsDownloaded();
|
||||
await startIntegrationTest();
|
||||
} else {
|
||||
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 sessions;
|
||||
var sessions = [];
|
||||
var onAllSessionsClosed;
|
||||
var host = "127.0.0.1";
|
||||
var options = parseOptions();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue