Skip to content

BasicShaderUniformsTestSuite: Rework so each uniform check reports its own result #351

Description

@YYDan

Description

BasicShaderUniformsTestSuite was never covered by the summer 2024 refactor campaign, and like BasicShaderTestSuite it does not fit the standard split pattern.

The suite is 1,173 lines across 18 addTestAsync() tests and contains zero direct assert_ calls. All verification goes through helpers — verify_shader_compiled() and the draw-comparison utilities — driven across multiple frames by objTestAsyncDraw. Several tests set a value on the first frame and check it can be modified on the second.

The largest are gm_matrix_world_view_projection (110 lines), gm_matrix_world_view (87), and gm_matrix_view / gm_matrix_projection / gm_matrix_world (84 each).

Two things need deciding before any splitting:

  1. Whether the helper-based verification should be surfacing individual assert results at all, or whether the helpers should be reworked to report per-check.
  2. Whether splitting is worth it given every test is a multi-frame async draw test — splitting one into N means N separate multi-frame render cycles, and this suite is already among the slower ones.

It is a legitimate outcome for this issue to conclude that the reporting granularity should be improved inside the helpers rather than by splitting the tests.

This issue should start with an investigation and a written proposal, not with edits.

Script Name

BasicShaderUniformsTestSuite

Steps To The Task

  • Audit the suite and document how many distinct checks each of the 18 async tests actually performs
  • Determine whether verify_shader_compiled() and the draw-comparison helpers can report per-check results, and whether that is preferable to splitting
  • Post the proposal on this issue for review before starting any edits
  • Implement the agreed approach
  • Run the suite on VM and YYC and check the suite's wall-clock time has not regressed unacceptably

Metadata

Metadata

Assignees

Labels

refactorAn improvement to existing test/module code

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions