Skip to content

Commit

Permalink
test(mempool): get txs replenishes queue only between chunks (#95)
Browse files Browse the repository at this point in the history
  • Loading branch information
ayeletstarkware authored Jul 28, 2024
1 parent 41906a6 commit 9c48900
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions crates/mempool/src/mempool_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,33 @@ fn test_get_txs_multi_nonce() {
expected_mempool_state.assert_eq_mempool_state(&mempool);
}

#[rstest]
fn test_get_txs_replenishes_queue_only_between_chunks() {
// Setup.
let tx_address_0_nonce_0 =
add_tx_input!(tip: 20, tx_hash: 1, sender_address: "0x0", tx_nonce: 0_u8, account_nonce: 0_u8).tx;
let tx_address_0_nonce_1 =
add_tx_input!(tip: 20, tx_hash: 2, sender_address: "0x0", tx_nonce: 1_u8, account_nonce: 0_u8).tx;
let tx_address_1_nonce_0 =
add_tx_input!(tip: 10, tx_hash: 3, sender_address: "0x1", tx_nonce: 0_u8, account_nonce: 0_u8).tx;

let queue_txs = [&tx_address_0_nonce_0, &tx_address_1_nonce_0].map(TransactionReference::new);
let pool_txs =
[&tx_address_0_nonce_0, &tx_address_0_nonce_1, &tx_address_1_nonce_0].map(|tx| tx.clone());
let mut mempool: Mempool = MempoolState::new(pool_txs, queue_txs).into();

// Test.
let txs = mempool.get_txs(3).unwrap();

// Assert: all transactions returned.
// Replenishment done in chunks: account 1 transaction is returned before the one of account 0,
// although its priority is higher.
assert_eq!(txs, &[tx_address_0_nonce_0, tx_address_1_nonce_0, tx_address_0_nonce_1]);
// TODO(Ayelet): Add an MempoolState empty constructor.
let expected_mempool_state = MempoolState::new([], []);
expected_mempool_state.assert_eq_mempool_state(&mempool);
}

#[rstest]
fn test_add_tx(mut mempool: Mempool) {
// Setup.
Expand Down

0 comments on commit 9c48900

Please sign in to comment.