pub struct ExecutionCollector { /* private fields */ }Expand description
Keeps the terminal executions grouped by outcome. Pass one to explore when you want
the graphs, canonical keys or pending sends of each outcome, not just how many there
were.
Under a parallel run the executions are collected in a nondeterministic order (the counts are still exact); compare canonical-key sets, not their order.
Implementations§
Source§impl ExecutionCollector
impl ExecutionCollector
pub fn new() -> Self
Sourcepub fn terminals(&self) -> Vec<Execution>
pub fn terminals(&self) -> Vec<Execution>
Full followed by blocked - the terminal executions the search must not duplicate.
pub fn full_count(&self) -> usize
pub fn blocked_count(&self) -> usize
pub fn error_count(&self) -> usize
Sourcepub fn terminal_count(&self) -> usize
pub fn terminal_count(&self) -> usize
Full + blocked, the terminal count.
Sourcepub fn terminal_keys(&self) -> Vec<String>
pub fn terminal_keys(&self) -> Vec<String>
Canonical keys over full plus blocked, for the duplicate check.
Sourcepub fn error_keys(&self) -> Vec<String>
pub fn error_keys(&self) -> Vec<String>
Canonical keys of the erroneous executions.
Trait Implementations§
Source§impl Debug for ExecutionCollector
impl Debug for ExecutionCollector
Source§impl Default for ExecutionCollector
impl Default for ExecutionCollector
Source§fn default() -> ExecutionCollector
fn default() -> ExecutionCollector
Returns the “default value” for a type. Read more
Source§impl Observer for ExecutionCollector
impl Observer for ExecutionCollector
Source§fn on_execution(&self, exec: &Execution, kind: ExecutionKind)
fn on_execution(&self, exec: &Execution, kind: ExecutionKind)
A terminal execution (full / blocked / error) was reached.
Source§fn on_event_added(&self, _g: &ExecutionGraph, _e: EventId)
fn on_event_added(&self, _g: &ExecutionGraph, _e: EventId)
A fresh event
e, maximal in insertion order, was added to g.Source§fn on_rf_choice(&self, _g: &ExecutionGraph, _r: EventId, _src: Option<EventId>)
fn on_rf_choice(&self, _g: &ExecutionGraph, _r: EventId, _src: Option<EventId>)
Receive
r was pointed at source src (None means no message) before a
consistency check.Source§fn on_inconsistent(&self, _g: &ExecutionGraph)
fn on_inconsistent(&self, _g: &ExecutionGraph)
A graph was found inconsistent and dropped.
Source§fn on_backward_revisit(
&self,
_g: &ExecutionGraph,
_r: EventId,
_s: EventId,
_deleted: &BTreeSet<EventId>,
)
fn on_backward_revisit( &self, _g: &ExecutionGraph, _r: EventId, _s: EventId, _deleted: &BTreeSet<EventId>, )
A backward revisit that sets
rf(r) to s is about to run; deleted lists the
events it removes (still including s).Source§fn on_revisit_rejected(&self, _g: &ExecutionGraph, _r: EventId, _s: EventId)
fn on_revisit_rejected(&self, _g: &ExecutionGraph, _r: EventId, _s: EventId)
A candidate backward revisit setting
rf(r) to s was rejected.Source§fn on_thread_blocked(&self, _g: &ExecutionGraph, _tid: Tid)
fn on_thread_blocked(&self, _g: &ExecutionGraph, _tid: Tid)
Thread
tid is blocked on a receive with no message in g.Auto Trait Implementations§
impl !Freeze for ExecutionCollector
impl RefUnwindSafe for ExecutionCollector
impl Send for ExecutionCollector
impl Sync for ExecutionCollector
impl Unpin for ExecutionCollector
impl UnsafeUnpin for ExecutionCollector
impl UnwindSafe for ExecutionCollector
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
Mutably borrows from an owned value. Read more