// file: crates/ksp-store-postgres-lib/tests/v003_variant_persistence.rs // version: 4 #![warn(missing_docs)] #![deny(unreachable_pub)] #![forbid(unsafe_code)] //! Static completeness canaries for the first V003 variant-aware PostgreSQL write slice. #[test] fn v0_3_16_pre_004_acquisition_orders_identity_lock_bootstrap_observation_and_variant_link_atomically() { let source = include_str!("../src/raw_transaction.rs"); let start = source.find("pub(crate) async fn persist_raw_transaction_acquisition("); let end = source.find("pub(crate) async fn record_raw_transaction_observation("); let (start, end) = match (start, end) { (std::option::Option::Some(start), std::option::Option::Some(end)) if start < end => (start, end), _ => panic!("pre.004 acquisition function markers are missing"), }; let body = &source[start..end]; let lock = body.find("load_locked_transaction_row"); let bootstrap = body.find("ensure_v003_transaction_variant_bootstrap"); let compare = body.find("compare_existing_transaction"); let observation = body.find("persist_observation_row"); let link = body.find("persist_transaction_variant_link"); assert!(matches!((lock, bootstrap, compare), (Some(lock), Some(bootstrap), Some(compare)) if lock < bootstrap && bootstrap < compare)); assert!(matches!((observation, link), (Some(observation), Some(link)) if observation < link)); assert!(body.contains("sql_transaction.commit().await")); return; } #[test] fn v0_3_16_pre_004_native_variant_reuse_is_exact_and_hash_is_only_a_prefilter() { let source = include_str!("../src/raw_transaction.rs"); let exact_sql = source.find("const SELECT_EXACT_NATIVE_VARIANT_SQL"); let exact_helper = source.find("async fn persist_or_reuse_native_transaction_variant("); assert!(exact_sql.is_some()); assert!(exact_helper.is_some()); assert!(source.contains("content_hash = $6 AND payload = $7")); assert!(source.contains("block_time_unix_millis IS NOT DISTINCT FROM $3")); assert!(source.contains("origin_kind = 'native'")); assert!(!source.contains("UNIQUE (transaction_signature, content_hash)")); return; } #[test] fn v0_3_16_pre_004_legacy_observation_without_mapping_is_not_fabricated() { let source = include_str!("../src/raw_transaction.rs"); let start = source.find("async fn persist_transaction_variant_link("); let end = source.find("async fn rehydrate_canonical_transaction_variant("); let (start, end) = match (start, end) { (std::option::Option::Some(start), std::option::Option::Some(end)) if start < end => (start, end), _ => panic!("pre.004 observation-variant link markers are missing"), }; let body = &source[start..end]; assert!(body.contains("RawObservationWriteOutcome::Inserted")); assert!(body.contains("RawObservationWriteOutcome::AlreadyPresent")); assert!(body.contains("Ok(std::option::Option::None) => return std::result::Result::Ok(())")); return; } #[test] fn v0_3_16_pre_007_shared_comparator_promotes_more_complete_and_quarantines_conflict() { let source = include_str!("../src/raw_transaction.rs"); assert!(source.contains("ksp_store_api::compare_raw_transaction_variants")); assert!(source.contains("ExistingTransactionMatch::ActiveCompatibleLessComplete")); assert!(source.contains("ExistingTransactionMatch::ActiveCompatibleMoreComplete")); assert!(source.contains("promote_more_complete_transaction_variant")); assert!(source.contains("UPDATE ksp_raw_transaction_canonical_selectors SET canonical_variant_id")); assert!(source.contains("canonical_revision = $5::TEXT::NUMERIC")); assert!(source.contains("UPDATE ksp_raw_transactions SET slot = $2::TEXT::NUMERIC")); assert!(source.contains("PostgreSQL Store committed a proved RAW transaction canonical promotion")); assert!(!source.contains("log_raw_transaction_compatible_more_complete_log_messages")); assert!(source.contains("INSERT INTO ksp_raw_transaction_conflicts")); assert!(source.contains("ExistingTransactionMatch::ActiveConflict")); assert!(source.contains("RawTransactionVariantWriteOutcome::QuarantinedConflict")); return; } #[test] fn v0_3_16_pre_007_conflict_is_persisted_inside_acquisition_transaction_before_observation_and_commit() { let source = include_str!("../src/raw_transaction.rs"); let start = source.find("pub(crate) async fn persist_raw_transaction_acquisition("); let end = source.find("pub(crate) async fn record_raw_transaction_observation("); let (start, end) = match (start, end) { (std::option::Option::Some(start), std::option::Option::Some(end)) if start < end => (start, end), _ => panic!("pre.007 acquisition function markers are missing"), }; let body = &source[start..end]; let persist_variant = body.find("persist_or_reuse_native_transaction_variant"); let conflict = body.find("open_or_update_raw_transaction_conflict"); let observation = body.find("persist_observation_row"); let commit = body.rfind("sql_transaction.commit().await"); let transition_log = body.find("log_raw_transaction_conflict_quarantined_committed"); assert!(matches!( (persist_variant, conflict, observation, commit, transition_log), (Some(persist_variant), Some(conflict), Some(observation), Some(commit), Some(transition_log)) if persist_variant < conflict && conflict < observation && observation < commit && commit < transition_log )); assert!(body.contains("RawTransactionVariantWriteOutcome::QuarantinedConflict")); let conflict_start = source.find("async fn open_or_update_raw_transaction_conflict("); let conflict_end = source.find("async fn persist_observation_row("); let (conflict_start, conflict_end) = match (conflict_start, conflict_end) { (std::option::Option::Some(start), std::option::Option::Some(end)) if start < end => (start, end), _ => panic!("pre.007 conflict helper markers are missing"), }; let conflict_helper = &source[conflict_start..conflict_end]; assert!(conflict_helper.contains("LOCK_TRANSACTION_CONFLICT_SQL")); assert!(conflict_helper.contains("INSERT_TRANSACTION_CONFLICT_SQL")); assert!(conflict_helper.contains("UPDATE_TRANSACTION_CONFLICT_SQL")); assert!(conflict_helper.contains("checked_add(1)")); return; } #[test] fn v0_3_16_pre_006_promotion_is_inside_acquisition_transaction_and_preserves_previous_canonical() { let source = include_str!("../src/raw_transaction.rs"); let start = source.find("pub(crate) async fn persist_raw_transaction_acquisition("); let end = source.find("pub(crate) async fn record_raw_transaction_observation("); let (start, end) = match (start, end) { (std::option::Option::Some(start), std::option::Option::Some(end)) if start < end => (start, end), _ => panic!("pre.006 acquisition function markers are missing"), }; let body = &source[start..end]; let persist_variant = body.find("persist_or_reuse_native_transaction_variant"); let promote = body.find("promote_more_complete_transaction_variant"); let observation = body.find("persist_observation_row"); let commit = body.rfind("sql_transaction.commit().await"); let transition_log = body.find("log_raw_transaction_canonical_promotion_committed"); assert!(matches!( (persist_variant, promote, observation, commit, transition_log), (Some(persist_variant), Some(promote), Some(observation), Some(commit), Some(transition_log)) if persist_variant < promote && promote < observation && observation < commit && commit < transition_log )); let promotion_start = source.find("async fn promote_more_complete_transaction_variant("); let promotion_end = source.find("async fn persist_transaction_variant_link("); let (promotion_start, promotion_end) = match (promotion_start, promotion_end) { (std::option::Option::Some(start), std::option::Option::Some(end)) if start < end => (start, end), _ => panic!("pre.006 promotion helper markers are missing"), }; let promotion = &source[promotion_start..promotion_end]; assert!(promotion.contains("preserve_previous_canonical_variant")); assert!(promotion.contains("DELETE_ARCHIVE_PAYLOAD_SQL")); assert!(promotion.contains("UPDATE_CANONICAL_TRANSACTION_PROJECTION_SQL")); assert!(promotion.contains("UPDATE_TRANSACTION_VARIANT_SELECTOR_SQL")); assert!(promotion.contains("next_transaction_canonical_revision")); return; }