diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml
index 35ec90f8d..db32d574a 100644
--- a/apps/routerconsole/java/build.xml
+++ b/apps/routerconsole/java/build.xml
@@ -48,7 +48,7 @@
-
+
@@ -57,6 +57,8 @@
+
+
diff --git a/core/java/src/net/i2p/data/TunnelId.java b/core/java/src/net/i2p/data/TunnelId.java
index 415c293f0..6381f6be7 100644
--- a/core/java/src/net/i2p/data/TunnelId.java
+++ b/core/java/src/net/i2p/data/TunnelId.java
@@ -27,8 +27,8 @@ public class TunnelId extends DataStructureImpl {
private long _tunnelId;
private int _type;
- public static final long MAX_ID_VALUE = (1l<<32l)-1l;
-
+ public static final long MAX_ID_VALUE = (1l<<32l)-2l;
+
public final static int TYPE_UNSPECIFIED = 0;
public final static int TYPE_INBOUND = 1;
public final static int TYPE_OUTBOUND = 2;
diff --git a/core/perl/i2pbench.sh b/core/perl/i2pbench.sh
new file mode 100644
index 000000000..464e962d5
--- /dev/null
+++ b/core/perl/i2pbench.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/perl
+
+print "\nBenchmark Suite #1: i2p/core/java/test/net/i2p/crypto/*\n\n";
+
+@testclasses = ( "AES256Bench", "DSABench", "ElGamalBench", "SHA256Bench" );
+
+foreach $testclass (@testclasses) {
+ print "[BENCHMARK] $testclass:\n\n";
+ system("java -cp lib/i2p.jar:lib/jbigi.jar net.i2p.crypto.$testclass");
+ print "\n";
+}
+
+print "\n*** ALL BENCHMARKS COMPLETE ***\n\n";
diff --git a/core/perl/i2ptest.sh b/core/perl/i2ptest.sh
new file mode 100644
index 000000000..63cdaf585
--- /dev/null
+++ b/core/perl/i2ptest.sh
@@ -0,0 +1,122 @@
+#!/usr/bin/perl
+# Yeah yeah, a lot of repetitive code here, but it works for now.
+
+$failed = 0;
+$passed = 0;
+$failedtotal = 0;
+$passedtotal = 0;
+
+print "\nTest Suite #1: i2p/core/java/test/net/i2p/data/*Test\n\n";
+
+@testclasses = ( "AbuseReason", "AbuseSeverity", "Boolean", "Certificate",
+ "CreateLeaseSetMessage", "CreateSessionMessage", "Date", "Destination",
+ "DestroySessionMessage", "DisconnectMessage", "Hash", "LeaseSet", "Lease",
+ "Mapping", "MessageId", "MessagePayloadMessage", "MessageStatusMessage",
+ "Payload", "PrivateKey", "PublicKey", "ReceiveMessageBeginMessage",
+ "ReceiveMessageEndMessage", "ReportAbuseMessage", "RequestLeaseSetMessage",
+ "RouterAddress", "RouterIdentity", "RouterInfo", "SendMessageMessage",
+ "SessionConfig", "SessionId", "SessionKey", "SessionStatusMessage",
+ "Signature", "SigningPrivateKey", "SigningPublicKey", "String", "TunnelId",
+ "UnsignedInteger" );
+
+foreach $testclass (@testclasses) {
+ print "[TEST] $testclass: ";
+ if(! system("java -cp lib/i2p.jar:lib/jbigi.jar net.i2p.data.TestData test $testclass $testclass.dat > /dev/null 2>test.tmp")) {
+ print "OK\n";
+ $passed++;
+ } else {
+ print "FAILED\n";
+ print "Error Messages:\n\n";
+ open TMP, "test.tmp";
+ while () {
+ print "$_";
+ }
+ print "\n";
+ $failed++;
+ }
+ system("rm -f $testclass.dat test.tmp > /dev/null 2>&1");
+}
+
+print "\nTEST SUITE #1 RESULTS\nPassed: $passed\nFailed: $failed\n\n";
+
+$failedtotal += $failed;
+$passedtotal += $passed;
+$failed = 0;
+$passed = 0;
+
+print "\nTest Suite #2: i2p/core/java/test/net/i2p/crypto/*\n\n";
+
+@testclasses = ( "ElGamalAESEngine", "ElGamalVerify", "SessionEncryptionTest" );
+
+foreach $testclass (@testclasses) {
+ if ($testclass eq "SessionEncryptionTest") {
+ print "[TEST] $testclass: ";
+ if(! system("java -cp lib/i2p.jar:lib/jbigi.jar net.i2p.crypto.SessionEncryptionTest > /dev/null 2>test.tmp")) {
+ print "OK\n";
+ $passed++;
+ } else {
+ print "FAILED\n";
+ print "Error Messages:\n\n";
+ open TMP, "test.tmp";
+ while () {
+ print "$_";
+ }
+ $failed++;
+ }
+ } else {
+ print "[TEST] $testclass:\n\n";
+ if(! system("java -cp lib/i2p.jar:lib/jbigi.jar net.i2p.crypto.$testclass")) {
+ $passed++;
+ } else {
+ $failed++;
+ }
+ }
+ print "\n";
+ system("rm -f test.tmp > /dev/null 2>&1");
+}
+
+print "\nTEST SUITE #2 RESULTS\nPassed: $passed\nFailed: $failed\n\n";
+
+$failedtotal += $failed;
+$passedtotal += $passed;
+$failed = 0;
+$passed = 0;
+
+print "\nTest Suite #3: Miscellaneous\n\n";
+
+@testclasses = ( "net.i2p.util.LogManager", "net.i2p.util.OrderedProperties",
+ "net.i2p.stat.RateStat", "net.i2p.data.UnsignedInteger" );
+
+foreach $testclass (@testclasses) {
+ if ($testclass eq "net.i2p.data.UnsignedInteger") {
+ print "[TEST] $testclass:\n\n";
+ if(! system("java -cp lib/i2p.jar:lib/jbigi.jar net.i2p.data.UnsignedInteger")) {
+ $passed++;
+ } else {
+ $failed++;
+ }
+ print "\n";
+ } else {
+ print "[TEST] $testclass: ";
+ if(! system("java -cp lib/i2p.jar:lib/jbigi.jar $testclass > /dev/null 2>test.tmp")) {
+ print "OK\n";
+ $passed++;
+ } else {
+ print "FAILED\n";
+ print "Error Messages:\n\n";
+ open TMP, "test.tmp";
+ while () {
+ print "$_";
+ }
+ $failed++;
+ }
+ }
+ system("rm -f test.tmp > /dev/null 2>&1");
+}
+
+print "\nTEST SUITE #3 RESULTS\nPassed: $passed\nFailed: $failed\n\n";
+
+$failedtotal += $failed;
+$passedtotal += $passed;
+
+print "\n*** ALL TESTS COMPLETE ***\n\nTotal Passed: $passedtotal\nTotal Failed: $failedtotal\n\n";
diff --git a/history.txt b/history.txt
index af18a09ed..dcf551e83 100644
--- a/history.txt
+++ b/history.txt
@@ -1,4 +1,10 @@
-$Id: history.txt,v 1.133 2005/01/24 17:42:05 smeghead Exp $
+$Id: history.txt,v 1.134 2005/01/26 01:29:19 smeghead Exp $
+
+2005-01-26 smeghead
+ * Added a couple of scripts, i2ptest.sh and i2pbench.sh, to manage the core
+ tests and benchmarks.
+ * Routerconsole now builds under gcj 3.4.3.
+ * Corrected divide by zero error in TunnelId class under gcj (jrandom++).
2005-01-25 smeghead
* Tweaked some classes to enable gcj 3.4.3 to compile the router and