v0.3.14-pre.008
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// file: crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs
|
||||
// version: 31
|
||||
// version: 32
|
||||
|
||||
//! External public, security, redaction and release-boundary hardening canaries through `v0.3.14-pre.007`.
|
||||
//! External public, security, redaction and release-boundary hardening canaries through `v0.3.14-pre.008`.
|
||||
|
||||
fn network(value: &'static str) -> std::option::Option<ksp_store_lib::RawNetworkId> {
|
||||
let result = ksp_store_lib::RawNetworkId::new(value);
|
||||
@@ -1143,3 +1143,45 @@ fn v0_3_14_pre_007_known_reference_hydration_reuses_one_registry_and_preserves_m
|
||||
assert!(!root.contains("repair"), "pre.007 leaked lower-case repair responsibility through crate root");
|
||||
return;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn v0_3_14_pre_008_reconciliation_and_source_loss_are_target_coverage_gated_without_respawn() {
|
||||
let continuity = include_str!("../src/continuity.rs");
|
||||
let resources = include_str!("../src/runtime_resources.rs");
|
||||
let root = include_str!("../src/lib.rs");
|
||||
for required in [
|
||||
"RawTransactionIngestSourceLossDecision",
|
||||
"source_loss_decision",
|
||||
"is_covered_by_active_sources",
|
||||
"reconcile_with_coverage_epochs",
|
||||
"record_coverage_epoch",
|
||||
"record_known_reference_gap",
|
||||
"record_source_loss_gap",
|
||||
"continuity_frontier",
|
||||
"has_open_gaps",
|
||||
"continuity.source_loss_active_set_invalid",
|
||||
"RawTransactionIngestSourceLossDecision::Fault",
|
||||
"RawTransactionIngestSourceLossDecision::Continue",
|
||||
] {
|
||||
assert!(continuity.contains(required), "required pre.008 reconciliation guard missing: {required}");
|
||||
}
|
||||
for required in [
|
||||
"source_loss_is_reconcilable",
|
||||
"inventory.supervisor_state()",
|
||||
"source_loss_continuity_range",
|
||||
"contracts.record_known_reference_gap",
|
||||
"contracts.record_source_loss_gap",
|
||||
"contracts.source_loss_decision",
|
||||
"RawTransactionIngestSourceLossDecision::Continue",
|
||||
"RawTransactionIngestSourceLossDecision::Fault",
|
||||
"source.websocket_incident_unbounded",
|
||||
"source.replay_coverage_unproven",
|
||||
] {
|
||||
assert!(resources.contains(required), "required pre.008 supervisor gate missing: {required}");
|
||||
}
|
||||
assert!(!resources.contains("respawn_source"));
|
||||
assert!(!resources.contains("restart_source"));
|
||||
assert!(!root.contains("pub use self::continuity::RawTransactionIngestSourceLossDecision"));
|
||||
assert!(!root.contains("repair"), "pre.008 leaked lower-case repair responsibility through crate root");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// file: crates/ksp-worker-raw-transaction-ingest-lib/tests/release_completeness.rs
|
||||
// version: 26
|
||||
// version: 27
|
||||
|
||||
//! Release-completeness canaries through the `v0.3.14-pre.007` known-reference hydration tranche.
|
||||
//! Release-completeness canaries through the `v0.3.14-pre.008` continuity reconciliation tranche.
|
||||
|
||||
#[test]
|
||||
fn pre_010_production_module_inventory_is_exact() -> std::io::Result<()> {
|
||||
@@ -322,3 +322,24 @@ fn v0_3_14_pre_007_known_reference_hydration_canaries_are_present_without_second
|
||||
assert!(!root.contains("pub use self::runtime_resources::RawTransactionIngestKnownReference"));
|
||||
return;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn v0_3_14_pre_008_reconciliation_canaries_are_present_without_public_surface_or_respawn_growth() {
|
||||
let continuity_tests = include_str!("../unit_tests/continuity.rs");
|
||||
let hardening = include_str!("hardening.rs");
|
||||
let resource_tests = include_str!("../unit_tests/runtime_resources.rs");
|
||||
let root = include_str!("../src/lib.rs");
|
||||
for required in [
|
||||
"pre_008_continuity_frontier_is_gap_aware_and_recovers_after_redundant_proof",
|
||||
"pre_008_source_loss_requires_full_active_target_coverage",
|
||||
"pre_008_open_gap_without_proven_epoch_blocks_redundant_source_continuation",
|
||||
"pre_008_known_reference_missing_moves_to_continuity_ledger_and_reconciles_from_proven_full_ledger_epoch",
|
||||
"v0_3_14_pre_008_proven_full_ledger_epoch_survives_filtered_peer_loss_without_worker_respawn",
|
||||
"v0_3_14_pre_008_only_classified_source_loss_enters_coverage_decision",
|
||||
] {
|
||||
assert!(continuity_tests.contains(required) || resource_tests.contains(required), "required pre.008 canary missing: {required}");
|
||||
}
|
||||
assert!(hardening.contains("v0_3_14_pre_008_reconciliation_and_source_loss_are_target_coverage_gated_without_respawn"));
|
||||
assert!(!root.contains("pub use self::continuity::RawTransactionIngestSourceLossDecision"));
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user