Skip to content
This repository has been archived by the owner on Jun 25, 2021. It is now read-only.

Commit

Permalink
fix(test): fix AE tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Yoga07 authored and dirvine committed May 13, 2021
1 parent 649d27b commit 4d8ae27
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 92 deletions.
2 changes: 1 addition & 1 deletion src/agreement/dkg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -822,7 +822,7 @@ mod tests {
assert_eq!(dkg_key, *expected_dkg_key);
recipients
.into_iter()
.map(|addr| (addr.0, message.clone()))
.map(|addr| (addr.1, message.clone()))
.collect()
}
DkgCommand::HandleOutcome { outcome, .. } => {
Expand Down
8 changes: 4 additions & 4 deletions src/routing/bootstrap.rs
Original file line number Diff line number Diff line change
Expand Up @@ -736,7 +736,7 @@ mod tests {
.ok_or_else(|| anyhow!("GetSectionQuery was not received"))?;

let bootstrap_addrs: Vec<SocketAddr> =
recipients.iter().map(|(addr, _name)| *addr).collect();
recipients.iter().map(|(_name, addr)| *addr).collect();
assert_eq!(bootstrap_addrs, [bootstrap_addr]);
assert_matches!(message, MessageType::SectionInfo{ msg: SectionInfoMsg::GetSectionQuery(name), .. } => {
assert_eq!(XorName::from(name), *peer.name());
Expand Down Expand Up @@ -780,7 +780,7 @@ mod tests {
section_auth
.elders()
.iter()
.map(|(name, addr)| (*addr, *name))
.map(|(name, addr)| (*name, *addr))
.collect::<Vec<_>>(),
);
assert_matches!(message.variant(), Variant::JoinRequest(request) => {
Expand Down Expand Up @@ -856,7 +856,7 @@ mod tests {
assert_eq!(
recipients
.into_iter()
.map(|peer| peer.0)
.map(|peer| peer.1)
.collect::<Vec<_>>(),
vec![bootstrap_node.addr]
);
Expand Down Expand Up @@ -897,7 +897,7 @@ mod tests {
assert_eq!(
recipients
.into_iter()
.map(|peer| peer.0)
.map(|peer| peer.1)
.collect::<Vec<_>>(),
new_bootstrap_addrs
.into_iter()
Expand Down
89 changes: 21 additions & 68 deletions src/routing/lazy_messaging.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,6 @@ pub(crate) fn process(
trace!("Anti-Entropy: We do not know source's key, need to update ourselves");
let msg = create_other_section_message(
node,
section,
network,
Variant::SectionKnowledgeQuery {
last_known_key: *key,
msg: Box::new(msg.clone()),
Expand Down Expand Up @@ -104,7 +102,7 @@ pub(crate) fn process(
src_info: (section_auth.clone(), chain.clone()),
msg: None,
};
let msg = create_other_section_message(node, section, network, variant, dst)?;
let msg = create_other_section_message(node, variant, dst)?;
actions.send.push(msg);
return Ok((actions, true));
}
Expand All @@ -116,21 +114,10 @@ pub(crate) fn process(

fn create_other_section_message(
node: &Node,
section: &Section,
network: &Network,
variant: Variant,
dst: DstLocation,
// nonce: MessageHash,
) -> Result<Message> {
let dst_knowledge = dst
.name()
.and_then(|dst| network.key_by_name(&dst))
.unwrap_or_else(|| section.chain().root_key());
let proof_chain = section
.chain()
.minimize(vec![section.chain().last_key(), dst_knowledge])?;

Message::single_src(node, dst, variant, Some(proof_chain))
Message::single_src(node, dst, variant, None)
}

#[derive(Default)]
Expand All @@ -152,7 +139,7 @@ mod tests {
XorName, ELDER_SIZE, MIN_ADULT_AGE,
};
use anyhow::{Context, Result};
//use assert_matches::assert_matches;
use assert_matches::assert_matches;
use bytes::Bytes;
use xor_name::Prefix;

Expand Down Expand Up @@ -182,7 +169,6 @@ mod tests {
}

#[test]
#[ignore]
fn new_src_key_from_other_section() -> Result<()> {
let env = Env::new(1)?;

Expand All @@ -197,11 +183,11 @@ mod tests {

let msg = env.create_message(&env.their_prefix, proof_chain)?;
let dest_info = DestInfo {
dest: XorName::random(),
dest: env.node.name(),
dest_section_pk: *env.section.chain().last_key(),
};

let (_, _) = process(
let (mut actions, _) = process(
&env.node,
&env.section,
&env.network,
Expand All @@ -211,18 +197,14 @@ mod tests {
None,
)?;

// assert_matches!(&actions.send, Some(message) => {
// assert_matches!(
// message.variant(),
// Variant::OtherSection { section_auth, .. } => {
// assert_eq!(&section_auth.value, env.section.authority_provider())
// }
// );
// assert_matches!(message.proof_chain(), Ok(chain) => {
// assert_eq!(chain.len(), 1);
// assert_eq!(chain.last_key(), env.section.chain().last_key());
// });
// });
assert_matches!(&actions.send.pop(), Some(message) => {
assert_matches!(
message.variant(),
Variant::SectionKnowledgeQuery { last_known_key, .. } => {
assert_eq!(*last_known_key, their_old_pk);
}
);
});

Ok(())
}
Expand All @@ -243,7 +225,7 @@ mod tests {

let msg = env.create_message(env.section.prefix(), proof_chain)?;
let dest_info = DestInfo {
dest: XorName::random(),
dest: env.node.name(),
dest_section_pk: our_new_pk,
};

Expand All @@ -263,7 +245,6 @@ mod tests {
}

#[test]
#[ignore]
fn outdated_dst_key_from_other_section() -> Result<()> {
let env = Env::new(2)?;

Expand All @@ -274,7 +255,7 @@ mod tests {
dest_section_pk: *env.section.chain().root_key(),
};

let (_, _) = process(
let (mut actions, _) = process(
&env.node,
&env.section,
&env.network,
Expand All @@ -284,12 +265,12 @@ mod tests {
None,
)?;

// assert_matches!(&actions.send, Some(message) => {
// assert_matches!(message.variant(), Variant::OtherSection { .. });
// assert_matches!(message.proof_chain(), Ok(chain) => {
// assert_eq!(chain, env.section.chain());
// })
// });
assert_matches!(&actions.send.pop(), Some(message) => {
assert_matches!(message.variant(), Variant::SectionKnowledge { src_info, .. } => {
assert_eq!(src_info.0.value, *env.section.authority_provider());
assert_eq!(src_info.1, *env.section.chain());
});
});

Ok(())
}
Expand Down Expand Up @@ -320,34 +301,6 @@ mod tests {
Ok(())
}

// #[test]
// #[ignore]
// fn outdated_knowledge() -> Result<()> {
// let mut env = Env::new(2)?;

// let knowledge = proven(
// &env.our_sk,
// (env.their_prefix, *env.section.chain().root_key()),
// )?;
// env.network.update_knowledge(knowledge);

// let proof_chain = SectionChain::new(env.their_sk.public_key());
// let msg = env.create_message(&env.their_prefix, proof_chain)?;
// let dest_info = DestInfo {
// dest: XorName::random(),
// dest_section_pk: *env.section.chain().last_key(),
// };
// let actions = process(&env.node, &env.section, &env.network, &msg, dest_info)?;

// assert_eq!(actions.send, vec![]);
// // assert_matches!(&actions.propose, Some(Proposal::TheirKnowledge { prefix, key }) => {
// // assert_eq!(prefix, &env.their_prefix);
// // assert_eq!(key, env.section.chain().last_key());
// // });

// Ok(())
// }

struct Env {
node: Node,
section: Section,
Expand Down
38 changes: 19 additions & 19 deletions src/routing/tests/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ async fn receive_matching_get_section_request_as_elder() -> Result<()> {
}) => (recipients, msg)
);

assert_eq!(recipients, [(new_node.addr, new_node.name())]);
assert_eq!(recipients, [(new_node.name(), new_node.addr)]);

assert_matches!(
message,
Expand Down Expand Up @@ -142,7 +142,7 @@ async fn receive_mismatching_get_section_request_as_adult() -> Result<()> {
}) => (recipients, msg)
);

assert_eq!(recipients, [(new_node_addr, new_node_name)]);
assert_eq!(recipients, [(new_node_name, new_node_addr)]);
assert_matches!(
message,
SectionInfoMsg::GetSectionResponse(GetSectionResponse::Redirect(addrs)) => {
Expand Down Expand Up @@ -576,7 +576,7 @@ async fn handle_agreement_on_online_of_elder_candidate() -> Result<()> {
let expected_dkg_start_recipients: Vec<_> = expected_new_elders
.iter()
.filter(|peer| *peer.name() != node_name)
.map(|peer| (*peer.addr(), *peer.name()))
.map(|peer| (*peer.name(), *peer.addr()))
.collect();
assert_eq!(recipients, expected_dkg_start_recipients);

Expand Down Expand Up @@ -632,15 +632,15 @@ async fn handle_online_command(
..
} => {
assert_eq!(proven_section_auth.value, *section_auth);
assert_eq!(recipients, [(*peer.addr(), *peer.name())]);
assert_eq!(recipients, [(*peer.name(), *peer.addr())]);
status.node_approval_sent = true;
}
Variant::Relocate(details) => {
if details.pub_id != *peer.name() {
continue;
}

assert_eq!(recipients, [(*peer.addr(), *peer.name())]);
assert_eq!(recipients, [(*peer.name(), *peer.addr())]);

status.relocate_details = Some(details.clone());
}
Expand Down Expand Up @@ -831,7 +831,7 @@ async fn handle_agreement_on_offline_of_elder() -> Result<()> {
let expected_dkg_start_recipients: Vec<_> = expected_new_elders
.iter()
.filter(|peer| *peer.name() != node_name)
.map(|peer| (*peer.addr(), *peer.name()))
.map(|peer| (*peer.name(), *peer.addr()))
.collect();
assert_eq!(recipients, expected_dkg_start_recipients);

Expand Down Expand Up @@ -956,7 +956,7 @@ async fn handle_untrusted_message(source: UntrustedMessageSource) -> Result<()>
assert_eq!(
recipients
.into_iter()
.map(|recp| recp.0)
.map(|recp| recp.1)
.collect::<Vec<_>>(),
expected_recipients
);
Expand Down Expand Up @@ -1071,7 +1071,7 @@ async fn handle_bounced_untrusted_message() -> Result<()> {

match message.variant() {
Variant::UserMessage(content) => {
assert_eq!(recipients, [(other_node.addr, other_node.name())]);
assert_eq!(recipients, [(other_node.name(), other_node.addr)]);
assert_eq!(*content, original_message_content);
assert_eq!(*message.proof_chain()?, chain);

Expand Down Expand Up @@ -1242,7 +1242,7 @@ async fn handle_untrusted_sync() -> Result<()> {
match message.variant() {
Variant::BouncedUntrustedMessage { msg, .. } => {
assert_eq!(**msg, orig_message);
assert_eq!(recipients, [(sender.addr, sender.name())]);
assert_eq!(recipients, [(sender.name(), sender.addr)]);
bounce_sent = true;
}
_ => continue,
Expand Down Expand Up @@ -1343,7 +1343,7 @@ async fn handle_bounced_untrusted_sync() -> Result<()> {

match message.variant() {
Variant::Sync { section, .. } => {
assert_eq!(recipients, [(sender.addr, sender.name())]);
assert_eq!(recipients, [(sender.name(), sender.addr)]);
assert!(section.chain().has_key(&pk0));
message_resent = true;
}
Expand Down Expand Up @@ -1418,7 +1418,7 @@ async fn relocation(relocated_peer_role: RelocatedPeerRole) -> Result<()> {

if recipients
.into_iter()
.map(|recp| recp.0)
.map(|recp| recp.1)
.collect::<Vec<_>>()
!= [*relocated_peer.addr()]
{
Expand Down Expand Up @@ -1602,10 +1602,10 @@ async fn handle_elders_update() -> Result<()> {

let sync_expected_recipients: HashSet<_> = other_elder_peers
.into_iter()
.map(|peer| (*peer.addr(), *peer.name()))
.chain(iter::once((*promoted_peer.addr(), *promoted_peer.name())))
.chain(iter::once((*demoted_peer.addr(), *demoted_peer.name())))
.chain(iter::once((*adult_peer.addr(), *adult_peer.name())))
.map(|peer| (*peer.name(), *peer.addr()))
.chain(iter::once((*promoted_peer.name(), *promoted_peer.addr())))
.chain(iter::once((*demoted_peer.name(), *demoted_peer.addr())))
.chain(iter::once((*adult_peer.name(), *adult_peer.addr())))
.collect();

assert_eq!(sync_actual_recipients, sync_expected_recipients);
Expand Down Expand Up @@ -1721,13 +1721,13 @@ async fn handle_demote_during_split() -> Result<()> {
let expected_sync_recipients = if prefix0.matches(&node_name) {
peers_a
.iter()
.map(|peer| (*peer.addr(), *peer.name()))
.chain(iter::once((*peer_c.addr(), *peer_c.name())))
.map(|peer| (*peer.name(), *peer.addr()))
.chain(iter::once((*peer_c.name(), *peer_c.addr())))
.collect()
} else {
peers_b
.iter()
.map(|peer| (*peer.addr(), *peer.name()))
.map(|peer| (*peer.name(), *peer.addr()))
.collect()
};

Expand All @@ -1739,7 +1739,7 @@ async fn handle_demote_during_split() -> Result<()> {
// TODO: add more tests here

#[allow(unused)]
fn init_log() {
pub fn init_log() {
tracing_subscriber::fmt()
.pretty()
.with_env_filter(tracing_subscriber::EnvFilter::from_default_env())
Expand Down

0 comments on commit 4d8ae27

Please sign in to comment.