Author: robert
Date: 2008-02-01 18:17:15 +0000 (Fri, 01 Feb 2008)
New Revision: 17462
Modified:
trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
Log:
logging, and try to fetch even if insert fails
Modified:
trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
2008-02-01 16:29:05 UTC (rev 17461)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
2008-02-01 18:17:15 UTC (rev 17462)
@@ -37,6 +37,8 @@
static final int NUMBER_OF_NODES = 10;
static final short MAX_HTL = 5;
+ //static final int NUMBER_OF_NODES = 50;
+ //static final short MAX_HTL = 10;
public static void main(String[] args) throws FSParseException,
PeerParseException, CHKEncodeException, InvalidThresholdException,
NodeInitException, ReferenceSignatureVerificationException {
String wd = "realNodeRequestInsertTest";
@@ -44,8 +46,8 @@
//NOTE: globalTestInit returns in ignored random source
NodeStarter.globalTestInit(wd);
// Don't clobber nearby nodes!
- Logger.setupStdoutLogging(Logger.DEBUG,
"freenet.store:minor,freenet.node.Location:normal"
/*"freenet.node.LocationManager:debug,freenet.node.FNPPacketManager:normal,freenet.io.comm.MessageCore:debug"*/);
- Logger.globalSetThreshold(Logger.DEBUG);
+ Logger.setupStdoutLogging(Logger.ERROR,
"freenet.node.Location:normal,freenet.node.simulator.RealNodeRoutingTest:normal"
/*"freenet.store:minor,freenet.node.LocationManager:debug,freenet.node.FNPPacketManager:normal,freenet.io.comm.MessageCore:debug"*/);
+ Logger.globalSetThreshold(Logger.ERROR);
System.out.println("Insert/retrieve test");
System.out.println();
DummyRandomSource random = new DummyRandomSource();
@@ -134,7 +136,7 @@
Node randomNode2 = randomNode;
while(randomNode2 == randomNode)
randomNode2 = nodes[random.nextInt(NUMBER_OF_NODES)];
- Logger.normal(RealNodeRoutingTest.class, "Pinging
"+randomNode2.getDarknetPortNumber()+" from
"+randomNode.getDarknetPortNumber());
+ Logger.minor(RealNodeRoutingTest.class, "Pinging
"+randomNode2.getDarknetPortNumber()+" from
"+randomNode.getDarknetPortNumber());
double loc2 = randomNode2.getLocation();
int hopsTaken = randomNode.routedPing(loc2);
pings++;
@@ -165,6 +167,9 @@
int requestNumber = 0;
RunningAverage requestsAvg = new SimpleRunningAverage(100, 0.0);
String baseString = System.currentTimeMillis() + " ";
+ int insertAttempts = 0;
+ int insertSuccesses = 0;
+ int fetchSuccesses = 0;
while(true) {
try {
requestNumber++;
@@ -184,12 +189,18 @@
byte[] encData = block.getData();
byte[] encHeaders = block.getHeaders();
ClientCHKBlock newBlock = new ClientCHKBlock(encData,
encHeaders, chk, true);
- Logger.error(RealNodeRequestInsertTest.class, "Decoded: "+new
String(newBlock.memoryDecode()));
- Logger.error(RealNodeRequestInsertTest.class,"CHK:
"+chk.getURI());
- Logger.error(RealNodeRequestInsertTest.class,"Headers:
"+HexUtil.bytesToHex(block.getHeaders()));
- randomNode.clientCore.realPut(block, true);
- Logger.error(RealNodeRequestInsertTest.class, "Inserted to
"+node1);
- Logger.error(RealNodeRequestInsertTest.class, "Data:
"+Fields.hashCode(encData)+", Headers: "+Fields.hashCode(encHeaders));
+ Logger.minor(RealNodeRequestInsertTest.class, "Decoded: "+new
String(newBlock.memoryDecode()));
+ Logger.normal(RealNodeRequestInsertTest.class,"CHK:
"+chk.getURI());
+ Logger.minor(RealNodeRequestInsertTest.class,"Headers:
"+HexUtil.bytesToHex(block.getHeaders()));
+ try {
+ insertAttempts++;
+ randomNode.clientCore.realPut(block,
true);
+
Logger.error(RealNodeRequestInsertTest.class, "Inserted to "+node1);
+
Logger.minor(RealNodeRequestInsertTest.class, "Data:
"+Fields.hashCode(encData)+", Headers: "+Fields.hashCode(encHeaders));
+ insertSuccesses++;
+ } catch (freenet.node.LowLevelPutException
putEx) {
+
Logger.error(RealNodeRequestInsertTest.class, "Insert failed: "+ putEx);
+ }
// Pick random node to request from
int node2;
do {
@@ -198,13 +209,16 @@
Node fetchNode = nodes[node2];
block = (ClientCHKBlock)
fetchNode.clientCore.realGetKey((ClientKey) chk, false, true, false);
if(block == null) {
- Logger.error(RealNodeRequestInsertTest.class, "Fetch
FAILED from "+node2);
+ int
percentSuccess=100*fetchSuccesses/insertAttempts;
+ Logger.error(RealNodeRequestInsertTest.class, "Fetch
#"+requestNumber+" FAILED ("+percentSuccess+"%); from "+node2);
requestsAvg.report(0.0);
} else {
byte[] results = block.memoryDecode();
requestsAvg.report(1.0);
if(Arrays.equals(results, data)) {
- Logger.error(RealNodeRequestInsertTest.class, "Fetch
succeeded: "+new String(results));
+ fetchSuccesses++;
+ int
percentSuccess=100*fetchSuccesses/insertAttempts;
+ Logger.error(RealNodeRequestInsertTest.class, "Fetch
#"+requestNumber+" succeeded ("+percentSuccess+"%): "+new String(results));
} else {
Logger.error(RealNodeRequestInsertTest.class,
"Returned invalid data!: "+new String(results));
}