test: tests that assumed an idle machine wait for what they assert, or carry a budget for their work
Under a busy machine (the gate's lanes side by side, 12 busy cores) these went red at random: a press landed while the button was still busy, an answer was settled before it was asked for, a page grew past one wait's budget, a lazy chunk was transformed inside a 1 s wait, focus was taken a frame after the press. They now wait for the condition they depend on, preload the chunks they open, and the tests that do heavy work (whole-repo scans, the type-aware linter, module resets) carry an explicit budget naming that work. The whole suite four times under 12 busy-loop processes: red 4/4 before, 0/4 after.
This commit is contained in:
@@ -54,6 +54,11 @@ beforeAll(async () => {
|
||||
}, 60_000);
|
||||
|
||||
let current: typeof import("./diagnostics") | null = null;
|
||||
// Warm or not, each case still loads and evaluates the modules it imports afresh after its module
|
||||
// reset: tens of ms idle, but the same reload put sibling suites past 5 s when the full suite's
|
||||
// workers share a busy machine.
|
||||
const CASE_BUDGET = 30_000;
|
||||
|
||||
beforeEach(() => {
|
||||
vi.useFakeTimers();
|
||||
vi.resetModules();
|
||||
@@ -73,7 +78,7 @@ async function fresh() {
|
||||
|
||||
const flat = () => sent.flat();
|
||||
|
||||
describe("a debug session applied to the tab", () => {
|
||||
describe("a debug session applied to the tab", { timeout: CASE_BUDGET }, () => {
|
||||
it("raises the base level to its own, and tags and streams what it keeps", async () => {
|
||||
const d = await fresh();
|
||||
d.applyDiagnostics(BASE, recording("DEBUG"), () => {});
|
||||
|
||||
Reference in New Issue
Block a user