0.3.15-pre.012-fix.004

This commit is contained in:
2026-09-16 23:49:07 +02:00
parent d56de4ace9
commit 1573273d27
8 changed files with 460 additions and 12 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-store-postgres-lib/tests/dependency_boundary.rs
// version: 29
// version: 30
#![warn(missing_docs)]
#![deny(unreachable_pub)]
@@ -10,9 +10,17 @@
#[test]
fn pre_005_backend_owns_exact_physical_runtime_dependencies_without_reverse_facade_edge() {
let manifest = include_str!("../Cargo.toml");
for required in
["deadpool-postgres", "ksp-logging-lib", "ksp-store-api", "rustls", "rustls-native-certs", "sha2", "tokio-postgres", "tokio-postgres-rustls"]
{
for required in [
"deadpool-postgres",
"ksp-logging-lib",
"ksp-store-api",
"rustls",
"rustls-native-certs",
"serde_json",
"sha2",
"tokio-postgres",
"tokio-postgres-rustls",
] {
assert!(manifest.contains(required), "missing PostgreSQL backend dependency: {required}");
}
for forbidden in ["ksp-store-lib", "ksp-config-lib", "ksp-materializer", "ksp-program", "ksp-onchain-transport-lib", "ksp-offchain-transport-lib", "sqlx"] {

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-store-postgres-lib/tests/hardening_completeness.rs
// version: 23
// version: 24
#![warn(missing_docs)]
#![deny(unreachable_pub)]
@@ -136,6 +136,7 @@ fn pre_009_backend_modules_exports_and_manifest_dependencies_are_exact() {
"ksp-store-api",
"rustls",
"rustls-native-certs",
"serde_json",
"sha2",
"tokio",
"tokio-postgres",
@@ -561,3 +562,47 @@ fn v0_3_8_pre_005_raw_account_keyset_sql_remains_offset_free_while_inspection_is
}
return;
}
#[test]
fn v0_3_15_pre_012_fix_004_content_conflict_diagnostic_is_field_only_bounded_and_provenance_safe() {
let source = include_str!("../src/raw_transaction.rs");
for required in [
"slot_mismatch",
"block_time_mismatch",
"transaction_mismatch",
"meta_mismatch",
"version_mismatch",
"transaction_index_mismatch",
"meta_mismatch_fields",
"stored_provider",
"stored_protocol",
"stored_acquisition_method",
"stored_endpoint_id",
"incoming_provider",
"incoming_protocol",
"incoming_acquisition_method",
"incoming_endpoint_id",
"RAW_TRANSACTION_CONTENT_CONFLICT_META_FIELDS",
"\"rewards\"",
"\"logMessages\"",
"\"innerInstructions\"",
] {
assert!(source.contains(required), "missing bounded RAW conflict diagnostic field: {required}");
}
let start = source.find("fn log_raw_transaction_content_conflict(");
assert!(start.is_some(), "missing RAW conflict structural logger");
let Some(start) = start else {
return;
};
let end = source[start..].find("fn raw_transactions_equal(");
assert!(end.is_some(), "missing RAW conflict logger end marker");
let Some(end) = end else {
return;
};
let diagnostic_surface = &source[start..start + end];
for forbidden in ["\n signature =", "payload =", "payload_bytes =", "content_hash =", "source_payload_hash =", "capture_session_id", "filter_id"] {
assert!(!diagnostic_surface.contains(forbidden), "RAW conflict logger exposes forbidden material: {forbidden}");
}
assert!(source.contains("fields.push(\"other\")"));
return;
}