McRogueFace/tests
John McCardle 28396b65c9 feat: Migrate to Python 3.14 (closes #135)
Replace deprecated Python C API calls with modern PyConfig-based initialization:
- PySys_SetArgvEx() -> PyConfig.argv (deprecated since 3.11)
- Py_InspectFlag -> PyConfig.inspect (deprecated since 3.12)

Fix critical memory safety bugs discovered during migration:
- PyColor::from_arg() and PyVector::from_arg() now return new references
  instead of borrowed references, preventing use-after-free when callers
  call Py_DECREF on the result
- GameEngine::testTimers() now holds a local shared_ptr copy during
  callback execution, preventing use-after-free when timer callbacks
  call delTimer() on themselves

Fix double script execution bug with --exec flag:
- Scripts were running twice because GameEngine constructor executed them,
  then main.cpp deleted and recreated the engine
- Now reuses existing engine and just sets auto_exit_after_exec flag

Update test syntax to use keyword arguments for Frame/Caption constructors.

Test results: 127/130 passing (97.7%)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 17:48:12 -05:00
..
benchmarks refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
demo refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
geometry_demo fix: Refine geometry demos for 1024x768 and fix animations 2025-11-26 04:54:13 -05:00
integration Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
notes feat: Exit on first Python callback exception (closes #133) 2025-11-26 10:26:30 -05:00
regression refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
unit feat: Migrate to Python 3.14 (closes #135) 2025-11-26 17:48:12 -05:00
run_tests.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00