CI green on a loaded shared machine: browser suites (now also glyph-ligatures and feature-fit, through the shared launch helper) in one dedicated shard started first at concurrency 2; timeouts scaled by load ÷ cores (tests/helpers/load.ts, max(1-, 5-min average), capped at 5x, logged) for browser tests, waits, launch/close, the other shards' default and the desktop boot check; one retry for a browser test that timed out while the factor was above 2, listed as 'retried under load' in the CI summary, never for an assertion failure; the six-type App Privacy walk no longer dumps every step (the --debug-dump check walks two types), wait timeouts print per-line times; play-edit-lock checks reads in flight instead of wall time; tests/load-retry.test.ts
This commit is contained in:
parent
21fa91afd1
commit
918146d4a6
13 changed files with 261 additions and 96 deletions
|
|
@ -25,6 +25,7 @@ import { extname, join, resolve } from 'node:path';
|
|||
import type { Browser, Page } from 'playwright';
|
||||
import { APPLE_STATUS_FIRST_REVIEW, APPLE_STATUS_READY, APPLE_STATUS_UNRESOLVED, ownerDry, PLAY_STATUS, PLAY_STATUS_FIRST_200, PLAY_STATUS_FIRST_404 } from '../apps/desktop/src/dev/submit-fixtures';
|
||||
import { appleReleases, playReleases, releaseTrains } from '../cli/lib/portfolio';
|
||||
import { LOAD, loadNote, scaled } from '../tests/helpers/load';
|
||||
import { EXAMPLE_CLOUD_PROJECT, healthApiDisabled, SCAN_FAILED, SCAN_FAILED_LINE, SCAN_FINDINGS } from '../apps/desktop/src/dev/error-fixtures';
|
||||
|
||||
const ROOT = resolve(import.meta.dir, '..');
|
||||
|
|
@ -241,8 +242,10 @@ async function state(page: Page) {
|
|||
|
||||
/** A quiet window: no host call in flight and no DOM change for this long means the last action is done. */
|
||||
const QUIET_MS = 150;
|
||||
/** Upper bound of one wait for a condition (a loaded machine); a wait that runs out is a failure or a check as-is. */
|
||||
const WAIT_MS = 15_000;
|
||||
/** Upper bound of one wait for a condition, scaled by load ÷ cores (tests/helpers/load.ts: the machine is shared); a
|
||||
* wait that runs out is a failure or a check as-is. */
|
||||
const WAIT_MS = scaled(15_000);
|
||||
console.log(`desktop boot check: ${loadNote(LOAD)}`);
|
||||
|
||||
/**
|
||||
* Waits until the window is quiet (initScript's counters: no host call in flight, no DOM change for QUIET_MS): what a
|
||||
|
|
@ -596,7 +599,7 @@ async function runReleaseStateCase(browser: Browser, sidecar: Sidecar, page404:
|
|||
}
|
||||
|
||||
/** Longest wait for the background reader to read everything of every app (a loaded machine). */
|
||||
const READ_ALL_MS = 120_000;
|
||||
const READ_ALL_MS = scaled(120_000);
|
||||
|
||||
/**
|
||||
* Auto-read: the dev fixture state (src/dev/fixtures.ts: 2 app folders and the store-only apps of 5 accounts, at least 8
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue