fix(ci): the producer integration test list is data, not part of the pinned selection logic (#6467)

This commit is contained in:
Miguel Ángel
2026-10-26 19:29:17 +00:00
committed by GitHub
parent e42318d08b
commit 9b339e37cb
4 changed files with 55 additions and 43 deletions
@@ -0,0 +1,39 @@
[
"tests/distributed/_smoke/webm-concat-copy.test.ts",
"tests/playback-rate-av-parity/playback-rate-av-parity.test.ts",
"src/regression-harness-psnr.test.ts",
"src/regression-harness-audio.test.ts",
"src/services/bundleScriptPolicy.test.ts",
"src/services/coreRuntimeBrowser.test.ts",
"src/services/heifImagePrep.test.ts",
"src/services/htmlCompiler.heif.test.ts",
"src/services/vfxDeterminism.test.ts",
"src/services/distributed/assemble.test.ts",
"src/services/distributed/chunkBoundary.test.ts",
"src/services/distributed/crossWorkerIdempotency.test.ts",
"src/services/distributed/plan.masterBus.test.ts",
"src/services/distributed/plan.test.ts",
"src/services/distributed/planSizeCap.test.ts",
"src/services/distributed/planV2RemoteFiles.test.ts",
"src/services/distributed/renderChunk.test.ts",
"src/services/fileServer.test.ts",
"src/services/fileServer.file-race.test.ts",
"src/services/healthWorker.test.ts",
"src/services/scriptFailureAttribution.test.ts",
"src/services/hyperframeLint.file-race.test.ts",
"src/services/assetMediaType.test.ts",
"src/services/htmlCompiler.mediaType.test.ts",
"src/services/htmlCompiler.naturalDuration.test.ts",
"src/services/render/firstFrameStartingState.integration.test.ts",
"src/services/render/hlsRender.integration.test.ts",
"src/services/render/motionBlurVideo.integration.test.ts",
"src/services/render/renderCancel.integration.test.ts",
"src/services/render/segmentedColorGrading.integration.test.ts",
"src/services/render/wrappedMountTiming.integration.test.ts",
"src/services/render/stages/compileStage.mediaType.test.ts",
"src/services/render/stages/encodeWhileCapturing.test.ts",
"src/services/render/stages/gifEncodeArgs.test.ts",
"src/services/videoFrameBorderClip.test.ts",
"src/utils/audioRegression.test.ts",
"src/utils/streamDurationParity.test.ts"
]
@@ -5,48 +5,11 @@ import { fileURLToPath } from "node:url";
export const PRODUCER_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
// These tests need host capabilities such as Chrome, ffmpeg, worker threads,
// or local sockets. Keep the list explicit so a filename-only rename does not
// make Git/fallow re-audit thousands of unchanged test lines as new code.
const INTEGRATION_TEST_FILES = new Set([
"tests/distributed/_smoke/webm-concat-copy.test.ts",
"tests/playback-rate-av-parity/playback-rate-av-parity.test.ts",
"src/regression-harness-psnr.test.ts",
"src/regression-harness-audio.test.ts",
"src/services/bundleScriptPolicy.test.ts",
"src/services/coreRuntimeBrowser.test.ts",
"src/services/heifImagePrep.test.ts",
"src/services/htmlCompiler.heif.test.ts",
"src/services/vfxDeterminism.test.ts",
"src/services/distributed/assemble.test.ts",
"src/services/distributed/chunkBoundary.test.ts",
"src/services/distributed/crossWorkerIdempotency.test.ts",
"src/services/distributed/plan.masterBus.test.ts",
"src/services/distributed/plan.test.ts",
"src/services/distributed/planSizeCap.test.ts",
"src/services/distributed/planV2RemoteFiles.test.ts",
"src/services/distributed/renderChunk.test.ts",
"src/services/fileServer.test.ts",
"src/services/fileServer.file-race.test.ts",
"src/services/healthWorker.test.ts",
"src/services/scriptFailureAttribution.test.ts",
"src/services/hyperframeLint.file-race.test.ts",
"src/services/assetMediaType.test.ts",
"src/services/htmlCompiler.mediaType.test.ts",
"src/services/htmlCompiler.naturalDuration.test.ts",
"src/services/render/firstFrameStartingState.integration.test.ts",
"src/services/render/hlsRender.integration.test.ts",
"src/services/render/motionBlurVideo.integration.test.ts",
"src/services/render/renderCancel.integration.test.ts",
"src/services/render/segmentedColorGrading.integration.test.ts",
"src/services/render/wrappedMountTiming.integration.test.ts",
"src/services/render/stages/compileStage.mediaType.test.ts",
"src/services/render/stages/encodeWhileCapturing.test.ts",
"src/services/render/stages/gifEncodeArgs.test.ts",
"src/services/videoFrameBorderClip.test.ts",
"src/utils/audioRegression.test.ts",
"src/utils/streamDurationParity.test.ts",
]);
// The tests that need host capabilities such as Chrome, ffmpeg, worker threads or local sockets, one path per
// line, so adding one never edits (or re-pins) the selection logic below.
const INTEGRATION_TEST_FILES = new Set(
JSON.parse(readFileSync(resolve(PRODUCER_ROOT, "scripts/integration-tests.json"), "utf8")),
);
function collectTestFiles(directory, files = []) {
for (const entry of readdirSync(directory, { withFileTypes: true })) {
@@ -1,4 +1,5 @@
import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
import { describe, it } from "node:test";
import {
classifyTestSource,
@@ -7,6 +8,15 @@ import {
} from "./test-classification.mjs";
describe("producer test classification", () => {
it("keeps the integration list out of the selection logic the reachability check pins", () => {
const logic = readFileSync(new URL("./test-classification.mjs", import.meta.url), "utf8");
assert.doesNotMatch(logic, /["'][^"']*\/[^"']*\.test\.tsx?["']/);
const listed = JSON.parse(
readFileSync(new URL("./integration-tests.json", import.meta.url), "utf8"),
);
assert.equal(new Set(listed).size, listed.length);
});
it("classifies each supported runner into one lane", () => {
assert.deepEqual(classifyTestSource("src/a.test.ts", 'import { it } from "bun:test";'), {
file: "src/a.test.ts",
+1 -1
View File
@@ -47,7 +47,7 @@
],
"sources": {
"packages/producer/scripts/run-test-lane.mjs": "638885e14480d03290803389325a655f3749442167d784e07bb3af3404598af7",
"packages/producer/scripts/test-classification.mjs": "c434da94aa74aef060ef41736af798fd5a9af9236684a47d07a19661c1f78b9b",
"packages/producer/scripts/test-classification.mjs": "e0874fac79225203b38778b144adb753a656afa0f78e08758001ff32ba9a0c62",
".github/workflows/ci.yml#job#producer-source-tests": "45da72aa6cf08cdfd5bcf5311e89f12af4842f9eebc6735df19da8c02f4d4864",
"packages/producer/package.json#script#test:unit": "ae6beda8319d166774be958ea5593cd27dbf7f6c9bce1d787a3fe28dfc3477b1",
"packages/producer/package.json#script#test:integration": "008589f37d026877595a13501cbb66abd5cbe50e21fdcac6904f45466c3f475d",