veilid-core 0.5.7

Core library used to create a Veilid node and operate it as part of an application
Documentation
pub mod mocks;
pub mod test_bucket_entry_state;
pub mod test_network_estimator;
pub mod test_nodes_needed;
pub mod test_routing_metrics;
pub mod test_serialize_routing_table;
pub mod test_signed_node_info;

pub use mocks::*;

use super::*;

pub async fn test_all() {
    test_serialize_routing_table::test_kick_preserves_best_node_id().await;
    test_serialize_routing_table::test_load_rejects_entries_without_node_ids().await;
    test_serialize_routing_table::test_replace_node_ids_rejects_without_valid_id().await;
    test_serialize_routing_table::test_routingtable_buckets_round_trip().await;
    test_serialize_routing_table::test_round_trip_peerinfo().await;
    test_signed_node_info::test_signed_node_info().await;
    test_routing_metrics::test_bucket_depth();
    test_routing_metrics::test_practical_max_size_zero();
    test_routing_metrics::test_practical_max_size_small_network_holds_most_nodes();
    test_routing_metrics::test_practical_max_size_known_values();
    test_routing_metrics::test_practical_max_size_monotonic();
    test_network_estimator::test_network_estimator_empty();
    test_network_estimator::test_network_estimator_lowest_unsaturated_bucket();
    test_network_estimator::test_network_estimator_skips_saturated_bucket_0();
    test_network_estimator::test_network_estimator_high_water_across_slots();
    test_network_estimator::test_network_estimator_only_zeroes_entered_slot();
    test_network_estimator::test_network_estimator_entered_slot_zeros_old_data();
    test_network_estimator::test_network_estimator_combined_single_kind();
    test_network_estimator::test_network_estimator_clock_backward_ignored();
    test_nodes_needed::test_nodes_needed_empty_table_bootstraps();
    test_nodes_needed::test_nodes_needed_stale_table_inflation_capped();
    test_nodes_needed::test_nodes_needed_fresh_small_table_uses_fraction();
    test_nodes_needed::test_nodes_needed_low_water_mark_term_capped();
    test_nodes_needed::test_nodes_needed_fallback_bootstrap_timing();
    test_nodes_needed::test_nodes_needed_peer_minimum_refresh_scoped_to_attach();
    test_bucket_entry_state::test_state_punished();
    test_bucket_entry_state::test_state_dead_excessive_unreachable();
    test_bucket_entry_state::test_state_dead_excessive_send_failures();
    test_bucket_entry_state::test_state_dead_never_seen_lost_questions();
    test_bucket_entry_state::test_state_dead_steady_lost_questions();
    test_bucket_entry_state::test_state_missing_failed_to_send();
    test_bucket_entry_state::test_state_missing_lost_questions();
    test_bucket_entry_state::test_state_initial();
    test_bucket_entry_state::test_state_unreliable();
    test_bucket_entry_state::test_state_reliable();
    test_bucket_entry_state::test_state_precedence_dead_beats_reliable();
    test_bucket_entry_state::test_state_transition_reliable_degrades_to_missing();
    test_bucket_entry_state::test_state_offline_credit_steady_lost_questions();
    test_bucket_entry_state::test_state_offline_credit_unreliable_answer();
}