Commit graph pcbjam/tests
Author SHA1 Message Date
Viktor Vaczi
5918557545 Fix Vertex Arrays GL test crash and add OpenGL test suite
- Change glDrawElements index type from GL_UNSIGNED_BYTE to GL_UNSIGNED_SHORT
  to match KiCad's actual usage and Emscripten's legacy GL emulation requirements
- Add dedicated opengl.spec.ts test file for OpenGL-specific tests
- All 5 GL test types now work: Immediate Mode, Matrix Ops, Vertex Arrays,
  State Mgmt, and Texture Coords

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 12:58:14 +01:00
Viktor Vaczi
12dfa67894 Add TypeScript configuration for Playwright tests
Add proper TypeScript setup with tsconfig.json and type definitions
to resolve type errors in the e2e test files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 12:39:30 +01:00
Viktor Vaczi
e4cb9e5abc Add popup z-ordering tests and fix dropdown close behavior
- Add z-ordering tests for dropdown popups appearing above GL canvas
- Add GL canvas visibility tests when switching tabs
- Fix test to click dropdown arrow button to close (clicking elsewhere
  doesn't close wxChoice dropdowns)
- Update wxWidgets submodule with popup z-ordering and dismissal fixes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 12:32:16 +01:00
Viktor Vaczi
a538954b70 Fix wxChoice/wxComboBox dropdown rendering and add tests
- Fix empty clip region bug in wx.js clipRect function
- Add dropdown mouse interaction tests
- Add *.log to gitignore
- Make build script clean by default (use --no-clean to skip)
- Add wxGLCanvas canvas element fix documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 10:08:42 +01:00
Viktor Vaczi
3287ec7616 Add GL immediate mode shim for Emscripten compatibility
Create custom JS library (lib/gl_immediate_shim.js) that fixes two
Emscripten LEGACY_GL_EMULATION issues without modifying KiCad source:

1. Color-per-vertex requirement: Emscripten requires glColor before
   each glVertex, but standard OpenGL uses persistent "current color".
   The shim tracks color state and auto-injects before each vertex.

2. Missing double-precision functions: glVertex2d, glVertex3d,
   glColor3d, glColor4d are unimplemented in Emscripten (wontfix).
   The shim provides these as wrappers to float variants.

Update test code to use standard OpenGL patterns (color set once,
multiple vertices) to verify the shim works correctly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 21:22:09 +01:00
Viktor Vaczi
0db33b10f7 Fix Emscripten immediate mode GL and add comprehensive tests
- Fix immediate mode (glBegin/glEnd) by using color-per-vertex pattern
- Document Emscripten's requirement for color per vertex in GL_README.md
- Add OpenGL test tab with visual rendering verification
- Test GL_TRIANGLES, GL_QUADS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP
- Update wxwidgets submodule with improved context management

Key finding: Emscripten's LEGACY_GL_EMULATION requires glColor*() to be
called before EACH glVertex*() call, not using OpenGL's "current color"
semantic. This is because the stride calculation expects interleaved
vertex data with color per vertex.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 20:14:59 +01:00
Viktor Vaczi
4069de6a0b Fix wxWidgets WASM rendering and add comprehensive tests
- Update wxwidgets submodule with bitmap, template, and listbox fixes
- Add pcre2 include path to build script
- Add comprehensive UI interaction test covering all tabs
- Update test app with full control demonstration
- Add Makefile.wasm with HEAP exports for Emscripten
- Fix .gitignore to not ignore Makefile.wasm

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 14:28:05 +01:00
Viktor Vaczi
3f67fed173 Add Playwright test infrastructure for wxWidgets WASM port
- Add tests/ directory with Playwright e2e tests
- Add minimal wxWidgets WASM test application
- Add build script for test app (scripts/build-wasm-test.sh)
- Update wxWidgets submodule with WASM build fixes
- Update .gitignore for test artifacts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 13:10:05 +01:00