test(e2e): fix wx suite — header deps, port pinning, drop legacy-GL tests, wx+pthread worker fix
Suite went 64 failed → 291 passed / 0 failed: - Makefile.wasm: compile with -MMD -MP and include .d files — stale objects relinked against a newer wx lib crashed apps at startup with "function signature mismatch" after any header/vtable change - playwright(.coroutine).config.ts: pin the server port for the whole run (resolvePort from playwright-kicad.config.ts); the 60s freshness window made workers restarted after a failure rotate to a dead port (ERR_CONNECTION_REFUSED cascade across ~50 tests) - drop legacy-GL testing: KiCad renders via WebGL GAL (gal-webgl.spec.ts); remove minimal_test's OpenGL tab/GLTestCanvas, opengl.spec.ts, GL z-order describes, -sLEGACY_GL_EMULATION + gl_immediate_shim.js from the test build, and the orphaned GL baselines - coroutine-pthread repro apps join the `all` target (make clean used to delete them while all never rebuilt them); clean no longer eats checked-in JS like worker_dom_stub.js - bump wxwidgets: guard module-eval document access so wx+pthread apps (threadpool tests) survive Web Worker eval Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
107fc7513f
commit
7629ab978d
53 changed files with 119 additions and 1060 deletions
|
|
@ -59,8 +59,8 @@ This section maps KiCad's wxWidgets usage to our test coverage.
|
|||
| Tab panels | wxNotebook | WORKS | 7 tabs switching correctly |
|
||||
| Property editor panels | wxSplitterWindow | WORKS | layout-01-loaded.png shows split panes |
|
||||
| Scrollable content | wxScrolledWindow | WORKS | 20 items scrollable in each pane |
|
||||
| OpenGL canvas | wxGLCanvas | WORKS | gl-01-opengl-tab.png shows rendering |
|
||||
| OpenGL context | wxGLContext | WORKS | Context created successfully |
|
||||
| OpenGL canvas | wxGLCanvas | WORKS | covered by gal-webgl tests (WebGL GAL) |
|
||||
| OpenGL context | wxGLContext | WORKS | covered by gal-webgl tests (WebGL GAL) |
|
||||
| Drawing/painting | wxDC | WORKS | 08-drawing-done.png shows strokes |
|
||||
| Mouse events | wxMouseEvent | WORKS | Drawing strokes captured |
|
||||
|
||||
|
|
@ -88,20 +88,11 @@ This section maps KiCad's wxWidgets usage to our test coverage.
|
|||
| Multi-line entry | wxTextCtrl (multiline) | WORKS | Line 1/2/3 typed successfully |
|
||||
| Password fields | wxTextCtrl (password) | WORKS | Password field visible |
|
||||
|
||||
### OpenGL Rendering - WORKING
|
||||
### OpenGL Rendering
|
||||
|
||||
| KiCad Use | GL Function | Test Status | Evidence |
|
||||
|-----------|-------------|-------------|----------|
|
||||
| Immediate mode | glBegin/glEnd | WORKS | Rainbow triangle renders |
|
||||
| Vertex positioning | glVertex2f/3f | WORKS | Shapes positioned correctly |
|
||||
| Colors | glColor3f/4f | WORKS | Rainbow colors visible |
|
||||
| Triangles | GL_TRIANGLES | WORKS | Triangle visible |
|
||||
| Quads | GL_QUADS | WORKS | Yellow rectangle visible |
|
||||
| Lines | GL_LINES | WORKS | Cyan lines visible |
|
||||
| Matrix operations | glMatrixMode, glTranslatef | WORKS | Test passes |
|
||||
| Vertex arrays | glVertexPointer, glDrawElements | WORKS | Test passes |
|
||||
| State management | glEnable, glDisable | WORKS | Test passes |
|
||||
| Blending | glBlendFunc, GL_BLEND | WORKS | Test passes |
|
||||
KiCad renders through the WebGL GAL path; see `gal-webgl.spec.ts` (26 scenarios).
|
||||
The legacy-GL-emulation tests (immediate mode via -sLEGACY_GL_EMULATION and
|
||||
gl_immediate_shim.js) were removed 2026-06-10 along with minimal_test's OpenGL tab.
|
||||
|
||||
### File Operations - PARTIAL
|
||||
|
||||
|
|
@ -251,11 +242,6 @@ Organized in `apps/standalone/` folders:
|
|||
- Add/Remove buttons functional
|
||||
- wxChoice: Dropdown opens with items (Red, Green, Blue, Yellow, Purple)
|
||||
|
||||
### OpenGL Tab
|
||||
- wxGLCanvas renders blue background
|
||||
- Immediate mode: Rainbow triangle
|
||||
- GL_QUADS: Yellow rectangle
|
||||
- GL_LINES: Cyan lines
|
||||
- Vertex arrays: Working
|
||||
- Matrix operations: Working
|
||||
- State management: Working
|
||||
|
|
@ -283,43 +269,42 @@ Organized in `apps/standalone/` folders:
|
|||
4. Basic controls (buttons, checkboxes, radio buttons, sliders)
|
||||
5. Text input (single/multi-line)
|
||||
6. List controls (wxListBox, wxChoice, wxComboBox)
|
||||
7. OpenGL rendering (immediate mode, vertex arrays, matrix ops)
|
||||
8. Drawing/painting (wxDC, mouse events)
|
||||
9. **wxMessageBox/wxDialog** - Modal dialogs with Asyncify
|
||||
10. **wxGrid** - Property grids with cells, labels, and events
|
||||
11. **wxTreeCtrl** - Hierarchy browsers with expand/collapse, selection, add/delete
|
||||
12. **wxClipboard** - Copy/paste via browser Clipboard API with Asyncify
|
||||
13. **wxDataViewCtrl** - Zone Manager, Net Inspector, Library browsers
|
||||
14. **wxHtmlWindow** - About dialogs, error message formatting
|
||||
15. **wxStyledTextCtrl** - DRC rules editor, Python console, script editors
|
||||
16. **wxPrinting** - Print preview, print dialog, browser print via window.print()
|
||||
17. **wxDragDrop** - External file drops via HTML5 drag and drop API
|
||||
18. **wxPropertyGrid** - Property panels with categories, various property types
|
||||
19. **wxPropertyGridManager** - Multi-page property organization
|
||||
20. **wxColourPickerCtrl** - Color pickers for layer colors
|
||||
21. **wxFontPickerCtrl** - Font pickers for text preferences
|
||||
22. **wxCollapsiblePane** - Expandable/collapsible property sections
|
||||
23. **wxListCtrl (virtual)** - Virtual mode for 10000+ item lists
|
||||
24. **wxInfoBar** - Notification bar for DRC messages, warnings
|
||||
25. **wxDataViewCtrl (virtual)** - Virtual mode for 10,000+ items (Zone Manager, Net Inspector)
|
||||
26. **wxAuiNotebook** - Closeable, reorderable tabbed panels
|
||||
27. **wxWizard** - Step-by-step Footprint Wizard dialog
|
||||
28. **wxGrid cell editing** - Full editing with text, number, choice, checkbox editors
|
||||
29. **wxCalendarCtrl** - Date picker with month/year navigation
|
||||
30. **wxGrid custom renderers** - Color swatches, icon+text, striped rows for layer manager
|
||||
31. **wxPrintPreview frame** - Print preview with zoom, page navigation
|
||||
32. **wxBitmapButton** - Toolbar buttons with custom bitmap icons
|
||||
33. **wxTreebook** - Hierarchical settings pages (General, Display>Colors, etc.)
|
||||
34. **wxBitmapComboBox** - Layer chooser dropdown with color swatch icons
|
||||
35. **wxCheckListBox** - Layer visibility list with checkboxes
|
||||
36. **wxValidator** - Input validation (text, integer, float, custom validators)
|
||||
37. **wxOwnerDrawnComboBox** - Custom dropdown rendering (layer selectors, font choosers)
|
||||
38. **wxPopupWindow** - Transient popups (toolbar palettes, color pickers)
|
||||
39. **wxXmlDocument** - XML parsing for config and project files
|
||||
40. **wxFontEnumerator** - Font enumeration via Local Font Access API (Chrome 103+)
|
||||
41. **wxMask (bitmap masking)** - Color-keyed transparency for toolbar icons
|
||||
42. **Text decorations** - Underline/strikethrough in wxDC text rendering
|
||||
43. **wxRegion clipping** - Non-rectangular clipping for complex shapes
|
||||
7. Drawing/painting (wxDC, mouse events)
|
||||
8. **wxMessageBox/wxDialog** - Modal dialogs with Asyncify
|
||||
9. **wxGrid** - Property grids with cells, labels, and events
|
||||
10. **wxTreeCtrl** - Hierarchy browsers with expand/collapse, selection, add/delete
|
||||
11. **wxClipboard** - Copy/paste via browser Clipboard API with Asyncify
|
||||
12. **wxDataViewCtrl** - Zone Manager, Net Inspector, Library browsers
|
||||
13. **wxHtmlWindow** - About dialogs, error message formatting
|
||||
14. **wxStyledTextCtrl** - DRC rules editor, Python console, script editors
|
||||
15. **wxPrinting** - Print preview, print dialog, browser print via window.print()
|
||||
16. **wxDragDrop** - External file drops via HTML5 drag and drop API
|
||||
17. **wxPropertyGrid** - Property panels with categories, various property types
|
||||
18. **wxPropertyGridManager** - Multi-page property organization
|
||||
19. **wxColourPickerCtrl** - Color pickers for layer colors
|
||||
20. **wxFontPickerCtrl** - Font pickers for text preferences
|
||||
21. **wxCollapsiblePane** - Expandable/collapsible property sections
|
||||
22. **wxListCtrl (virtual)** - Virtual mode for 10000+ item lists
|
||||
23. **wxInfoBar** - Notification bar for DRC messages, warnings
|
||||
24. **wxDataViewCtrl (virtual)** - Virtual mode for 10,000+ items (Zone Manager, Net Inspector)
|
||||
25. **wxAuiNotebook** - Closeable, reorderable tabbed panels
|
||||
26. **wxWizard** - Step-by-step Footprint Wizard dialog
|
||||
27. **wxGrid cell editing** - Full editing with text, number, choice, checkbox editors
|
||||
28. **wxCalendarCtrl** - Date picker with month/year navigation
|
||||
29. **wxGrid custom renderers** - Color swatches, icon+text, striped rows for layer manager
|
||||
30. **wxPrintPreview frame** - Print preview with zoom, page navigation
|
||||
31. **wxBitmapButton** - Toolbar buttons with custom bitmap icons
|
||||
32. **wxTreebook** - Hierarchical settings pages (General, Display>Colors, etc.)
|
||||
33. **wxBitmapComboBox** - Layer chooser dropdown with color swatch icons
|
||||
34. **wxCheckListBox** - Layer visibility list with checkboxes
|
||||
35. **wxValidator** - Input validation (text, integer, float, custom validators)
|
||||
36. **wxOwnerDrawnComboBox** - Custom dropdown rendering (layer selectors, font choosers)
|
||||
37. **wxPopupWindow** - Transient popups (toolbar palettes, color pickers)
|
||||
38. **wxXmlDocument** - XML parsing for config and project files
|
||||
39. **wxFontEnumerator** - Font enumeration via Local Font Access API (Chrome 103+)
|
||||
40. **wxMask (bitmap masking)** - Color-keyed transparency for toolbar icons
|
||||
41. **Text decorations** - Underline/strikethrough in wxDC text rendering
|
||||
42. **wxRegion clipping** - Non-rectangular clipping for complex shapes
|
||||
|
||||
### All KiCad-Critical Features Tested
|
||||
|
||||
|
|
@ -388,9 +373,8 @@ The `wasmedge_test` app verifies WASM-specific behaviors:
|
|||
## Build Notes
|
||||
|
||||
### GL vs Non-GL Apps
|
||||
- Main app (minimal_test) uses `LDFLAGS_GL` with OpenGL support
|
||||
- Standalone test apps use `LDFLAGS_NOGL` without OpenGL
|
||||
- This prevents "_glBegin is not defined" crashes in non-GL apps
|
||||
- All wx test apps (including minimal_test) link with `LDFLAGS_NOGL`; legacy GL
|
||||
emulation was removed 2026-06-10. WebGL rendering is tested by gal-webgl.
|
||||
|
||||
### Build Command
|
||||
Always use the build script:
|
||||
|
|
@ -483,7 +467,6 @@ npx playwright test --ui # Interactive mode with screenshot preview
|
|||
| 08-drawing-done.png | Drawing strokes on canvas |
|
||||
| 09-lists-tab.png | ListBox and Choice controls |
|
||||
| 10a-choice-dropdown-open.png | Dropdown menu open |
|
||||
| gl-01-opengl-tab.png | OpenGL rendering |
|
||||
| aui-01-loaded.png | AUI dockable panels |
|
||||
| menu-03-file-clicked.png | File menu dropdown |
|
||||
| toolbar-01-loaded.png | Toolbar with icons |
|
||||
|
|
|
|||
Loading…
Reference in a new issue