pub struct ScenarioSpec {
pub file: Arc<str>,
pub name: Arc<str>,
pub line: usize,
pub file_root: Option<PathBuf>,
pub prepare: PrepareFn,
pub exclusive: bool,
}Expand description
Everything a scenario needs at dispatch time. Built by the CLI edge from
owned/Arced data so scenario threads are 'static (abandonable).
Fields§
§file: Arc<str>Feature file path.
name: Arc<str>Scenario name (post-expansion).
line: usize1-based header line.
file_root: Option<PathBuf>Root for file bodies referenced by the scenario’s entries (the feature
file’s directory — hurl context_dir confinement, TECH-SPEC §13).
prepare: PrepareFnLower + emit against the live World snapshot (pure; runs in-thread).
exclusive: boolRun this scenario with the pool to itself (ADR-0007 scheduling).
Not “one of these at a time” but “nothing else at all”: the motivating
case is a scenario asserting absolute positions (items[0]) against a
database no concurrent scenario may write to. A per-group concurrency
limit — the other half of the shape cargo-nextest settled on — bounds
members against each other and leaves the rest of the pool running, which
is the weaker guarantee and not the one that was missing.