test(audit): let header reads pass before packaged probe failure

Refs #10443

Co-Authored-By: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
This commit is contained in:
Vinícius DS Andradeandgensokyo-dev authored and Ysopwnable committed 2026-11-14 12:13:50 +01:00
1 parent 4c22948817
commit b8b4155ba8
1 file changed
+22 -19
+22 -19
View File
@@ -1798,7 +1798,7 @@ describe("ReleaseExposureReader packaged probe allowance", () => {
}
};
it("keeps probing later packaged images after an unread zero-byte probe", async () => {
it("keeps probing after a zero-byte unread packaged image", async () => {
const root = await createTestTempDirectory("rea-release-unread-probe-");
const broken = Buffer.alloc(8192);
broken.set([0x7f, 0x45, 0x4c, 0x46], 0);
@@ -1816,15 +1816,19 @@ describe("ReleaseExposureReader packaged probe allowance", () => {
(reader) => {
const open = reader.open.bind(reader);
reader.open = (entry, signal) => {
if (!entry.path.endsWith("01-broken.node")) return open(entry, signal);
if (!entry.path.endsWith("01-broken.node")) {
return open(entry, signal);
}
brokenOpens += 1;
return Promise.reject(new Error("member read failed"));
return brokenOpens === 1
? open(entry, signal)
: Promise.reject(new Error("member read failed"));
};
return reader;
},
() => inspect(root),
);
expect(brokenOpens).toBe(1);
expect(brokenOpens).toBe(2);
expect(scanned.coverage).toBe("unknown");
expect(scanned.limitations).toContainEqual(
expect.stringMatching(
@@ -1838,14 +1842,11 @@ describe("ReleaseExposureReader packaged probe allowance", () => {
);
expect(scanned.limitations.join("\n")).toContain("was not expanded");
expect(scanned.omitted).toContainEqual(
expect.objectContaining({
subject: "embedded package probes",
count: 1,
}),
expect.objectContaining({ subject: "embedded package probes", count: 1 }),
);
});
it("charges partial bytes of an unread probe to the packaged allowance", async () => {
it("charges partial unread bytes to the packaged allowance", async () => {
const root = await createTestTempDirectory("rea-release-partial-probe-");
const elf = (size: number): Buffer => {
const bytes = Buffer.alloc(size);
@@ -1871,14 +1872,16 @@ describe("ReleaseExposureReader packaged probe allowance", () => {
source.open = (entry, signal) => {
if (entry.path.endsWith("01-first.node")) {
firstOpens += 1;
return Promise.resolve(
Readable.from(
(function* (): Generator<Buffer> {
yield Buffer.alloc(4096);
throw new Error("damaged image");
})(),
),
);
if (firstOpens > 1) {
return Promise.resolve(
Readable.from(
(function* (): Generator<Buffer> {
yield Buffer.alloc(4096);
throw new Error("damaged image");
})(),
),
);
}
}
if (entry.path.endsWith("02-second.node")) secondOpens += 1;
return open(entry, signal);
@@ -1893,8 +1896,8 @@ describe("ReleaseExposureReader packaged probe allowance", () => {
),
);
if (!result.ok) throw result.error;
expect(firstOpens).toBe(1);
expect(secondOpens).toBe(0);
expect(firstOpens).toBe(2);
expect(secondOpens).toBe(2);
expect(result.value.limitations).toContainEqual(
expect.stringMatching(
/^Did not probe .*01-first\.node for an embedded package\.$/u,