0.3.16-pre.005
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-store-postgres-lib/tests/hardening_completeness.rs
|
||||
// version: 27
|
||||
// version: 28
|
||||
|
||||
#![warn(missing_docs)]
|
||||
#![deny(unreachable_pub)]
|
||||
@@ -594,7 +594,7 @@ fn v0_3_15_pre_012_fix_004_content_conflict_diagnostic_is_field_only_bounded_and
|
||||
let Some(start) = start else {
|
||||
return;
|
||||
};
|
||||
let end = source[start..].find("fn raw_transactions_equal(");
|
||||
let end = source[start..].find("async fn rehydrate_transaction(");
|
||||
assert!(end.is_some(), "missing RAW conflict logger end marker");
|
||||
let Some(end) = end else {
|
||||
return;
|
||||
@@ -645,33 +645,42 @@ fn v0_3_15_pre_014_content_conflict_diagnostic_exposes_only_block_slot_and_bound
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn v0_3_15_pre_014_fix_001_truncated_log_compatibility_is_narrow_and_keeps_canonical_content() {
|
||||
fn v0_3_16_pre_005_postgres_uses_shared_fail_closed_variant_comparator_without_promotion() {
|
||||
let source = include_str!("../src/raw_transaction.rs");
|
||||
for required in [
|
||||
"ActiveIncomingTruncatedLogs",
|
||||
"ksp_store_api::compare_raw_transaction_variants",
|
||||
"RawTransactionVariantRelation::Exact",
|
||||
"RawTransactionVariantRelation::CompatibleLessComplete",
|
||||
"RawTransactionVariantRelation::CompatibleMoreComplete",
|
||||
"RawTransactionVariantRelation::Conflict",
|
||||
"RawTransactionVariantRelation::Incomparable",
|
||||
"ExistingTransactionMatch::ActiveCompatibleLessComplete",
|
||||
"raw_acquisition_content_conflict",
|
||||
] {
|
||||
assert!(source.contains(required), "missing shared comparator integration guard: {required}");
|
||||
}
|
||||
for forbidden in [
|
||||
"raw_transaction_incoming_truncated_log_messages_compatible",
|
||||
"raw_meta_other_than_log_messages_mismatch",
|
||||
"raw_log_messages_incoming_truncated_compatible",
|
||||
"raw_log_message_is_exact_truncation_marker",
|
||||
"marker_index >= stored.len()",
|
||||
"incoming[..marker_index] != stored[..marker_index]",
|
||||
"PostgreSQL Store accepted compatible truncated RAW transaction logs without replacing canonical content",
|
||||
] {
|
||||
assert!(source.contains(required), "missing narrow truncated-log compatibility guard: {required}");
|
||||
assert!(!source.contains(forbidden), "backend-private convergence heuristic survived pre.005: {forbidden}");
|
||||
}
|
||||
let start = source.find("fn compare_existing_transaction(");
|
||||
assert!(start.is_some(), "missing fix.001 existing-transaction comparison path");
|
||||
assert!(start.is_some(), "missing pre.005 existing-transaction comparison path");
|
||||
let Some(start) = start else {
|
||||
return;
|
||||
};
|
||||
let end = source[start..].find("fn raw_transaction_incoming_truncated_log_messages_compatible(");
|
||||
assert!(end.is_some(), "missing fix.001 compatibility helper boundary");
|
||||
let end = source[start..].find("fn raw_transaction_content_conflict_diagnostic(");
|
||||
assert!(end.is_some(), "missing pre.005 comparison boundary");
|
||||
let Some(end) = end else {
|
||||
return;
|
||||
};
|
||||
let comparison = &source[start..start + end];
|
||||
assert!(comparison.contains("ExistingTransactionMatch::ActiveIncomingTruncatedLogs"));
|
||||
assert!(comparison.contains("CompatibleLessComplete"));
|
||||
assert!(comparison.contains("CompatibleMoreComplete"));
|
||||
assert!(!comparison.contains("UPDATE ksp_raw_transactions SET payload"));
|
||||
assert!(!comparison.contains("DELETE FROM ksp_raw_transactions"));
|
||||
assert!(!comparison.contains("canonical_revision"));
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user