Эх сурвалжийг харах

dht: Add node ids in tests.

parazyd 3 жил өмнө
parent
commit
80ba124941
1 өөрчлөгдсөн 19 нэмэгдсэн , 10 устгасан
  1. 19 10
      src/dht2/mod.rs

+ 19 - 10
src/dht2/mod.rs

@@ -398,10 +398,11 @@ mod tests {
             transport::TransportName, ChannelPtr, MessageSubscription, P2p, ProtocolBase,
             transport::TransportName, ChannelPtr, MessageSubscription, P2p, ProtocolBase,
             ProtocolBasePtr, ProtocolJobsManager,
             ProtocolBasePtr, ProtocolJobsManager,
         },
         },
+        util::async_util::sleep,
     };
     };
     use async_std::{net::TcpListener, sync::Arc};
     use async_std::{net::TcpListener, sync::Arc};
     use async_trait::async_trait;
     use async_trait::async_trait;
-    use log::{error, info};
+    use log::error;
     use rand::{rngs::OsRng, RngCore};
     use rand::{rngs::OsRng, RngCore};
     use smol::Executor;
     use smol::Executor;
     use url::Url;
     use url::Url;
@@ -410,7 +411,7 @@ mod tests {
         let mut ret = vec![];
         let mut ret = vec![];
         let mut addrs = vec![];
         let mut addrs = vec![];
 
 
-        for _ in 0..n_peers {
+        for i in 0..n_peers {
             // Find an available port
             // Find an available port
             let listener = TcpListener::bind("127.0.0.1:0").await?;
             let listener = TcpListener::bind("127.0.0.1:0").await?;
             let sockaddr = listener.local_addr()?;
             let sockaddr = listener.local_addr()?;
@@ -421,7 +422,6 @@ mod tests {
             settings.inbound = vec![url.clone()];
             settings.inbound = vec![url.clone()];
             settings.peers = addrs.clone();
             settings.peers = addrs.clone();
             settings.outbound_transports = vec![TransportName::try_from("tcp").unwrap()];
             settings.outbound_transports = vec![TransportName::try_from("tcp").unwrap()];
-            settings.outbound_connections = n_peers as u32;
             settings.localnet = true;
             settings.localnet = true;
             settings.channel_log = true;
             settings.channel_log = true;
 
 
@@ -431,7 +431,7 @@ mod tests {
             let registry = p2p.protocol_registry();
             let registry = p2p.protocol_registry();
             registry
             registry
                 .register(net::SESSION_ALL, move |channel, p2p| async move {
                 .register(net::SESSION_ALL, move |channel, p2p| async move {
-                    ProtoDht::init(channel, p2p).await.unwrap()
+                    ProtoDht::init(i, channel, p2p).await.unwrap()
                 })
                 })
                 .await;
                 .await;
 
 
@@ -443,6 +443,7 @@ mod tests {
 
 
     struct ProtoDht {
     struct ProtoDht {
         jobsman: net::ProtocolJobsManagerPtr,
         jobsman: net::ProtocolJobsManagerPtr,
+        node_id: usize,
         _channel: ChannelPtr,
         _channel: ChannelPtr,
         _p2p: P2pPtr,
         _p2p: P2pPtr,
         insert_sub: MessageSubscription<NetHashMapInsert<blake3::Hash, Vec<blake3::Hash>>>,
         insert_sub: MessageSubscription<NetHashMapInsert<blake3::Hash, Vec<blake3::Hash>>>,
@@ -450,7 +451,11 @@ mod tests {
     }
     }
 
 
     impl ProtoDht {
     impl ProtoDht {
-        pub async fn init(channel: ChannelPtr, p2p: P2pPtr) -> Result<ProtocolBasePtr> {
+        pub async fn init(
+            node_id: usize,
+            channel: ChannelPtr,
+            p2p: P2pPtr,
+        ) -> Result<ProtocolBasePtr> {
             let msg_subsystem = channel.get_message_subsystem();
             let msg_subsystem = channel.get_message_subsystem();
             msg_subsystem.add_dispatch::<NetHashMapInsert<blake3::Hash, Vec<blake3::Hash>>>().await;
             msg_subsystem.add_dispatch::<NetHashMapInsert<blake3::Hash, Vec<blake3::Hash>>>().await;
             msg_subsystem.add_dispatch::<NetHashMapRemove<blake3::Hash>>().await;
             msg_subsystem.add_dispatch::<NetHashMapRemove<blake3::Hash>>().await;
@@ -460,6 +465,7 @@ mod tests {
 
 
             Ok(Arc::new(Self {
             Ok(Arc::new(Self {
                 jobsman: ProtocolJobsManager::new("DHTProto", channel.clone()),
                 jobsman: ProtocolJobsManager::new("DHTProto", channel.clone()),
+                node_id,
                 _channel: channel,
                 _channel: channel,
                 _p2p: p2p,
                 _p2p: p2p,
                 insert_sub,
                 insert_sub,
@@ -468,26 +474,26 @@ mod tests {
         }
         }
 
 
         async fn handle_insert(self: Arc<Self>) -> Result<()> {
         async fn handle_insert(self: Arc<Self>) -> Result<()> {
-            info!("ProtoDht::handle_insert START");
+            debug!("[Node {}] ProtoDht::handle_insert START", self.node_id);
             loop {
             loop {
                 let insert_message = match self.insert_sub.receive().await {
                 let insert_message = match self.insert_sub.receive().await {
                     Ok(v) => v,
                     Ok(v) => v,
                     Err(_) => continue,
                     Err(_) => continue,
                 };
                 };
 
 
-                println!("{:?}", insert_message);
+                println!("[Node {}] {:?}", self.node_id, insert_message);
             }
             }
         }
         }
 
 
         async fn handle_remove(self: Arc<Self>) -> Result<()> {
         async fn handle_remove(self: Arc<Self>) -> Result<()> {
-            info!("ProtoDht::handle_remove START");
+            debug!("[Node {}] ProtoDht::handle_remove START", self.node_id);
             loop {
             loop {
                 let remove_message = match self.remove_sub.receive().await {
                 let remove_message = match self.remove_sub.receive().await {
                     Ok(v) => v,
                     Ok(v) => v,
                     Err(_) => continue,
                     Err(_) => continue,
                 };
                 };
 
 
-                println!("{:?}", remove_message);
+                println!("[Node {}] {:?}", self.node_id, remove_message);
             }
             }
         }
         }
     }
     }
@@ -495,7 +501,7 @@ mod tests {
     #[async_trait]
     #[async_trait]
     impl ProtocolBase for ProtoDht {
     impl ProtocolBase for ProtoDht {
         async fn start(self: Arc<Self>, executor: Arc<Executor<'_>>) -> Result<()> {
         async fn start(self: Arc<Self>, executor: Arc<Executor<'_>>) -> Result<()> {
-            info!("ProtoDht::start()");
+            debug!("ProtoDht::start()");
             self.jobsman.clone().start(executor.clone());
             self.jobsman.clone().start(executor.clone());
             self.jobsman.clone().spawn(self.clone().handle_insert(), executor.clone()).await;
             self.jobsman.clone().spawn(self.clone().handle_insert(), executor.clone()).await;
             self.jobsman.clone().spawn(self.clone().handle_remove(), executor.clone()).await;
             self.jobsman.clone().spawn(self.clone().handle_remove(), executor.clone()).await;
@@ -572,7 +578,10 @@ mod tests {
                     }
                     }
                 })
                 })
                 .detach();
                 .detach();
+
+            p2p.clone().wait_for_outbound(executor.clone()).await?;
         }
         }
+        sleep(2).await;
 
 
         let mut dhts = vec![];
         let mut dhts = vec![];
         let mut base_path = std::env::temp_dir();
         let mut base_path = std::env::temp_dir();