0.3.15-pre.015-fix.001

This commit is contained in:
2026-09-18 23:33:08 +02:00
parent 582a286baa
commit b1b0e91616
7 changed files with 173 additions and 12 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-onchain-transport-lib/tests/release_completeness.rs
// version: 48
// version: 49
//! Release-level completeness canaries for staged HTTP and WebSocket Transport coverage.
@@ -1434,3 +1434,25 @@ enum ReconnectOutcome",
assert!(!stream_source.contains("unbounded_channel"));
assert!(stream_tests.contains("yellowstone_slow_receiver_applies_bounded_backpressure_without_terminal_overflow"));
}
#[test]
fn release_v0_3_15_pre_015_fix_001_local_close_status_is_closed_without_weakening_active_status_failure() {
let stream_source = include_str!("../src/grpc_stream.rs");
let stream_tests = include_str!("../unit_tests/grpc_stream.rs");
let close_start = stream_source.find("async fn finish_client_half_close(").expect("graceful half-close helper must remain present");
let close_tail = &stream_source[close_start..];
let close_end = close_tail.find("\nfn stream_status_error(").expect("graceful half-close helper boundary must remain present");
let close_helper = &close_tail[..close_end];
let actor_start = stream_source.find("async fn run_subscribe_actor(").expect("Subscribe actor must remain present");
let actor_tail = &stream_source[actor_start..];
let actor_end = actor_tail.find("\nenum ReconnectOutcome").expect("Subscribe actor boundary must remain present");
let actor = &actor_tail[..actor_end];
assert!(close_helper.contains("returned a status after local graceful shutdown request; treating session as closed"));
assert!(close_helper.contains("snapshot.state = crate::YellowstoneGrpcSubscribeState::Closed"));
assert!(close_helper.contains("snapshot.terminal_error_code = std::option::Option::None"));
assert!(!close_helper.contains("snapshot.terminal_error_code = std::option::Option::Some(crate::ERROR_CODE_GRPC_STATUS)"));
assert!(actor.contains("stream_status_error(\"Subscribe\", status"));
assert!(actor.contains("fail_actor(crate::ERROR_CODE_GRPC_STATUS"));
assert!(stream_tests.contains("yellowstone_explicit_close_accepts_remote_status_after_local_half_close"));
assert!(stream_tests.contains("yellowstone_stream_remote_status_is_safe_and_terminal"));
}