pcbjam/tests/kicad
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Istvan Matejcsok add7c60975 fix(ci): serialize the heavy 3D-viewer e2e specs (dedicated chromium-ci-3d project)
The three heavy 3D-viewer specs (3d-viewer, 3d-viewer-deadlock, 3d-viewer-models)
crashed on CI (run 28604015154): "Target crashed", "browser has been closed", and a
black frozen canvas. Each boots the 3D-enabled pcbnew build, which pre-warms
~hardwareConcurrency*2+8 (~68 on the 30-core VM) Web Workers AND runs a multi-threaded
CPU raytracer over SwiftShader software-WebGL. Under fullyParallel the three spec FILES
run in separate browser processes concurrently, and the simultaneous raytrace tabs
exhaust the shared GPU process's ~16 live-WebGL-context limit / renderer memory. The
pool pre-warm (the deadlock fix, 7630c7e) is correct and present in the tested binary;
per-file isolation prevented in-process Worker accumulation but NOT this cross-process
concurrency — the gap these specs' first CI exposure hit.

Fix (test-orchestration only; no wasm/submodule changes):
- Route the three specs to a dedicated `chromium-ci-3d` Playwright project (own
  outputDir=pw-artifacts/kicad-3d so its failure traces survive the later perf run's
  wipe; the existing tests/pw-artifacts/** upload already captures it).
- test:kicad:ci runs it as a SECOND `playwright test` pass with --workers=1, so at most
  one raytrace tab is alive at a time (the environment in which a single 3D load is
  reliably green — docs/features/3d-raytracer/README.md §7). An exit-code-aggregating
  sequencer runs both phases and fails if either fails (no silent skip of the 3D pass).
- Cap phase-1 CI workers to 12 as headroom under the WebGL-context cap.
- Log a resource-diagnostic snapshot (hardwareConcurrency, pthread pool, GL-canvas
  count, wasm/JS heap) before each 3D interaction so any recurrence is attributable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 12:21:04 +02:00
..
utils fix(ci): serialize the heavy 3D-viewer e2e specs (dedicated chromium-ci-3d project) 2026-07-04 12:21:04 +02:00
3d-viewer-deadlock.spec.ts fix(ci): serialize the heavy 3D-viewer e2e specs (dedicated chromium-ci-3d project) 2026-07-04 12:21:04 +02:00
3d-viewer-models.spec.ts fix(ci): serialize the heavy 3D-viewer e2e specs (dedicated chromium-ci-3d project) 2026-07-04 12:21:04 +02:00
3d-viewer.spec.ts fix(ci): serialize the heavy 3D-viewer e2e specs (dedicated chromium-ci-3d project) 2026-07-04 12:21:04 +02:00
appearance.spec.ts fix: 🐛 pcb layers tab 2026-06-16 09:33:41 +02:00
calculator.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
contextmenu-scrollbar-pcbnew.spec.ts feat(wasm-dom): tests for context menus + scrollbars; fix clean wx build 2026-06-13 23:15:49 +02:00
contextmenu-scrollbar.spec.ts feat(wasm-dom): tests for context menus + scrollbars; fix clean wx build 2026-06-13 23:15:49 +02:00
dark-mode.spec.ts fix: 🐛 dark color theme 2026-06-12 12:54:26 +02:00
eeschema-collab.spec.ts feat: adopt shared wasm wire schemas; resurrect collab e2e bundle (ysync 0008 A) 2026-06-12 14:05:40 +02:00
eeschema-crosshair.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
eeschema-load.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
eeschema-perf.spec.ts test(perf): track-only runtime-perf E2E for eeschema + pcbnew 2026-07-01 14:43:54 +02:00
eeschema-subschema.spec.ts feat(eeschema): hierarchical subschema collaboration — per-sheet rooms, lazy seed, save flow, embind + e2e 2026-06-17 17:55:30 +02:00
eeschema-ui.spec.ts fix(eeschema-wasm): quasi-modal dialogs no longer freeze; Backspace deletes selection 2026-06-05 13:56:42 +02:00
eeschema-url-regex.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
eeschema.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
fixtures.ts feat(wasm): occ-split — lazy occ_service worker; kicad_editor drops OCC (−31%) 2026-07-03 12:39:58 +02:00
frame-runtime.spec.ts feat(wasm): kicad_editor — merge the pcbnew+eeschema kifaces into ONE bundle (Part 2) 2026-07-02 17:56:02 +02:00
gerbview-print.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
gerbview.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
items-bridge.spec.ts feat: v2 per-item s-expr collab bridge in all three tools (ysync 0008 Stage C) 2026-06-12 14:05:40 +02:00
load-pcb-probe.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
load-pcb.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
occ-export.spec.ts feat(wasm): occ-split — lazy occ_service worker; kicad_editor drops OCC (−31%) 2026-07-03 12:39:58 +02:00
occ-probe.spec.ts feat(wasm): occ-split — lazy occ_service worker; kicad_editor drops OCC (−31%) 2026-07-03 12:39:58 +02:00
pcbnew-collab.spec.ts feat(wasm-eh): migrate the WASM build to native wasm exceptions (+ 3D viewer default-on) 2026-06-30 09:40:26 +02:00
pcbnew-move.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
pcbnew-perf.spec.ts test(perf): track-only runtime-perf E2E for eeschema + pcbnew 2026-07-01 14:43:54 +02:00
pcbnew.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
pl_editor-collab.spec.ts feat: adopt shared wasm wire schemas; resurrect collab e2e bundle (ysync 0008 A) 2026-06-12 14:05:40 +02:00
pl_editor-load.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
pl_editor-uuid.spec.ts feat(pl_editor): add KIID m_Uuid + (uuid) to .kicad_wks format (yjs-bridge commit 1) 2026-06-05 13:56:38 +02:00
pl_editor.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
roundtrip.spec.ts feat: ysync 0008 Stage D — wire the v2 items collab into the app + verify 2026-06-12 14:05:40 +02:00
save-hook.spec.ts feat: standalone save/load routing + VITE_DOC_SOURCE ydoc mode 2026-06-12 14:05:40 +02:00
symbol_editor.spec.ts feat(tests): screenshot regression + Discord review, perf-tracked 2026-07-01 18:17:20 +02:00
xface-probe.spec.ts docs+test(wasm): Part 2 as-built record; cross-face probe spec 2026-07-02 17:56:02 +02:00
zoom-cursor.spec.ts fix(e2e): make the firefox kicad suite pass on GPU-less CI runners 2026-06-11 13:25:02 +02:00