Author: toad
Date: 2008-02-04 22:26:34 +0000 (Mon, 04 Feb 2008)
New Revision: 17515

Modified:
   trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java
Log:
More on ULPR testing.

Modified: trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java      
2008-02-04 22:26:01 UTC (rev 17514)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java      
2008-02-04 22:26:34 UTC (rev 17515)
@@ -124,6 +124,8 @@
         System.err.println("Created random test key "+testKey);
         System.err.println();

+        waitForAllConnected(nodes);
+        
         // Fetch the key from each node.

         for(int i=0;i<nodes.length;i++) {
@@ -166,6 +168,30 @@
                }

     }
+    
+    // FIXME factor out to some simulator utility class.
+       private static void waitForAllConnected(Node[] nodes) throws 
InterruptedException {
+               while(true) {
+                       int countFullyConnected = 0;
+                       int totalPeers = 0;
+                       int totalConnections = 0;
+                       for(int i=0;i<nodes.length;i++) {
+                               int countConnected = 
nodes[i].peers.countConnectedDarknetPeers();
+                               int countTotal = 
nodes[i].peers.countValidPeers();
+                               totalPeers += countTotal;
+                               totalConnections += countConnected;
+                               if(countConnected == countTotal)
+                                       countFullyConnected++;
+                       }
+                       if(countFullyConnected == nodes.length) {
+                               System.err.println("All nodes fully connected");
+                               return;
+                       } else {
+                               System.err.println("Waiting for nodes to be 
fully connected: "+countFullyConnected+" / "+nodes.length+" 
("+totalConnections+" / "+totalPeers+" connections total)");
+                               Thread.sleep(1000);
+                       }
+               }
+       }


 }


Reply via email to