v0.3.13-pre.008
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs
|
||||
// version: 17
|
||||
// version: 18
|
||||
|
||||
//! External public, security, redaction and release-boundary hardening canaries for `pre.010`.
|
||||
|
||||
@@ -751,3 +751,38 @@ fn v0_3_13_pre_007_multi_source_supervisor_is_fail_closed_joined_and_does_not_pu
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn v0_3_13_pre_008_cross_source_convergence_is_bounded_conflict_checked_and_private() {
|
||||
let root = include_str!("../src/lib.rs");
|
||||
let persistence = include_str!("../src/persistence.rs");
|
||||
let resources = include_str!("../src/runtime_resources.rs");
|
||||
for required in [
|
||||
"max_entries: usize",
|
||||
"entries.len() >= self.max_entries",
|
||||
"std::sync::Arc::strong_count(entry) == 1",
|
||||
"known_hash_value != content_hash",
|
||||
"record_observation(observation)",
|
||||
"persistence.additional_observation_not_recorded",
|
||||
] {
|
||||
assert!(persistence.contains(required), "required pre.008 persistence hardening guard missing: {required}");
|
||||
}
|
||||
for required in [
|
||||
"max_pending: usize",
|
||||
"pending.len() >= self.max_pending",
|
||||
"source.global_hydration_pending_saturated",
|
||||
"tokio::sync::watch::channel",
|
||||
"publish_and_remove",
|
||||
] {
|
||||
assert!(resources.contains(required), "required pre.008 hydration hardening guard missing: {required}");
|
||||
}
|
||||
for forbidden in [
|
||||
"pub struct RawTransactionIngestPersistenceConvergence",
|
||||
"pub struct RawTransactionIngestGlobalHydrationRegistry",
|
||||
"pub fn persist_raw_transaction_ingest_converged_acquisition",
|
||||
] {
|
||||
assert!(!root.contains(forbidden), "pre.008 private convergence implementation leaked publicly: {forbidden}");
|
||||
}
|
||||
assert!(!resources.contains("unbounded_channel"));
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user