mirror of
https://github.com/morluto/rea.git
synced 2026-11-14 18:52:48 +00:00
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:
1 parent
4c22948817
commit
b8b4155ba8
1 file changed
+22
-19
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user