12 Commits
Author SHA1 Message Date
西风逍遥游 2abd66f4b6 test: terminate isolated Windows runner cleanly 2026-09-01 17:05:02 +08:00
西风逍遥游 b9a5df3658 Merge remote-tracking branch 'origin/dev' into codex/ios-test-fixes 2026-08-22 01:24:00 +08:00
西风逍遥游 9c916db9fc fix(test): resolve __FILE__-based asset paths on the iOS test app; anchor --file filter to the basename 2026-08-21 23:21:41 +08:00
西风逍遥游 0d9319bef0 Merge pull request #162 from EVEngine/codex/ios-test-app
feat(ios): iOS test app mirroring the Android zeroerr runner
2026-08-21 22:57:05 +08:00
西风逍遥游 a7c6ddfcba style(test): clang-format clean for per-file filter additions 2026-08-21 20:49:24 +08:00
西风逍遥游 dd2fa82c4f feat(ios): per-file test filtering + exit-after-run; add run/ios-test-all-debug driver 2026-08-21 20:48:53 +08:00
西风逍遥游 79bf3c12cb fix(ios): keep screen awake during test run so auto-lock cannot SIGKILL the suite 2026-08-21 20:38:13 +08:00
西风逍遥游 9784845181 style(test): clang-format-18 clean for iOS test app sources 2026-08-21 17:59:10 +08:00
西风逍遥游 346205cdb6 feat(ios): add iOS test app mirroring the Android zeroerr runner 2026-08-21 17:41:00 +08:00
西风逍遥游 454c4b5504 gpu-driven: fix indirect instance indexing and bind per-mesh buffers
Stage 1 (CPU indirect draw) produced no geometry for the second draw:
- mesh3d_gpudriven.vert added pc.firstInstance on top of gl_InstanceIndex,
  which already includes VkDrawIndexedIndirectCommand.firstInstance per the
  Vulkan spec; the second command read instance 2 instead of 1 and sampled
  garbage matrices. Drop the push-constant indirection entirely.
- gpuDrivenSubmitOpaque never bound vertex/index buffers; each GpuMesh owns
  its own buffer pair (vertexBase/firstIndex are 0), so draws ran against
  whatever the legacy path left bound. Track meshRecordOwners_ parallel to
  the GPU mesh table and bind per-mesh at bucket boundaries.

Test: GpuDriven.opaqueForwardParityMultiTexture now uses a distinct bindless
slot-1 albedo on the second sphere; all 5 GpuDriven tests + IndirectBuilder
tests pass (integrated GPU). Also add the shared Windows crash-backtrace
handler (CrashHandler.h) to unit_test and document the repo debugging
playbook (incl. stale-object/layout pitfalls with unscanned Ninja deps) in
AGENTS.md.
2026-08-21 13:35:57 +08:00
西风逍遥游 a6901a0691 feat(android): run zeroerr unit_test suite as an Android test app
Adds EVENGINE_ANDROID_TEST_APP build mode: the unit_test sources are
compiled into libmain.so (SDL entry) and packaged by the existing Gradle
APK along with the test assets, so the full zeroerr suite can run on a
device via adb logcat.

- test/main.cpp: Android runner with LogcatBuf (cout/cerr -> logcat),
  chdir to <files>/evengine_test, SDL_Init; keeps SDL_main symbol unmangled.
- test/PathBesideSource.h: shared pathBesideThisSource helper that maps
  __FILE__ to the on-device unpacked tree on Android.
- EVTestActivity: unpacks assets/test + assets/examples to internal
  storage and passes an optional --testcase filter from an intent extra.
- test/CMakeLists.txt: builds `main` instead of unit_test on Android,
  excludes desktop-only devtools tests, links Android system libs.
- Makefile: build/android-debug-test, sync/android-test-assets,
  run/android-test-debug, log/android-test targets.
- Gradle wrapper bumped to 8.5 for Java 21 compatibility.
2026-08-14 23:05:42 +08:00
西风逍遥游 c804116d41 feat: migrate tests from GoogleTest to zeroerr with CTest discovery
Embed zeroerr as a submodule with ZEROERR_NO_MAIN, migrate all unit tests, and register each case with CTest via ZeroErrDiscoverTests.
2026-08-04 22:53:04 +08:00