fix(e2e): reject loose docker stats CPU samples

This commit is contained in:
Vincent Koc
2026-06-18 20:57:48 +02:00
parent 9ab9469d04
commit f381dca15b
2 changed files with 11 additions and 1 deletions

View File

@@ -57,7 +57,12 @@ function parseMemoryMiB(raw) {
}
function parseCpuPercent(raw) {
const parsed = Number(String(raw || "").replace(/%$/u, ""));
const text = String(raw ?? "").trim();
const valueText = text.endsWith("%") ? text.slice(0, -1).trim() : text;
if (!NON_NEGATIVE_DECIMAL_PATTERN.test(valueText)) {
return undefined;
}
const parsed = Number(valueText);
return Number.isFinite(parsed) ? parsed : undefined;
}

View File

@@ -77,6 +77,11 @@ describe("scripts/e2e/lib/docker-stats/assert-resource-ceiling.mjs", () => {
expect(malformed.status).not.toBe(0);
expect(malformed.stderr).toContain("had invalid MemUsage");
const looseCpu = runAssert(writeStats('{"MemUsage":"128MiB / 2GiB","CPUPerc":"1e3%"}\n'));
expect(looseCpu.status).not.toBe(0);
expect(looseCpu.stderr).toContain("had invalid CPUPerc");
});
it("reports and enforces parsed Docker resource peaks", () => {