1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! Outcome types the per-test-case lifecycle works in.
//!
//! hegeltest drives the engine through libhegel's C ABI (see `crate::ffi`),
//! so the data-source / test-runner traits that used to live here now belong
//! to the engine crate. What remains is the small currency the lifecycle
//! itself speaks: the result of running one test case, and the failure it
//! carries. `crate::run_lifecycle::run_test_case` builds these from a caught
//! panic and its `report_outcome` translates them into a `hegel_mark_complete`
//! status (plus, for a failure, its bug origin). Nothing here outlives the
//! test case it classifies: what the engine made of the report — the origin
//! it grouped the bug under, the reproduce blob — is read back out of the run
//! result afterward as a `crate::ffi::Failure`.
/// A single failing test case the lifecycle has classified.
///
/// This is data about the failure, not its presentation: the rendered
/// diagnostic block (panic location, message, backtrace) is printed by the
/// lifecycle at the moment the panic is caught and never travels with the
/// failure.
/// Result of running a single test case.