forked from I2P_Developers/i2p.i2p
* New buildTest and prepTest targets
* Fix UDPEndpoint usage in unit tests: - Restore receive() - Handle null UDPTransport * Fix UDPEndpointTestStandalone compilation
This commit is contained in:
15
build.xml
15
build.xml
@ -1292,20 +1292,29 @@
|
|||||||
<!-- end custom installers -->
|
<!-- end custom installers -->
|
||||||
|
|
||||||
<!-- unit tests -->
|
<!-- unit tests -->
|
||||||
<target name="updateTest" depends="prepupdate">
|
<target name="buildTest">
|
||||||
<ant dir="core/java/" target="jarTest" />
|
<ant dir="core/java/" target="jarTest" />
|
||||||
<copy file="core/java/build/i2ptest.jar" todir="pkg-temp/lib" />
|
<ant dir="router/java/" target="jarTest" />
|
||||||
<zip destfile="i2pupdate.zip" basedir="pkg-temp" />
|
<copy file="core/java/build/i2ptest.jar" todir="build" />
|
||||||
|
<copy file="router/java/build/routertest.jar" todir="build" />
|
||||||
</target>
|
</target>
|
||||||
|
<target name="prepTest" depends="prepupdate, buildTest">
|
||||||
|
<!-- overwrite i2p.jar and router.jar with the test versions -->
|
||||||
|
<copy file="build/i2ptest.jar" tofile="pkg-temp/lib/i2p.jar" overwrite="true" />
|
||||||
|
<copy file="build/routertest.jar" tofile="pkg-temp/lib/router.jar" overwrite="true" />
|
||||||
|
</target>
|
||||||
|
<target name="updateTest" depends="prepTest, zipit" />
|
||||||
<target name="junit.test" depends="buildProperties, jbigi" >
|
<target name="junit.test" depends="buildProperties, jbigi" >
|
||||||
<ant dir="core/java/" target="junit.test" />
|
<ant dir="core/java/" target="junit.test" />
|
||||||
<ant dir="router/java/" target="junit.test" />
|
<ant dir="router/java/" target="junit.test" />
|
||||||
</target>
|
</target>
|
||||||
<target name="scalatest.test" depends="buildProperties, jbigi" >
|
<target name="scalatest.test" depends="buildProperties, jbigi" >
|
||||||
<ant dir="core/java/" target="scalatest.test" />
|
<ant dir="core/java/" target="scalatest.test" />
|
||||||
|
<!-- note there are no router scala tests yet -->
|
||||||
<ant dir="router/java/" target="scalatest.test" />
|
<ant dir="router/java/" target="scalatest.test" />
|
||||||
</target>
|
</target>
|
||||||
<target name="test" depends="buildProperties, jbigi" >
|
<target name="test" depends="buildProperties, jbigi" >
|
||||||
|
<!-- both junit and scala -->
|
||||||
<ant dir="core/java/" target="test" />
|
<ant dir="core/java/" target="test" />
|
||||||
<ant dir="router/java/" target="test" />
|
<ant dir="router/java/" target="test" />
|
||||||
</target>
|
</target>
|
||||||
|
@ -258,7 +258,10 @@
|
|||||||
<fileset dir="../../reports/router/junit/" />
|
<fileset dir="../../reports/router/junit/" />
|
||||||
</replaceregexp>
|
</replaceregexp>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<!-- both junit and scala, but we have no scala tests yet -->
|
||||||
<target name="test" depends="junit.test"/>
|
<target name="test" depends="junit.test"/>
|
||||||
|
|
||||||
<!-- test reports -->
|
<!-- test reports -->
|
||||||
<target name="scalatest.report">
|
<target name="scalatest.report">
|
||||||
<junitreport todir="../../reports/router/scalatest">
|
<junitreport todir="../../reports/router/scalatest">
|
||||||
|
@ -31,6 +31,8 @@ import net.i2p.util.Log;
|
|||||||
/**
|
/**
|
||||||
* Generate compressed geoipv6.dat.gz file, and
|
* Generate compressed geoipv6.dat.gz file, and
|
||||||
* lookup entries in it.
|
* lookup entries in it.
|
||||||
|
*
|
||||||
|
* @since IPv6
|
||||||
*/
|
*/
|
||||||
class GeoIPv6 {
|
class GeoIPv6 {
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.i2p.router.transport.udp;
|
package net.i2p.router.transport.udp;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.net.DatagramSocket;
|
import java.net.DatagramSocket;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.Inet4Address;
|
import java.net.Inet4Address;
|
||||||
@ -25,6 +26,7 @@ class UDPEndpoint {
|
|||||||
private final boolean _isIPv4, _isIPv6;
|
private final boolean _isIPv4, _isIPv6;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @param transport may be null for unit testing ONLY
|
||||||
* @param listenPort -1 or the requested port, may not be honored
|
* @param listenPort -1 or the requested port, may not be honored
|
||||||
* @param bindAddress null ok
|
* @param bindAddress null ok
|
||||||
*/
|
*/
|
||||||
@ -49,10 +51,12 @@ class UDPEndpoint {
|
|||||||
throw new SocketException("SSU Unable to bind to a port on " + _bindAddress);
|
throw new SocketException("SSU Unable to bind to a port on " + _bindAddress);
|
||||||
}
|
}
|
||||||
_sender = new UDPSender(_context, _socket, "UDPSender");
|
_sender = new UDPSender(_context, _socket, "UDPSender");
|
||||||
_receiver = new UDPReceiver(_context, _transport, _socket, "UDPReceiver");
|
|
||||||
_sender.startup();
|
_sender.startup();
|
||||||
|
if (_transport != null) {
|
||||||
|
_receiver = new UDPReceiver(_context, _transport, _socket, "UDPReceiver");
|
||||||
_receiver.startup();
|
_receiver.startup();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public synchronized void shutdown() {
|
public synchronized void shutdown() {
|
||||||
if (_sender != null) {
|
if (_sender != null) {
|
||||||
@ -158,6 +162,25 @@ class UDPEndpoint {
|
|||||||
_sender.add(packet);
|
_sender.add(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blocking call to receive the next inbound UDP packet from any peer.
|
||||||
|
*
|
||||||
|
* UNIT TESTING ONLY. Direct from the socket.
|
||||||
|
* In normal operation, UDPReceiver thread injects to PacketHandler queue.
|
||||||
|
*
|
||||||
|
* @return null if we have shut down, or on failure
|
||||||
|
*/
|
||||||
|
public UDPPacket receive() {
|
||||||
|
UDPPacket packet = UDPPacket.acquire(_context, true);
|
||||||
|
try {
|
||||||
|
_socket.receive(packet.getPacket());
|
||||||
|
return packet;
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
packet.release();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear outbound queue, probably in preparation for sending destroy() to everybody.
|
* Clear outbound queue, probably in preparation for sending destroy() to everybody.
|
||||||
* @since 0.9.2
|
* @since 0.9.2
|
||||||
|
@ -38,7 +38,11 @@ public class UDPEndpointTestStandalone {
|
|||||||
_log.debug("Building " + i);
|
_log.debug("Building " + i);
|
||||||
UDPEndpoint endpoint = new UDPEndpoint(_context, null, base + i, null);
|
UDPEndpoint endpoint = new UDPEndpoint(_context, null, base + i, null);
|
||||||
_endpoints[i] = endpoint;
|
_endpoints[i] = endpoint;
|
||||||
|
try {
|
||||||
endpoint.startup();
|
endpoint.startup();
|
||||||
|
} catch (SocketException se) {
|
||||||
|
throw new RuntimeException(se);
|
||||||
|
}
|
||||||
I2PThread read = new I2PThread(new TestRead(endpoint), "Test read " + i);
|
I2PThread read = new I2PThread(new TestRead(endpoint), "Test read " + i);
|
||||||
I2PThread write = new I2PThread(new TestWrite(endpoint), "Test write " + i);
|
I2PThread write = new I2PThread(new TestWrite(endpoint), "Test write " + i);
|
||||||
//read.setDaemon(true);
|
//read.setDaemon(true);
|
||||||
|
Reference in New Issue
Block a user