doc-detective 4.15.0-next.13 → 4.15.0-next.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/tests/ffmpegRecorder.d.ts +10 -1
- package/dist/core/tests/ffmpegRecorder.d.ts.map +1 -1
- package/dist/core/tests/ffmpegRecorder.js +76 -1
- package/dist/core/tests/ffmpegRecorder.js.map +1 -1
- package/dist/core/tests.d.ts.map +1 -1
- package/dist/core/tests.js +90 -12
- package/dist/core/tests.js.map +1 -1
- package/dist/core/utils.d.ts +8 -1
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +80 -1
- package/dist/core/utils.js.map +1 -1
- package/dist/hints/context.d.ts.map +1 -1
- package/dist/hints/context.js +4 -3
- package/dist/hints/context.js.map +1 -1
- package/dist/hints/hints.d.ts.map +1 -1
- package/dist/hints/hints.js +2 -4
- package/dist/hints/hints.js.map +1 -1
- package/dist/hints/types.d.ts +6 -5
- package/dist/hints/types.d.ts.map +1 -1
- package/dist/index.cjs +148 -9
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
declare const XVFB_SCREEN_SIZE = "1920x1080";
|
|
2
|
-
export { resolveRecordPlan, coerceRecordContextBrowser, safeContextId, browserCaptureTitle, browserDownloadDir, buildCaptureArgs, resolveCropGeometry, jobIsFfmpegRecording, computeEffectiveConcurrency, getFfmpegPath, detectMacScreenIndex, parseMacScreenIndex, checkSystemBinary, xvfbDisplay, startXvfb, XVFB_SCREEN_SIZE, detectX11ScreenSize, isRecordingActive, recordStepName, stopRecordTargetName, selectRecordingToStop, detectRecordingNameConflict, };
|
|
2
|
+
export { resolveRecordPlan, coerceRecordContextBrowser, safeContextId, browserCaptureTitle, browserDownloadDir, buildCaptureArgs, resolveCropGeometry, jobIsFfmpegRecording, computeEffectiveConcurrency, stepHasRouting, contextHasRouting, contextHasAnyFfmpegRecordStep, isFfmpegRecordingForScheduling, jobExclusiveResources, getFfmpegPath, detectMacScreenIndex, parseMacScreenIndex, checkSystemBinary, xvfbDisplay, startXvfb, XVFB_SCREEN_SIZE, detectX11ScreenSize, isRecordingActive, recordStepName, stopRecordTargetName, selectRecordingToStop, detectRecordingNameConflict, };
|
|
3
3
|
declare function isRecordingActive(driver: any): boolean;
|
|
4
4
|
declare function recordStepName(record: any): string | undefined;
|
|
5
5
|
declare function stopRecordTargetName(stopRecord: any): string | undefined;
|
|
@@ -56,6 +56,15 @@ declare function computeEffectiveConcurrency({ requestedLimit, jobs, platform, x
|
|
|
56
56
|
forcedSerial: boolean;
|
|
57
57
|
overlappingCaptures?: boolean;
|
|
58
58
|
};
|
|
59
|
+
declare function stepHasRouting(step: any): boolean;
|
|
60
|
+
declare function contextHasRouting(context: any): boolean;
|
|
61
|
+
declare function contextHasAnyFfmpegRecordStep(context: any): boolean;
|
|
62
|
+
declare function isFfmpegRecordingForScheduling(job: any): boolean;
|
|
63
|
+
declare function jobExclusiveResources(job: any, { allowOverlappingCaptures, }: {
|
|
64
|
+
platform?: string;
|
|
65
|
+
xvfbAvailable?: boolean;
|
|
66
|
+
allowOverlappingCaptures?: boolean;
|
|
67
|
+
}): string[];
|
|
59
68
|
declare function getFfmpegPath(ctx?: {
|
|
60
69
|
cacheDir?: string;
|
|
61
70
|
}): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffmpegRecorder.d.ts","sourceRoot":"","sources":["../../../src/core/tests/ffmpegRecorder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ffmpegRecorder.d.ts","sourceRoot":"","sources":["../../../src/core/tests/ffmpegRecorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { sanitizeFilesystemName } from "../utils.js";
|
|
|
9
9
|
// start Xvfb and as the x11grab `-video_size`, so the capture matches the
|
|
10
10
|
// display exactly (and window/viewport crops fit within it).
|
|
11
11
|
const XVFB_SCREEN_SIZE = "1920x1080";
|
|
12
|
-
export { resolveRecordPlan, coerceRecordContextBrowser, safeContextId, browserCaptureTitle, browserDownloadDir, buildCaptureArgs, resolveCropGeometry, jobIsFfmpegRecording, computeEffectiveConcurrency, getFfmpegPath, detectMacScreenIndex, parseMacScreenIndex, checkSystemBinary, xvfbDisplay, startXvfb, XVFB_SCREEN_SIZE, detectX11ScreenSize, isRecordingActive, recordStepName, stopRecordTargetName, selectRecordingToStop, detectRecordingNameConflict, };
|
|
12
|
+
export { resolveRecordPlan, coerceRecordContextBrowser, safeContextId, browserCaptureTitle, browserDownloadDir, buildCaptureArgs, resolveCropGeometry, jobIsFfmpegRecording, computeEffectiveConcurrency, stepHasRouting, contextHasRouting, contextHasAnyFfmpegRecordStep, isFfmpegRecordingForScheduling, jobExclusiveResources, getFfmpegPath, detectMacScreenIndex, parseMacScreenIndex, checkSystemBinary, xvfbDisplay, startXvfb, XVFB_SCREEN_SIZE, detectX11ScreenSize, isRecordingActive, recordStepName, stopRecordTargetName, selectRecordingToStop, detectRecordingNameConflict, };
|
|
13
13
|
// True when the driver has at least one in-progress recording. Recordings now
|
|
14
14
|
// live in `driver.state.recordings` (an array of handles); this keeps the many
|
|
15
15
|
// "is a recording running?" reads (cursor handling, per-key typing, etc.) a
|
|
@@ -363,6 +363,81 @@ function computeEffectiveConcurrency({ requestedLimit, jobs, platform, xvfbAvail
|
|
|
363
363
|
}
|
|
364
364
|
return { limit: 1, xvfbContexts: [], forcedSerial: requestedLimit > 1 };
|
|
365
365
|
}
|
|
366
|
+
// True if a step carries step-level routing — `if` (guard), `goToStep` (jump),
|
|
367
|
+
// or a non-empty on* handler — any of which can change which steps a context
|
|
368
|
+
// actually runs, and in what order.
|
|
369
|
+
function stepHasRouting(step) {
|
|
370
|
+
if (!step || typeof step !== "object")
|
|
371
|
+
return false;
|
|
372
|
+
if (typeof step.if !== "undefined")
|
|
373
|
+
return true;
|
|
374
|
+
if (typeof step.goToStep === "string" && step.goToStep.trim() !== "")
|
|
375
|
+
return true;
|
|
376
|
+
for (const k of ["onPass", "onFail", "onWarning", "onSkip"]) {
|
|
377
|
+
if (Array.isArray(step[k]) && step[k].length > 0)
|
|
378
|
+
return true;
|
|
379
|
+
}
|
|
380
|
+
return false;
|
|
381
|
+
}
|
|
382
|
+
// True if any step in the context carries step-level routing, so the executed
|
|
383
|
+
// step set/order is not statically known.
|
|
384
|
+
function contextHasRouting(context) {
|
|
385
|
+
const steps = Array.isArray(context?.steps) ? context.steps : [];
|
|
386
|
+
return steps.some((s) => stepHasRouting(s));
|
|
387
|
+
}
|
|
388
|
+
// Over-approximating ffmpeg detection: flag the context display-exclusive if
|
|
389
|
+
// ANY record could run as ffmpeg, ignoring the stopRecord LIFO that routing
|
|
390
|
+
// might skip. A record that resolves to ffmpeg counts immediately; two or more
|
|
391
|
+
// browser-engine records on a recording-capable context count too, because
|
|
392
|
+
// once a separating stopRecord can be skipped they could overlap and the 2nd
|
|
393
|
+
// would fall back to ffmpeg. Used only for scheduling — never under-serialize
|
|
394
|
+
// the shared display.
|
|
395
|
+
function contextHasAnyFfmpegRecordStep(context) {
|
|
396
|
+
const steps = Array.isArray(context?.steps) ? context.steps : [];
|
|
397
|
+
let browserRecords = 0;
|
|
398
|
+
for (const s of steps) {
|
|
399
|
+
if (!s?.record || s.record === false)
|
|
400
|
+
continue;
|
|
401
|
+
const plan = resolveRecordPlan({ step: s, context });
|
|
402
|
+
if (plan.name === "ffmpeg")
|
|
403
|
+
return true;
|
|
404
|
+
const supportsBrowser = context?.browser?.name === "chrome" && context?.browser?.headless === false;
|
|
405
|
+
if (supportsBrowser)
|
|
406
|
+
browserRecords++;
|
|
407
|
+
}
|
|
408
|
+
return browserRecords >= 2;
|
|
409
|
+
}
|
|
410
|
+
// The ffmpeg-recording decision for SCHEDULING exclusivity. For a context with
|
|
411
|
+
// no routing the executed steps are static, so use the precise
|
|
412
|
+
// `jobIsFfmpegRecording`. For a routed context the order/skips are dynamic, so
|
|
413
|
+
// over-approximate — serializing a routed-might-record context on the display
|
|
414
|
+
// is slower but never unsafe. The precise detector still drives the runtime
|
|
415
|
+
// ffmpeg fallback / Xvfb wiring elsewhere.
|
|
416
|
+
function isFfmpegRecordingForScheduling(job) {
|
|
417
|
+
return contextHasRouting(job?.context)
|
|
418
|
+
? contextHasAnyFfmpegRecordStep(job?.context)
|
|
419
|
+
: jobIsFfmpegRecording(job);
|
|
420
|
+
}
|
|
421
|
+
// The exclusive resources a job must hold to run safely under concurrency.
|
|
422
|
+
// Today the only one is the physical "display" for ffmpeg recording. A
|
|
423
|
+
// non-autoRecord ffmpeg recording serializes on `"display"` (the resource
|
|
424
|
+
// registry queues recordings, and via jobDisplayResources every other driver
|
|
425
|
+
// context while a recording is present) instead of forcing the whole run
|
|
426
|
+
// serial. The autoRecord overlap opt-in (`allowOverlappingCaptures`) leaves the
|
|
427
|
+
// display free — those captures intentionally overlap.
|
|
428
|
+
//
|
|
429
|
+
// NOTE: Linux+Xvfb per-context displays are NOT treated as isolation here. In
|
|
430
|
+
// practice, concurrent recording contexts still clobber each other's driver
|
|
431
|
+
// sessions on the CI runner (`invalid session id`), so recordings serialize on
|
|
432
|
+
// every platform; the Xvfb displays are still provisioned so headless contexts
|
|
433
|
+
// can record at all.
|
|
434
|
+
function jobExclusiveResources(job, { allowOverlappingCaptures = false, }) {
|
|
435
|
+
if (!isFfmpegRecordingForScheduling(job))
|
|
436
|
+
return [];
|
|
437
|
+
if (allowOverlappingCaptures)
|
|
438
|
+
return [];
|
|
439
|
+
return ["display"];
|
|
440
|
+
}
|
|
366
441
|
// Resolve the ffmpeg binary path lazily — @ffmpeg-installer/ffmpeg is a heavy
|
|
367
442
|
// runtime dep that should only load when a recording step actually runs. The
|
|
368
443
|
// ctx threads a user-overridden cacheDir through, matching the JIT installer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffmpegRecorder.js","sourceRoot":"","sources":["../../../src/core/tests/ffmpegRecorder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ffmpegRecorder.js","sourceRoot":"","sources":["../../../src/core/tests/ffmpegRecorder.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tests.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/core/tests.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/core/tests.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tests.js
CHANGED
|
@@ -12,7 +12,7 @@ import { requiredBrowserAssets, ensureBrowserInstalled, } from "../runtime/brows
|
|
|
12
12
|
// Single source of truth for browser/driver-requiring step keys.
|
|
13
13
|
import { BROWSER_STEP_KEYS as driverActions } from "../runtime/browserStepKeys.js";
|
|
14
14
|
import os from "node:os";
|
|
15
|
-
import { log, replaceEnvs, selectSpecsForRun, findFreePort, runConcurrent, rollUpResults, createAppiumPool, getRunOutputDir, runArchivesArtifacts, sanitizeFilesystemName, } from "./utils.js";
|
|
15
|
+
import { log, replaceEnvs, selectSpecsForRun, findFreePort, runConcurrent, runResourceAware, createResourceRegistry, rollUpResults, createAppiumPool, getRunOutputDir, runArchivesArtifacts, sanitizeFilesystemName, } from "./utils.js";
|
|
16
16
|
import axios from "axios";
|
|
17
17
|
import { instantiateCursor } from "./tests/moveTo.js";
|
|
18
18
|
import { goTo } from "./tests/goTo.js";
|
|
@@ -24,7 +24,7 @@ import { wait } from "./tests/wait.js";
|
|
|
24
24
|
import { saveScreenshot } from "./tests/saveScreenshot.js";
|
|
25
25
|
import { startRecording } from "./tests/startRecording.js";
|
|
26
26
|
import { stopRecording } from "./tests/stopRecording.js";
|
|
27
|
-
import { browserCaptureTitle, browserDownloadDir, coerceRecordContextBrowser, jobIsFfmpegRecording, computeEffectiveConcurrency, checkSystemBinary, xvfbDisplay, startXvfb, XVFB_SCREEN_SIZE, isRecordingActive, recordStepName, detectRecordingNameConflict, } from "./tests/ffmpegRecorder.js";
|
|
27
|
+
import { browserCaptureTitle, browserDownloadDir, coerceRecordContextBrowser, jobIsFfmpegRecording, computeEffectiveConcurrency, jobExclusiveResources, checkSystemBinary, xvfbDisplay, startXvfb, XVFB_SCREEN_SIZE, isRecordingActive, recordStepName, detectRecordingNameConflict, } from "./tests/ffmpegRecorder.js";
|
|
28
28
|
import { loadVariables } from "./tests/loadVariables.js";
|
|
29
29
|
import { saveCookie } from "./tests/saveCookie.js";
|
|
30
30
|
import { loadCookie } from "./tests/loadCookie.js";
|
|
@@ -204,6 +204,25 @@ function isDriverRequired({ test }) {
|
|
|
204
204
|
});
|
|
205
205
|
return driverRequired;
|
|
206
206
|
}
|
|
207
|
+
// The exclusive resources a context job must hold to run safely under
|
|
208
|
+
// concurrency. A shared-display ffmpeg recording holds "display" exclusively
|
|
209
|
+
// (jobExclusiveResources). And once ANY such recording is in the run
|
|
210
|
+
// (`runHasDisplayRecording`), every OTHER driver/browser context also
|
|
211
|
+
// serializes on "display": a recording's ffmpeg capture would otherwise include
|
|
212
|
+
// their windows and starve them on the shared display. Non-driver jobs
|
|
213
|
+
// (HTTP/shell) never take the display, so they stay parallel. On Linux+Xvfb the
|
|
214
|
+
// recordings get isolated displays, so `runHasDisplayRecording` is false there
|
|
215
|
+
// and nothing is promoted — driver work runs fully parallel.
|
|
216
|
+
function jobDisplayResources(job, ctx) {
|
|
217
|
+
const base = jobExclusiveResources(job, ctx);
|
|
218
|
+
if (base.length)
|
|
219
|
+
return base;
|
|
220
|
+
if (ctx.runHasDisplayRecording &&
|
|
221
|
+
isDriverRequired({ test: { steps: job.context?.steps } })) {
|
|
222
|
+
return ["display"];
|
|
223
|
+
}
|
|
224
|
+
return [];
|
|
225
|
+
}
|
|
207
226
|
// Check if context is supported by current platform and available apps
|
|
208
227
|
function isSupportedContext({ context, apps, platform }) {
|
|
209
228
|
// Check browsers
|
|
@@ -687,10 +706,39 @@ async function runSpecs({ resolvedTests }) {
|
|
|
687
706
|
xvfbAvailable,
|
|
688
707
|
allowOverlappingCaptures: autoRecordFlag.injected && !hasExplicitFfmpegRecording,
|
|
689
708
|
});
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
709
|
+
// Inputs for tagging a job with the exclusive resources it must hold under
|
|
710
|
+
// concurrency. Mirrors what computeEffectiveConcurrency used, so the tag and
|
|
711
|
+
// the Xvfb/overlap decision stay in lock-step.
|
|
712
|
+
const exclusivityBase = {
|
|
713
|
+
platform: process.platform,
|
|
714
|
+
xvfbAvailable,
|
|
715
|
+
allowOverlappingCaptures: autoRecordFlag.injected && !hasExplicitFfmpegRecording,
|
|
716
|
+
};
|
|
717
|
+
// Does the run contain a shared-display ffmpeg recording? If so, every driver
|
|
718
|
+
// context (not just the recordings) serializes on "display" — see
|
|
719
|
+
// jobDisplayResources. Computed over the full sizing view (flat + routed) so a
|
|
720
|
+
// recording in any spec gates driver work everywhere.
|
|
721
|
+
const runHasDisplayRecording = limit > 1 &&
|
|
722
|
+
sizingJobs.some((j) => jobExclusiveResources(j, exclusivityBase).includes("display"));
|
|
723
|
+
// Reused by the routed sequencer below.
|
|
724
|
+
const exclusivityCtx = { ...exclusivityBase, runHasDisplayRecording };
|
|
725
|
+
// We no longer collapse `limit` to 1 for shared-display recordings. Instead,
|
|
726
|
+
// at limit>1, tag each flat job and let the resource-aware pool serialize the
|
|
727
|
+
// display-bound work (recordings + every driver context while a recording is
|
|
728
|
+
// present) while non-driver jobs stay parallel. computeEffectiveConcurrency
|
|
729
|
+
// still drives Xvfb isolation (xvfbContexts) and the autoRecord-overlap
|
|
730
|
+
// warning. At limit===1 the single worker is already serial, so the old path
|
|
731
|
+
// is left byte-identical.
|
|
732
|
+
if (limit > 1) {
|
|
733
|
+
for (const job of jobs)
|
|
734
|
+
job.exclusiveResources = jobDisplayResources(job, exclusivityCtx);
|
|
735
|
+
}
|
|
736
|
+
// Report/warn off `runHasDisplayRecording`, which spans the full sizing view
|
|
737
|
+
// (flat + routed) — a routed-only run with a recording still serializes (the
|
|
738
|
+
// routed sequencer tags its own contexts) and must report so too.
|
|
739
|
+
if (runHasDisplayRecording) {
|
|
740
|
+
log(config, "warning", "ffmpeg recordings are serialized to protect the shared display; non-driver work still runs in parallel. To record concurrently, use the Chrome browser engine (record: { engine: \"browser\" }).");
|
|
741
|
+
report.recordingSerialized = true;
|
|
694
742
|
}
|
|
695
743
|
else if (concurrency.overlappingCaptures && limit > 1) {
|
|
696
744
|
log(config, "warning", "autoRecord is running ffmpeg recordings concurrently on a shared display, so the captured videos will overlap (each context records the whole screen). For isolated concurrent recordings, run on Linux with Xvfb installed.");
|
|
@@ -874,8 +922,19 @@ async function runSpecs({ resolvedTests }) {
|
|
|
874
922
|
: "main";
|
|
875
923
|
routedByPhase[phase].push(entry);
|
|
876
924
|
}
|
|
925
|
+
// One resource registry per run, shared by every phase's flat pool AND the
|
|
926
|
+
// routed sequencer, so a flat-pool recording and a routed-spec recording
|
|
927
|
+
// never hold the shared "display" at the same time. Only consulted at
|
|
928
|
+
// limit>1 (where jobs were tagged); at limit===1 the pools stay on the
|
|
929
|
+
// byte-identical runConcurrent path.
|
|
930
|
+
const resourceRegistry = createResourceRegistry();
|
|
877
931
|
for (const phase of PHASES) {
|
|
878
|
-
|
|
932
|
+
if (limit > 1) {
|
|
933
|
+
await runResourceAware(jobsByPhase[phase], limit, resourceRegistry, runJob);
|
|
934
|
+
}
|
|
935
|
+
else {
|
|
936
|
+
await runConcurrent(jobsByPhase[phase], limit, runJob);
|
|
937
|
+
}
|
|
879
938
|
for (const { spec, specReport, specGuardSkip } of routedByPhase[phase]) {
|
|
880
939
|
await runRoutedSpec({
|
|
881
940
|
spec,
|
|
@@ -891,6 +950,8 @@ async function runSpecs({ resolvedTests }) {
|
|
|
891
950
|
platform,
|
|
892
951
|
markAutoRecord,
|
|
893
952
|
limit,
|
|
953
|
+
resourceRegistry,
|
|
954
|
+
exclusivityCtx,
|
|
894
955
|
});
|
|
895
956
|
}
|
|
896
957
|
}
|
|
@@ -998,7 +1059,7 @@ async function runSpecs({ resolvedTests }) {
|
|
|
998
1059
|
* NEVER touches the summary — Phase-3 in runSpecs remains the sole tally site;
|
|
999
1060
|
* here we only push reports.
|
|
1000
1061
|
*/
|
|
1001
|
-
async function runRoutedSpec({ spec, specReport, specGuardSkip, config, runnerDetails, appiumPool, portToDisplay, metaValues, installAttempts, warmUpResults, platform, markAutoRecord, limit, }) {
|
|
1062
|
+
async function runRoutedSpec({ spec, specReport, specGuardSkip, config, runnerDetails, appiumPool, portToDisplay, metaValues, installAttempts, warmUpResults, platform, markAutoRecord, limit, resourceRegistry, exclusivityCtx, }) {
|
|
1002
1063
|
// Set once a `stop:spec` (or deferred `stop:run`) decision halts the spec; the
|
|
1003
1064
|
// remaining tests are recorded SKIPPED with the stop reason and not executed.
|
|
1004
1065
|
let stopRest = false;
|
|
@@ -1133,9 +1194,20 @@ async function runRoutedSpec({ spec, specReport, specGuardSkip, config, runnerDe
|
|
|
1133
1194
|
contextJobs.push(result.job);
|
|
1134
1195
|
}
|
|
1135
1196
|
});
|
|
1136
|
-
//
|
|
1137
|
-
//
|
|
1138
|
-
|
|
1197
|
+
// Tag the routed contexts with their display resources (recordings, plus
|
|
1198
|
+
// every driver context when the run has a recording) so they queue on the
|
|
1199
|
+
// SAME run-wide registry as the flat pool — a routed recording never
|
|
1200
|
+
// overlaps a flat-pool recording or driver context. Only at limit>1; serial
|
|
1201
|
+
// runs ignore the tags.
|
|
1202
|
+
if (limit > 1) {
|
|
1203
|
+
for (const job of contextJobs)
|
|
1204
|
+
job.exclusiveResources = jobDisplayResources(job, exclusivityCtx);
|
|
1205
|
+
}
|
|
1206
|
+
// Run the runnable contexts with the same crash-isolation shape as the flat
|
|
1207
|
+
// pool. runContext is reused verbatim. At limit>1 use the resource-aware
|
|
1208
|
+
// pool so display recordings serialize while the rest run in parallel; at
|
|
1209
|
+
// limit===1 keep the byte-identical runConcurrent path.
|
|
1210
|
+
const runRoutedJob = async (job) => {
|
|
1139
1211
|
try {
|
|
1140
1212
|
job.contexts[job.slot] = await runContext({
|
|
1141
1213
|
config,
|
|
@@ -1163,7 +1235,13 @@ async function runRoutedSpec({ spec, specReport, specGuardSkip, config, runnerDe
|
|
|
1163
1235
|
steps: [],
|
|
1164
1236
|
};
|
|
1165
1237
|
}
|
|
1166
|
-
}
|
|
1238
|
+
};
|
|
1239
|
+
if (limit > 1) {
|
|
1240
|
+
await runResourceAware(contextJobs, limit, resourceRegistry, runRoutedJob);
|
|
1241
|
+
}
|
|
1242
|
+
else {
|
|
1243
|
+
await runConcurrent(contextJobs, limit, runRoutedJob);
|
|
1244
|
+
}
|
|
1167
1245
|
// Roll the test up (flow != verdict: this result is final and never altered
|
|
1168
1246
|
// by routing). Phase-3 re-derives this identical value when tallying; we set
|
|
1169
1247
|
// it here so test-level routing can read the verdict. Only `$$platform` is
|