Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adding more tests #37

Open
wants to merge 15 commits into
base: main
Choose a base branch
from
Open

Conversation

harsh-ps-2003
Copy link

@harsh-ps-2003 harsh-ps-2003 commented Jan 12, 2025

This PR :
Moved from static test directories to dynamic temp directories
Updated Committee implementation with test helpers
Improved test utilities and fixtures

and adds following tests :

  • Header Tests :
    Tests initialization, quorum waiting, sync status handling, and digest buffer operations
    Includes edge cases like empty digests and timeout scenarios
    Added tests for multiple rounds and invalid vote handling

    test_header_builder_initialization() - Tests proper setup of HeaderBuilder
    test_wait_for_quorum() - Tests quorum collection mechanism
    test_header_builder_sync_status() - Tests sync state handling
    test_header_builder_with_empty_digests() - Edge case: empty digest handling
    test_header_builder_multiple_rounds() - Tests multi-round header building
    test_header_builder_quorum_timeout() - Tests timeout handling
    test_header_builder_invalid_votes() - Tests invalid vote rejection
    test_header_builder_digest_buffer() - Tests digest buffer operations

  • Primary Synchronizer Tests :
    Tests concurrent request handling, retry logic on failures, partial response handling, invalid response data scenarios

    test_synchronizer_concurrent_requests() - Tests parallel request handling
    test_synchronizer_retry_on_failure() - Tests retry mechanism
    test_synchronizer_multiple_peers() - Tests multi-peer interactions
    test_synchronizer_invalid_response_data() - Tests invalid response handling

  • Fetcher Tests :
    Tests basic fetching operations, timeout handling, error responses
    Covers multiple peer scenarios and response validation
    Tests retry mechanisms on failed fetches

    test_fetcher_basic() - Tests basic fetch operations
    test_fetcher_empty()
    test_fetcher_timeout() - Tests timeout handling
    test_fetcher_error_response() - Tests error response handling
    test_fetcher_multiple_peers() - Tests fetching from multiple peers
    test_fetcher_single_request() - Tests single request flow

  • DAG tests :
    Tests basic DAG creation and operations, parent-child relationships, invalid parent scenarios, layer operations, complex hierarchies with multiple parents, cyclic insertion prevention

    test_dag_creation_and_basic_ops() - Tests basic DAG operations
    test_dag_parent_child_relationships() - Tests relationship validations
    test_dag_invalid_parent() - Tests invalid parent handling
    test_dag_layer_operations() - Tests layer-based operations
    test_dag_multiple_parents() - Tests multiple parent scenarios
    test_dag_cyclic_insertion_prevention() - Tests cycle prevention
    test_dag_complex_hierarchy() - Tests complex DAG structures

The cargo test passes :

running 48 tests
test primary::tests::header_tests::test_header_builder_digest_buffer ... ok
test primary::tests::header_tests::test_header_builder_initialization ... ok
test db::test::test_db ... ok
test primary::header_elector::test::test_first_round_valid_header_digests_stored ... ok
test primary::digests_receiver::tests::test_single_digest_received ... ok
test primary::digests_receiver::tests::test_multiple_under_capacity_digests_received ... ok
test primary::tests::header_tests::test_wait_for_quorum ... ok
test primary::tests::header_tests::test_header_builder_invalid_votes ... ok
test primary::digests_receiver::tests::test_multiple_over_capacity_digests_received ... ok
test synchronizer::feeder::test::feeder_failed_recovery ... ok
test synchronizer::tests::fetcher_tests::test_fetcher_basic ... ok
test synchronizer::tests::fetcher_tests::test_fetcher_empty ... ok
test synchronizer::feeder::test::feeder_full_recovery ... ok
test synchronizer::feeder::test::feeder_partial_recovery ... ok
test primary::digests_receiver::tests::test_multiple_very_over_capacity_digests_received ... ok
test synchronizer::tests::fetcher_tests::test_fetcher_timeout ... ok
test primary::tests::header_tests::test_header_builder_sync_status ... ok
test primary::tests::header_tests::test_header_builder_quorum_timeout ... ok
test primary::tests::header_tests::test_header_builder_with_empty_digests ... ok
test synchronizer::tests::fetcher_tests::test_fetcher_error_response ... ok
test types::dag::test::test_one_child_one_parent_check ... ok
test types::tests::dag_tests::test_dag_complex_hierarchy ... ok
test types::tests::dag_tests::test_dag_creation_and_basic_ops ... ok
test types::tests::dag_tests::test_dag_cyclic_insertion_prevention ... ok
test types::tests::dag_tests::test_dag_invalid_parent ... ok
test types::tests::dag_tests::test_dag_layer_operations ... ok
test types::tests::dag_tests::test_dag_multiple_parents ... ok
test types::tests::dag_tests::test_dag_parent_child_relationships ... ok
test worker::batch_maker::test::test_batch_maker_mixed_triggers ... ok
test worker::batch_maker::test::test_batch_maker_no_txs ... ok
test worker::batch_maker::test::test_batch_maker_rapid_transactions ... ok
test worker::batch_maker::test::test_batch_maker_size_trigger ... ok
test worker::batch_maker::test::test_batch_maker_timeout_trigger ... ok
test synchronizer::tests::fetcher_tests::test_fetcher_multiple_peers ... ok
test synchronizer::tests::fetcher_tests::test_fetcher_single_request ... ok
test synchronizer::tests::synchronizer_tests::test_synchronizer_concurrent_requests ... ok
test worker::batch_receiver::test::test_cancelled ... ok
test worker::quorum_waiter::test::test_cancelled ... ok
test worker::batch_receiver::test::test_single_batch_acknowledgement ... ok
test worker::quorum_waiter::test::test_batch_forgotten_after_quorum_received ... ok
test worker::quorum_waiter::test::test_duplicates_acknowledgements ... ok
test worker::quorum_waiter::test::test_multiple_batches_multiple_quorum ... ok
test worker::quorum_waiter::test::test_quorum_received ... ok
test worker::quorum_waiter::test::test_multiple_batches_single_quorum ... ok
test synchronizer::tests::synchronizer_tests::test_synchronizer_multiple_peers ... ok
test synchronizer::tests::synchronizer_tests::test_synchronizer_retry_on_failure ... ok
test primary::tests::header_tests::test_header_builder_multiple_rounds ... ok
test synchronizer::tests::synchronizer_tests::test_synchronizer_invalid_response_data ... ok

test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s

@harsh-ps-2003 harsh-ps-2003 marked this pull request as draft January 12, 2025 17:21
@harsh-ps-2003 harsh-ps-2003 marked this pull request as ready for review January 13, 2025 08:45
@harsh-ps-2003
Copy link
Author

@EvolveArt can you TAL?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant