Lumiera  0.pre.03
»edit your freedom«
dummy-builder-context.hpp File Reference

Go to the source code of this file.

Description

Simulated result of a builder run for test purposes, without actual session and model content.

Integration tests for the render engine or the player have to deal with a lot of prerequisites, since both an external environment and actual content form the Session is required to start any processing. Effectively the complete core application is required — while in fact the engine is built in an abstracted way and does not need to know much about the rest of the application. Thus, as a remedy, it is possible to establish a faked context, exposing just those interfaces used by the engine for processing. As additional benefit, dedicated test operations can be rigged and verification routines can be used in place of actual media output.

This faked builder context provides a selection of consistent media element IDs with sensible properties and type markers, plus the attachment points for a simulated model structure, as if generated from an actual session model by a real Builder run.

  • a set of ModelPort elements
  • a set of DataSink handles, as if an actual playback connection has been established
    Todo:

    5/2023 add more elements as needed for test driven integration of Player and engine

    this was invented in 2012 – but development of the player subsystem stalled thereafter.

See also
mock-dispatcher.hpp
JobPlanningPipeline_test

Definition in file dummy-builder-context.hpp.

Classes

struct  SimulatedBuilderContext
 helper for dummy render engine: Simulate the result of a build process, without actually running the builder. More...
 
class  UnimplementedConnection
 

Typedefs

using DummyOutputLink = std::pair< mobject::ModelPort, play::DataSink >
 
using ModelPorts = lib::IterSource< mobject::ModelPort >::iterator
 
using PID = asset::ID< Pipe >
 
using TID = asset::ID< Struct >
 

Functions

PID getPipe (string id)
 
TID getTimeline (string id)
 
const string namePortA ("bus-A")
 
const string namePortB ("bus-B")
 

Variables

const uint NUMBER_OF_PORTS = 2
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::play
 Playback and rendering control subsystem.