Lumiera  0.pre.03
»edit your freedom«
JobPlanningPipeline_test Class Reference

Description

Test:
demonstrate interface, structure and setup of the job-planning pipeline.
  • using a frame step as base tick
  • invoke the dispatcher to retrieve the top-level JobTicket
  • expander function to explore prerequisite JobTickets
  • integration: generate a complete sequence of (dummy)Jobs
  • scaffolding and mocking used for this test
    Remarks
    the »pipeline« is implemented as »Lumiera Forward Iterator« and thus forms a chain of on-demand processing. At the output side, fully defined render Jobs can be retrieved, ready for scheduling.
    See also
    DispatcherInterface_test
    MockSupport_test
    Dispatcher
    CalcStream
    RenderDriveS

Definition at line 89 of file job-planning-pipeline-test.cpp.

Private Member Functions

void accessTopLevelJobTicket ()
 
void buildBaseTickGenerator ()
 
void demonstrateScaffolding ()
 
void exploreJobTickets ()
 
void integration ()
 
virtual void run (Arg)
 

Additional Inherited Members

- Public Member Functions inherited from Test
virtual void run (Arg arg)=0
 

Member Function Documentation

◆ demonstrateScaffolding()

void demonstrateScaffolding ( )
inlineprivate
Test:
document and verify the mock setup used for this test

Definition at line 105 of file job-planning-pipeline-test.cpp.

◆ buildBaseTickGenerator()

void buildBaseTickGenerator ( )
inlineprivate
Test:
use the Dispatcher interface (mocked) to generate a frame »beat«
  • demonstrate explicitly the mapping of a (frame) number sequence onto a sequence of time points with the help of time quantisation
  • use the Dispatcher API to produce the same frame time sequence
Remarks
this is the foundation to generate top-level frame render jobs

Definition at line 160 of file job-planning-pipeline-test.cpp.

◆ accessTopLevelJobTicket()

void accessTopLevelJobTicket ( )
inlineprivate
Test:
use the base tick to access the corresponding JobTicket through the Dispatcher interface (mocked here).

Definition at line 189 of file job-planning-pipeline-test.cpp.

References Dispatcher::forCalcStream(), MockDispatcher::getDummyConnection(), and FrameRate::PAL.

+ Here is the call graph for this function:

◆ exploreJobTickets()

void exploreJobTickets ( )
inlineprivate
Test:
build and verify the exploration function to discover job prerequisites
  • use a setup where the master ExitNode requires a prerequisite ExitNode to be pulled
  • mark the pipeline-IDs, so that both nodes can be distinguished in the resulting Jobs
  • the expandPrerequisites() builder function uses JobTicket::getPrerequisites()
  • and this »expander« function is unfolded recursively such that first the source appears in the iterator, and as next step the child prerequisites, possibly to be unfolded further recursively
  • by design of the iterator pipeline, it is always possible to access the PipeFrameTick
  • this corresponds to the top-level JobTicket, which will produce the final frame
  • putting all these information together, proper working can be visualised.

Definition at line 220 of file job-planning-pipeline-test.cpp.

◆ integration()

void integration ( )
inlineprivate
Test:
Job-planning pipeline integration test
  • use the MockDispatcher to define a fake model setup
  • define three levels of prerequisites
  • also define a second segment with different structure
  • build a complete Job-Planning pipeline
  • define a visualisation to expose generated job parameters
  • iterate the Job-Planning pipeline and apply the visualisation

Definition at line 267 of file job-planning-pipeline-test.cpp.

+ Inheritance diagram for JobPlanningPipeline_test:
+ Collaboration diagram for JobPlanningPipeline_test:

The documentation for this class was generated from the following file: