Lumiera  0.pre.03
»edit your freedom«
mock-dispatcher.hpp File Reference

Go to the source code of this file.

Description

Mock data structures to support implementation testing of render job planning and frame dispatch.

This specifically rigged test setup allows to investigate and verify designated functionality in isolation, without backing by the actual render engine and low-level-Model implementation.

  • a MockJob is a render Job, wired to a DummyFunctor, which does nothing, but records any invocation into an internal diagnostics Map.
  • MockJobTicket is a builder / adapter on top of the actual steam::engine::JobTicket, allowing to generate simple JobTicket instances with an embedded ExitNode and a (configurable) pipelineID. From this setup, »mock jobs« can be generated, which use the MockJob functor and thus record any invocation without performing actual work. The internal connection to the MockJobTicket can then be verified.
  • MockSegmentation is a mocked variant of the »Segmentation« datastructure, which forms the backbone of the Fixture and is the top-level attachment point for the »low-level-Model« (the render nodes network). It can be configured with a test specification of ExitNode(s) defined by a GenNode tree, and defining Segments of the timeline and prerequisites.
  • finally, the MockDispatcher combines all these facilities to emulate frame dispatch from the Fixture without actually using any data model. Similar to MockSegmentation, a GenNode-based specification is used.
Remarks
in spring 2023, this setup was created as a means to define and then build the actual implementation of frame dispatch and scheduling.
See also
MockSupport_test

Definition in file mock-dispatcher.hpp.

Classes

class  MockDispatcher
 A mocked frame Dispatcher setup without any backing model. More...
 
class  MockJob
 Mock setup for a render Job with NO action but built-in diagnostics. More...
 
class  MockJobTicket
 Mock setup for a JobTicket to generate dummy render Job invocations. More...
 
class  MockSegmentation
 Mock setup for a complete Segmentation to emulate the structure of the actual fixture, without the need of building a low-level Model. More...
 

Typedefs

using DummyPlaybackSetup = play::test::DummyPlayConnection< PlayTestFrames_Strategy >
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::engine
 Lumiera's render engine core and operational control.