pub struct Scenario<'a> {
pub interner: &'a Interner,
pub types: &'a TypeRegistry,
pub policies: &'a PolicyRegistry,
pub arranged: Arranged<'a>,
pub world: World,
}Expand description
A program and a test body to run against it, arranged (arrange).
Fields§
§interner: &'a Interner§types: &'a TypeRegistry§policies: &'a PolicyRegistry§arranged: Arranged<'a>§world: WorldImplementations§
Source§impl<'a> Scenario<'a>
impl<'a> Scenario<'a>
pub fn new( interner: &'a Interner, types: &'a TypeRegistry, policies: &'a PolicyRegistry, defs: &[Stmt<'a>], body: &[Stmt<'a>], world: World, ) -> Self
Sourcepub fn reference_trace(&self) -> PageTrace
pub fn reference_trace(&self) -> PageTrace
The reference: the lowered page on the tree-walker (Scenario::lowered_here_run), where a
statement the page cannot carry is where the program stops.
Sourcepub fn lowered_here_trace(&self) -> TierRun
pub fn lowered_here_trace(&self) -> TierRun
The run on the lowered page, on the tree-walker that runs the test: ONE interpreter runs
the program as the page’s main — its lowered prelude and definitions — and then the arranged
body, one step at a time, every driving statement carried out on the page by the driver
every lowered tier shares, with that same interpreter as its engine. The page is read after
each step’s statements, where Scenario::step_end ends it — the boundaries the reference
trace runs to — in a single run.
Sourcepub fn lowered_here_run(&self) -> HereRun
pub fn lowered_here_run(&self) -> HereRun
The run on the lowered page on the tree-walker, once: its trace and, when it stopped on a statement the page cannot carry, that statement and why.
Sourcepub fn lowered_vm_trace(&self) -> TierRun
pub fn lowered_vm_trace(&self) -> TierRun
The run on the lowered page, on the bytecode VM.
Sourcepub fn remote_trace(
&self,
launcher: &dyn RemotePageLauncher,
source: &str,
) -> TierRun
pub fn remote_trace( &self, launcher: &dyn RemotePageLauncher, source: &str, ) -> TierRun
The run on a page another process executes, source being the program it ships.
The page is launched already arrived (Arrival): at its own route, with the scene’s
answers in place, its main run — which performs a ## Page’s own mount, exactly as a
browser loading it does. The walk then starts after the arrival, and a Mount the test
writes at a statement of its own is carried out at that statement, through the entry the
arrival asked the page’s host to expose.
Source§impl<'a> Scenario<'a>
impl<'a> Scenario<'a>
Sourcepub fn run(
&self,
kind: PageTierKind,
launcher: Option<&dyn RemotePageLauncher>,
source: &str,
) -> TierRun
pub fn run( &self, kind: PageTierKind, launcher: Option<&dyn RemotePageLauncher>, source: &str, ) -> TierRun
The run on kind. The reference tier’s run is Scenario::reference_trace.
Auto Trait Implementations§
impl<'a> Freeze for Scenario<'a>
impl<'a> RefUnwindSafe for Scenario<'a>
impl<'a> Send for Scenario<'a>
impl<'a> Sync for Scenario<'a>
impl<'a> Unpin for Scenario<'a>
impl<'a> UnsafeUnpin for Scenario<'a>
impl<'a> UnwindSafe for Scenario<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.