From ec9fa2a25923fa03f5cce22f2a0d53ee41665f0f Mon Sep 17 00:00:00 2001 From: Erik Hollensbe Date: Thu, 30 Jun 2022 00:37:46 -0700 Subject: [PATCH] some basic careof tests Signed-off-by: Erik Hollensbe --- zerotier-network-hypervisor/src/vl1/careof.rs | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/zerotier-network-hypervisor/src/vl1/careof.rs b/zerotier-network-hypervisor/src/vl1/careof.rs index c8f2f46b3..090a63fee 100644 --- a/zerotier-network-hypervisor/src/vl1/careof.rs +++ b/zerotier-network-hypervisor/src/vl1/careof.rs @@ -106,3 +106,33 @@ impl CareOf { self.fingerprints.binary_search(&id.fingerprint).is_ok() } } + +#[cfg(test)] +mod tests { + use std::sync::mpsc; + + use super::CareOf; + use super::Identity; + + #[test] + fn add() { + let (s, r) = mpsc::channel(); + + for _ in 0..10 { + let s2 = s.clone(); + + std::thread::spawn(move || { + let id = Identity::generate(); + let mut c = CareOf::new(rand::random()); + + s2.send(!c.contains(&id)).unwrap(); + c.add_care_of(&id); + s2.send(c.contains(&id)).unwrap(); + }); + } + + for _ in 0..20 { + assert!(r.recv().unwrap()); + } + } +}