v0.2.4-pre.009
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-onchain-transport-lib/tests/release_completeness.rs
|
||||
// version: 20
|
||||
// version: 21
|
||||
|
||||
//! Release-level completeness canaries for the staged HTTP wrapper sequence.
|
||||
|
||||
@@ -445,7 +445,13 @@ fn release_v0_2_4_descriptor_set_is_exact_and_remains_read_retry_safe_through_wr
|
||||
"getRecentPerformanceSamples",
|
||||
"minimumLedgerSlot",
|
||||
];
|
||||
let mut expected_economics = std::vec!["getInflationGovernor", "getInflationRate", "getInflationReward", "getStakeMinimumDelegation", "getSupply",];
|
||||
let mut expected_economics = std::vec![
|
||||
"getInflationGovernor",
|
||||
"getInflationRate",
|
||||
"getInflationReward",
|
||||
"getStakeMinimumDelegation",
|
||||
"getSupply",
|
||||
];
|
||||
let mut actual_blocks = std::vec::Vec::new();
|
||||
let mut actual_economics = std::vec::Vec::new();
|
||||
for descriptor in ksp_onchain_transport_lib::current_http_rpc_methods() {
|
||||
@@ -497,6 +503,7 @@ fn release_v0_2_4_pre_003_simple_blocks_subset_is_exact_and_retry_safe() {
|
||||
assert_eq!(actual.len(), 5);
|
||||
}
|
||||
|
||||
|
||||
#[test]
|
||||
fn release_v0_2_4_pre_004_range_performance_subset_is_exact_and_retry_safe() {
|
||||
let mut expected = std::vec!["getBlocks", "getBlocksWithLimit", "getRecentPerformanceSamples"];
|
||||
@@ -531,6 +538,7 @@ fn release_v0_2_4_pre_005_block_production_subset_is_exact_and_retry_safe() {
|
||||
assert_eq!(descriptor.transport_retry_class(), ksp_onchain_transport_lib::TransportRetryClass::RetrySafe);
|
||||
}
|
||||
|
||||
|
||||
#[test]
|
||||
fn release_v0_2_4_pre_006_get_block_completes_all_ten_block_wrappers_with_legacy_marker() {
|
||||
let expected = std::vec![
|
||||
@@ -564,6 +572,7 @@ fn release_v0_2_4_pre_006_get_block_completes_all_ten_block_wrappers_with_legacy
|
||||
assert!(get_block.request_form_status().has_deprecated_legacy());
|
||||
}
|
||||
|
||||
|
||||
#[test]
|
||||
fn release_v0_2_4_pre_007_simple_economics_subset_is_exact_and_retry_safe() {
|
||||
let mut expected = std::vec!["getInflationGovernor", "getInflationRate", "getStakeMinimumDelegation", "getSupply"];
|
||||
@@ -608,3 +617,128 @@ fn release_v0_2_4_pre_008_completes_all_five_economics_wrappers_exactly_and_retr
|
||||
assert_eq!(actual, expected);
|
||||
assert_eq!(actual.len(), 5);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn release_v0_2_4_pre_009_final_http_inventory_and_coverage_partition_are_exact() {
|
||||
let expected_current = std::vec![
|
||||
"getAccountInfo",
|
||||
"getBalance",
|
||||
"getBlock",
|
||||
"getBlockCommitment",
|
||||
"getBlockHeight",
|
||||
"getBlockProduction",
|
||||
"getBlocks",
|
||||
"getBlocksWithLimit",
|
||||
"getBlockTime",
|
||||
"getClusterNodes",
|
||||
"getEpochInfo",
|
||||
"getEpochSchedule",
|
||||
"getFeeForMessage",
|
||||
"getFirstAvailableBlock",
|
||||
"getGenesisHash",
|
||||
"getHealth",
|
||||
"getHighestSnapshotSlot",
|
||||
"getIdentity",
|
||||
"getInflationGovernor",
|
||||
"getInflationRate",
|
||||
"getInflationReward",
|
||||
"getLargestAccounts",
|
||||
"getLatestBlockhash",
|
||||
"getLeaderSchedule",
|
||||
"getMaxRetransmitSlot",
|
||||
"getMaxShredInsertSlot",
|
||||
"getMinimumBalanceForRentExemption",
|
||||
"getMultipleAccounts",
|
||||
"getProgramAccounts",
|
||||
"getRecentPerformanceSamples",
|
||||
"getRecentPrioritizationFees",
|
||||
"getSignaturesForAddress",
|
||||
"getSignatureStatuses",
|
||||
"getSlot",
|
||||
"getSlotLeader",
|
||||
"getSlotLeaders",
|
||||
"getStakeMinimumDelegation",
|
||||
"getSupply",
|
||||
"getTokenAccountBalance",
|
||||
"getTokenAccountsByDelegate",
|
||||
"getTokenAccountsByOwner",
|
||||
"getTokenLargestAccounts",
|
||||
"getTokenSupply",
|
||||
"getTransaction",
|
||||
"getTransactionCount",
|
||||
"getVersion",
|
||||
"getVoteAccounts",
|
||||
"isBlockhashValid",
|
||||
"minimumLedgerSlot",
|
||||
"requestAirdrop",
|
||||
"sendTransaction",
|
||||
"simulateTransaction",
|
||||
];
|
||||
let expected_historical = std::vec![
|
||||
"confirmTransaction",
|
||||
"getConfirmedBlock",
|
||||
"getConfirmedBlocks",
|
||||
"getConfirmedBlocksWithLimit",
|
||||
"getConfirmedSignaturesForAddress2",
|
||||
"getConfirmedTransaction",
|
||||
"getFeeCalculatorForBlockhash",
|
||||
"getFeeRateGovernor",
|
||||
"getFees",
|
||||
"getRecentBlockhash",
|
||||
"getSignatureConfirmation",
|
||||
"getSignatureStatus",
|
||||
"getSnapshotSlot",
|
||||
"getStakeActivation",
|
||||
];
|
||||
|
||||
let current = ksp_onchain_transport_lib::current_http_rpc_methods();
|
||||
let historical = ksp_onchain_transport_lib::historical_http_rpc_methods();
|
||||
let mut actual_current = std::vec::Vec::with_capacity(current.len());
|
||||
let mut actual_historical = std::vec::Vec::with_capacity(historical.len());
|
||||
let mut v0_2_1 = 0_usize;
|
||||
let mut v0_2_2 = 0_usize;
|
||||
let mut v0_2_3 = 0_usize;
|
||||
let mut v0_2_4 = 0_usize;
|
||||
let mut historical_current = 0_usize;
|
||||
|
||||
for descriptor in current {
|
||||
actual_current.push(descriptor.method());
|
||||
assert_eq!(descriptor.runtime_status(), ksp_onchain_transport_lib::RpcRuntimeStatus::Supported);
|
||||
assert_ne!(descriptor.documentation_status(), ksp_onchain_transport_lib::RpcDocumentationStatus::Deprecated);
|
||||
match descriptor.coverage_release() {
|
||||
ksp_onchain_transport_lib::HttpRpcCoverageRelease::V0_2_1 => v0_2_1 += 1,
|
||||
ksp_onchain_transport_lib::HttpRpcCoverageRelease::V0_2_2 => v0_2_2 += 1,
|
||||
ksp_onchain_transport_lib::HttpRpcCoverageRelease::V0_2_3 => v0_2_3 += 1,
|
||||
ksp_onchain_transport_lib::HttpRpcCoverageRelease::V0_2_4 => v0_2_4 += 1,
|
||||
ksp_onchain_transport_lib::HttpRpcCoverageRelease::Historical => historical_current += 1,
|
||||
}
|
||||
match descriptor.operation_kind() {
|
||||
ksp_onchain_transport_lib::RpcOperationKind::Read | ksp_onchain_transport_lib::RpcOperationKind::Simulation => {
|
||||
assert_eq!(descriptor.transport_retry_class(), ksp_onchain_transport_lib::TransportRetryClass::RetrySafe);
|
||||
},
|
||||
ksp_onchain_transport_lib::RpcOperationKind::WriteSubmission => {
|
||||
assert_eq!(descriptor.transport_retry_class(), ksp_onchain_transport_lib::TransportRetryClass::NeverAfterDispatch);
|
||||
},
|
||||
}
|
||||
}
|
||||
for descriptor in historical {
|
||||
actual_historical.push(descriptor.method());
|
||||
assert_eq!(descriptor.documentation_status(), ksp_onchain_transport_lib::RpcDocumentationStatus::Deprecated);
|
||||
assert_eq!(descriptor.runtime_status(), ksp_onchain_transport_lib::RpcRuntimeStatus::Removed);
|
||||
assert_eq!(descriptor.coverage_release(), ksp_onchain_transport_lib::HttpRpcCoverageRelease::Historical);
|
||||
assert_eq!(descriptor.transport_retry_class(), ksp_onchain_transport_lib::TransportRetryClass::NotApplicable);
|
||||
}
|
||||
|
||||
actual_current.sort_unstable();
|
||||
actual_historical.sort_unstable();
|
||||
let mut expected_current = expected_current;
|
||||
let mut expected_historical = expected_historical;
|
||||
expected_current.sort_unstable();
|
||||
expected_historical.sort_unstable();
|
||||
assert_eq!(actual_current, expected_current);
|
||||
assert_eq!(actual_historical, expected_historical);
|
||||
assert_eq!(actual_current.len(), 52);
|
||||
assert_eq!(actual_historical.len(), 14);
|
||||
assert_eq!((v0_2_1, v0_2_2, v0_2_3, v0_2_4), (4, 22, 11, 15));
|
||||
assert_eq!(historical_current, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user