take into account size of an Entry (#1116)

This commit is contained in:
Rob Walker
2018-09-05 05:07:58 +09:00
committed by GitHub
parent 226d3b9471
commit c44c5f0b09

View File

@ -666,13 +666,18 @@ mod tests {
); );
let tx_large = Transaction::new(&keypair, keypair.pubkey(), 1, next_id); let tx_large = Transaction::new(&keypair, keypair.pubkey(), 1, next_id);
let tx_small_size = serialized_size(&tx_small).unwrap(); let tx_small_size = serialized_size(&tx_small).unwrap() as usize;
let tx_large_size = serialized_size(&tx_large).unwrap(); let tx_large_size = serialized_size(&tx_large).unwrap() as usize;
let entry_size = serialized_size(&Entry {
num_hashes: 0,
id: Hash::default(),
transactions: vec![],
has_more: false,
}).unwrap() as usize;
assert!(tx_small_size < tx_large_size); assert!(tx_small_size < tx_large_size);
assert!(tx_large_size < PACKET_DATA_SIZE as u64); assert!(tx_large_size < PACKET_DATA_SIZE);
// NOTE: if Entry grows to larger than a transaction, the code below falls over let threshold = (BLOB_DATA_SIZE - entry_size) / tx_small_size;
let threshold = (BLOB_DATA_SIZE / PACKET_DATA_SIZE) - 1;
// verify no split // verify no split
let transactions = vec![tx_small.clone(); threshold]; let transactions = vec![tx_small.clone(); threshold];
@ -690,8 +695,8 @@ mod tests {
// verify the split with small transactions followed by large // verify the split with small transactions followed by large
// transactions // transactions
let mut transactions = vec![tx_small.clone(); BLOB_DATA_SIZE / (tx_small_size as usize)]; let mut transactions = vec![tx_small.clone(); BLOB_DATA_SIZE / tx_small_size];
let large_transactions = vec![tx_large.clone(); BLOB_DATA_SIZE / (tx_large_size as usize)]; let large_transactions = vec![tx_large.clone(); BLOB_DATA_SIZE / tx_large_size];
transactions.extend(large_transactions); transactions.extend(large_transactions);