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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//! Adversary corpus — deliberately-broken component implementations that
//! the meta-test suite MUST reject.
//!
//! For every [`ComponentSpec`], the contributor (or an adversary agent in
//! the Implementor/Prosecutor/Defender flow) writes one or more
//! [`BrokenComponent`] entries. Each entry carries a specific bug that a
//! *good* meta-test set will detect: a law checker that skips a boundary,
//! a reference interpreter that returns the wrong answer on one Expr
//! variant, an oracle resolver that downgrades to property when a law
//! applies.
//!
//! The meta-gate runs the committed meta-test set against every adversary
//! in the corpus. If any adversary slips past the tests, the meta-test set
//! is rejected with structured feedback naming the adversary and the
//! expected failure signature.
//!
//! [`ComponentSpec`]: crate::meta::component::ComponentSpec
use crateMetaMutationClass;
/// Policy used when matching test output against an adversary signature.
/// One deliberately-broken component implementation. Static dispatch only
/// — each adversary is registered at compile time as a `&'static` entry so
/// the registry is verifiable by the build script.
/// A `&'static` reference to a [`BrokenComponent`]. Used in
/// [`crate::meta::component::ComponentSpec::adversaries`] so the list can
/// be a compile-time constant slice.
pub type AdversaryRef = &'static BrokenComponent;
/// Match `output` against `signature` using the chosen `policy`.