test(perf): track-only runtime-perf E2E for eeschema + pcbnew
Measures the current build's cold load, open+render, and pan/zoom FPS (1x/4x/6x CPU-throttle sweep) for both editors, writing tests/test-results/perf-*.json. Track-only: asserts only that the app booted and the document opened — no perf thresholds, so it never gates CI. Runs on a new Chromium `perf` Playwright project (CDP throttling; pcbnew needs V8 anyway) via `npm run test:perf`, and is wired into wasm-build.yml as a continue-on-error step so the numbers are captured/uploaded without flaking the gate. Reuses the existing fixtures, ready-signal, fs-inject, and board-ready helpers; FPS counter is cancel-able so a throttle sweep on one page doesn't accumulate rAF loops. .gitignore: ignore /benchmark-builds/ (disposable prebuilt-WASM + standalone harness bundle used to reproduce the native-vs-JS-EH comparison locally). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7eb65f5b6a
commit
3e5791774b
7 changed files with 268 additions and 3 deletions
10
.github/workflows/wasm-build.yml
vendored
10
.github/workflows/wasm-build.yml
vendored
|
|
@ -304,6 +304,16 @@ jobs:
|
|||
working-directory: tests
|
||||
run: xvfb-run -a npm run test:kicad:ci
|
||||
|
||||
# Runtime-perf E2E (eeschema + pcbnew): measures the current build's
|
||||
# load / open+render / FPS and writes tests/test-results/perf-*.json.
|
||||
# Track-only — never gates the build (continue-on-error). CI is
|
||||
# headless/SwiftShader so FPS is CPU-bound + noisy; openMs is the stable number.
|
||||
- name: KiCad runtime perf (track-only, non-gating)
|
||||
if: inputs.run_tests
|
||||
continue-on-error: true
|
||||
working-directory: tests
|
||||
run: xvfb-run -a npm run test:perf
|
||||
|
||||
- name: Upload test logs & screenshots
|
||||
if: always() && inputs.run_tests
|
||||
uses: actions/upload-artifact@v4
|
||||
|
|
|
|||
Loading…
Reference in a new issue