bloom check test

This commit is contained in:
Robert Habermeier 2017-04-20 16:09:43 +02:00
parent a33b4cc73b
commit 468a7a4a77

View File

@ -280,7 +280,7 @@ mod tests {
use miner::MinerService; use miner::MinerService;
use tests::helpers::{generate_dummy_client_with_spec_and_accounts, generate_dummy_client_with_spec_and_data}; use tests::helpers::{generate_dummy_client_with_spec_and_accounts, generate_dummy_client_with_spec_and_data};
use super::super::ValidatorSet; use super::super::ValidatorSet;
use super::ValidatorSafeContract; use super::{ValidatorSafeContract, EVENT_NAME_HASH};
#[test] #[test]
fn fetches_validators() { fn fetches_validators() {
@ -358,4 +358,35 @@ mod tests {
sync_client.flush_queue(); sync_client.flush_queue();
assert_eq!(sync_client.chain_info().best_block_number, 3); assert_eq!(sync_client.chain_info().best_block_number, 3);
} }
#[test]
fn detects_bloom() {
use header::Header;
use engines::{EpochChange, Unsure};
use log_entry::LogEntry;
let client = generate_dummy_client_with_spec_and_accounts(Spec::new_validator_safe_contract, None);
let engine = client.engine().clone();
let validator_contract = Address::from_str("0000000000000000000000000000000000000005").unwrap();
let last_hash = client.best_block_header().hash();
let mut new_header = Header::default();
new_header.set_parent_hash(last_hash);
// first, try without the parent hash.
let mut event = LogEntry {
address: validator_contract,
topics: vec![*EVENT_NAME_HASH],
data: Vec::new(),
};
new_header.set_log_bloom(event.bloom());
assert_eq!(engine.is_epoch_end(&new_header, None, None), EpochChange::No);
// with the last hash, it should need the receipts.
event.topics.push(last_hash);
new_header.set_log_bloom(event.bloom());
assert_eq!(engine.is_epoch_end(&new_header, None, None),
EpochChange::Unsure(Unsure::NeedsReceipts));
}
} }