From 9bfa69c6bd831d4e4ca2a38ec1de12f4bdd7d066 Mon Sep 17 00:00:00 2001 From: keorn Date: Thu, 15 Dec 2016 16:52:39 +0100 Subject: [PATCH 1/2] fix channel --- ethcore/src/engines/tendermint/mod.rs | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/ethcore/src/engines/tendermint/mod.rs b/ethcore/src/engines/tendermint/mod.rs index de89658ab..2a9925e89 100644 --- a/ethcore/src/engines/tendermint/mod.rs +++ b/ethcore/src/engines/tendermint/mod.rs @@ -661,10 +661,10 @@ mod tests { use block::*; use error::{Error, BlockError}; use header::Header; + use io::{IoService, IoChannel}; use env_info::EnvInfo; use tests::helpers::*; use account_provider::AccountProvider; - use io::IoService; use service::ClientIoMessage; use spec::Spec; use engines::{Engine, EngineError, Seal}; @@ -904,19 +904,15 @@ mod tests { let proposal = Some(b.header().bare_hash()); // Register IoHandler remembers messages. - let io_service = IoService::::start().unwrap(); let test_io = TestIo::new(); - io_service.register_handler(test_io.clone()).unwrap(); - engine.register_message_channel(io_service.channel()); + let channel = IoChannel::to_handler(Arc::downgrade(&(test_io.clone() as Arc>))); + engine.register_message_channel(channel); let prevote_current = vote(&engine, |mh| tap.sign(v0, None, mh).map(H520::from), h, r, Step::Prevote, proposal); let precommit_current = vote(&engine, |mh| tap.sign(v0, None, mh).map(H520::from), h, r, Step::Precommit, proposal); let prevote_future = vote(&engine, |mh| tap.sign(v0, None, mh).map(H520::from), h + 1, r, Step::Prevote, proposal); - - // Wait a bit for async stuff. - ::std::thread::sleep(::std::time::Duration::from_millis(500)); // Relays all valid present and future messages. assert!(test_io.received.read().contains(&ClientIoMessage::BroadcastMessage(prevote_current))); @@ -941,9 +937,8 @@ mod tests { // Register IoHandler remembers messages. let test_io = TestIo::new(); - let io_service = IoService::::start().unwrap(); - io_service.register_handler(test_io.clone()).unwrap(); - engine.register_message_channel(io_service.channel()); + let channel = IoChannel::to_handler(Arc::downgrade(&(test_io.clone() as Arc>))); + engine.register_message_channel(channel); // Propose let (b, mut seal) = propose_default(&spec, v1.clone()); @@ -956,11 +951,12 @@ mod tests { vote(&engine, |mh| tap.sign(v1, None, mh).map(H520::from), h, r, Step::Precommit, proposal); vote(&engine, |mh| tap.sign(v0, None, mh).map(H520::from), h, r, Step::Precommit, proposal); - // Wait a bit for async stuff. - ::std::thread::sleep(::std::time::Duration::from_millis(500)); - seal[2] = precommit_signatures(&tap, h, r, Some(b.header().bare_hash()), v1, v0); - assert!(test_io.received.read().contains(&ClientIoMessage::SubmitSeal(proposal.unwrap(), seal))); + let first = test_io.received.read().contains(&ClientIoMessage::SubmitSeal(proposal.unwrap(), seal.clone())); + seal[2] = precommit_signatures(&tap, h, r, Some(b.header().bare_hash()), v0, v1); + let second = test_io.received.read().contains(&ClientIoMessage::SubmitSeal(proposal.unwrap(), seal)); + + assert!(first ^ second); engine.stop(); } } From ee653bc262a02a55d4e075f049656b97238d77a4 Mon Sep 17 00:00:00 2001 From: keorn Date: Thu, 15 Dec 2016 16:53:28 +0100 Subject: [PATCH 2/2] unused import --- ethcore/src/engines/tendermint/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ethcore/src/engines/tendermint/mod.rs b/ethcore/src/engines/tendermint/mod.rs index 2a9925e89..bb6d54ca5 100644 --- a/ethcore/src/engines/tendermint/mod.rs +++ b/ethcore/src/engines/tendermint/mod.rs @@ -661,7 +661,7 @@ mod tests { use block::*; use error::{Error, BlockError}; use header::Header; - use io::{IoService, IoChannel}; + use io::IoChannel; use env_info::EnvInfo; use tests::helpers::*; use account_provider::AccountProvider;