pub struct TrellisHarness<G, C = ()> { /* private fields */ }Expand description
Scenario runner for deterministic transaction scripts.
Implementations§
Source§impl<G, C> TrellisHarness<G, C>
impl<G, C> TrellisHarness<G, C>
Sourcepub fn new(build: impl FnOnce() -> G) -> Self
pub fn new(build: impl FnOnce() -> G) -> Self
Builds a harness from an application-supplied constructor.
Sourcepub fn from_target(target: G) -> Self
pub fn from_target(target: G) -> Self
Builds a harness around an already-constructed target.
Sourcepub fn resource_ledger(&self) -> &ResourceLedger<C>
pub fn resource_ledger(&self) -> &ResourceLedger<C>
Returns the resource ledger updated after each committed step.
Sourcepub fn output_ledger(&self) -> &OutputLedger
pub fn output_ledger(&self) -> &OutputLedger
Returns the output ledger updated after each committed step.
Sourcepub fn step(&mut self, name: impl Into<String>) -> HarnessStep<'_, G, C>
pub fn step(&mut self, name: impl Into<String>) -> HarnessStep<'_, G, C>
Starts a named single-transaction step.
Sourcepub fn run_script(
&mut self,
script: &TransactionScript<C>,
) -> Result<(), ScenarioError>
pub fn run_script( &mut self, script: &TransactionScript<C>, ) -> Result<(), ScenarioError>
Runs every step in a replayable transaction script.
Sourcepub fn run_data_script<Operation>(
&mut self,
script: &DataTransactionScript<Operation>,
apply: impl for<'tx> FnMut(&Operation, &mut Transaction<'tx, C>) -> GraphResult<()>,
) -> Result<(), ScenarioError>
pub fn run_data_script<Operation>( &mut self, script: &DataTransactionScript<Operation>, apply: impl for<'tx> FnMut(&Operation, &mut Transaction<'tx, C>) -> GraphResult<()>, ) -> Result<(), ScenarioError>
Runs every step in a serializable data transaction script.
Sourcepub fn replay(
build: impl FnOnce() -> G,
script: &TransactionScript<C>,
) -> Result<Self, ScenarioError>
pub fn replay( build: impl FnOnce() -> G, script: &TransactionScript<C>, ) -> Result<Self, ScenarioError>
Replays a transaction script against a fresh application graph.
Sourcepub fn replay_data<Operation>(
build: impl FnOnce() -> G,
script: &DataTransactionScript<Operation>,
apply: impl for<'tx> FnMut(&Operation, &mut Transaction<'tx, C>) -> GraphResult<()>,
) -> Result<Self, ScenarioError>
pub fn replay_data<Operation>( build: impl FnOnce() -> G, script: &DataTransactionScript<Operation>, apply: impl for<'tx> FnMut(&Operation, &mut Transaction<'tx, C>) -> GraphResult<()>, ) -> Result<Self, ScenarioError>
Replays a serializable data transaction script against a fresh graph.
Sourcepub fn assert_replay_matches(&self, other: &Self) -> Result<(), ScenarioError>
pub fn assert_replay_matches(&self, other: &Self) -> Result<(), ScenarioError>
Compares replay traces and final graph state.
Sourcepub fn final_state_debug_dump(&self) -> String
pub fn final_state_debug_dump(&self) -> String
Returns a deterministic graph metadata dump for final-state comparison.
Sourcepub fn assert_oracle<Oracle>(
&self,
inputs: &Oracle::CanonicalInputs,
) -> Result<OracleCheck<Oracle::ExpectedState>, OracleMismatch<Oracle::ExpectedState>>where
Oracle: FullRecomputeOracle<G>,
pub fn assert_oracle<Oracle>(
&self,
inputs: &Oracle::CanonicalInputs,
) -> Result<OracleCheck<Oracle::ExpectedState>, OracleMismatch<Oracle::ExpectedState>>where
Oracle: FullRecomputeOracle<G>,
Runs an app-owned full-recompute oracle against the wrapped target.