Skip to content

No test infrastructure for Importers (GLTF/FBX/Assimp) or ZUI #735

Description

@JeanPhilippeKernel

Context

Flagged as a gap while fixing #684 (PR #734) and #732 (PR #733) — both fixes shipped without regression tests because there's no existing test scaffolding for either module.

  • `ZEngine/tests/` has no directory for `Importers/` (GltfImporter, FbxImporter, AssimpImporter, EnvironmentMapImporter) or `UI/` (ZUIDockspace, ZUILayout, etc.)
  • Both modules currently only get exercised manually (drag a panel, import a model) — there's no way to lock in a regression once found

What's needed

Importers:

  • A test fixture set: small hand-crafted or minimal GLTF/FBX files, including at least one with deliberately malformed/out-of-range submesh indices (to cover the fix(importer): crash in meshopt during GLTF import — out-of-range submesh indices #684 regression)
  • CMake registration under `ZEngine/tests/Importers/` following the existing pattern in `ZEngine/tests/CMakeLists.txt`
  • At minimum: a test that imports a valid multi-submesh file and checks output vertex/index counts, and a test that imports the malformed fixture and asserts no crash + optimization was skipped for the bad submesh

ZUI:

  • A test directory for `ZUIDockspace` / `ZUILayout` — these operate on plain structs (`ZUIDockTree`, `ZUIDockNode`) with no GPU/window dependency, so they're actually straightforward to unit test in isolation
  • At minimum: a test that builds a dock tree, calls `ZUIDockLayout` with a shrinking root rect across multiple frames, and asserts no leaf rect ever has negative or zero width/height (regression coverage for panel docking on windows something trigger vkCmdSetScissor error #732)

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Medium priority — plannedenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions