6934585: TEST_BUG: java/nio/channels/AsynchronousSocketChannel/Basic.java
Reviewed-by: chegar
This commit is contained in:
parent
b0277a9631
commit
82adf1a224
@ -737,9 +737,6 @@ sun/net/www/protocol/http/DigestTest.java generic-all
|
|||||||
# Suspect many of these tests auffer from using fixed ports, no concrete
|
# Suspect many of these tests auffer from using fixed ports, no concrete
|
||||||
# evidence.
|
# evidence.
|
||||||
|
|
||||||
# Failing on Solaris x86 and Linux x86, filed 6934585
|
|
||||||
java/nio/channels/AsynchronousSocketChannel/Basic.java generic-all
|
|
||||||
|
|
||||||
# Occasionally Failing with java.lang.AssertionError on Windows X64
|
# Occasionally Failing with java.lang.AssertionError on Windows X64
|
||||||
# at sun.nio.ch.PendingIoCache.clearPendingIoMap(PendingIoCache.java:144)
|
# at sun.nio.ch.PendingIoCache.clearPendingIoMap(PendingIoCache.java:144)
|
||||||
#java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java windows-all
|
#java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java windows-all
|
||||||
@ -767,10 +764,6 @@ java/nio/channels/Selector/SelectWrite.java generic-all
|
|||||||
# Fails on Fedora 9 32bit times out
|
# Fails on Fedora 9 32bit times out
|
||||||
java/nio/channels/DatagramChannel/EmptyBuffer.java generic-all
|
java/nio/channels/DatagramChannel/EmptyBuffer.java generic-all
|
||||||
|
|
||||||
# Fails on Windows 2000, ExceptionInInitializerError
|
|
||||||
# in WindowsAsynchronousServerSocketChannelImpl.java:316
|
|
||||||
java/nio/channels/AsynchronousChannelGroup/Unbounded.java generic-all
|
|
||||||
|
|
||||||
# Fails on Windows 2000, times out
|
# Fails on Windows 2000, times out
|
||||||
java/nio/channels/FileChannel/Transfer.java generic-all
|
java/nio/channels/FileChannel/Transfer.java generic-all
|
||||||
|
|
||||||
@ -812,11 +805,12 @@ java/nio/channels/Selector/HelperSlowToDie.java generic-all
|
|||||||
# Timeouts etc. on Window
|
# Timeouts etc. on Window
|
||||||
java/nio/channels/AsyncCloseAndInterrupt.java windows-all
|
java/nio/channels/AsyncCloseAndInterrupt.java windows-all
|
||||||
|
|
||||||
# Gets java.lang.ExceptionInInitializerError on windows: (Windows 2000 only?)
|
# Gets java.lang.ExceptionInInitializerError on Windows 2000 (need XP or newer)
|
||||||
java/nio/channels/AsynchronousChannelGroup/Basic.java windows-5.0
|
java/nio/channels/AsynchronousChannelGroup/Basic.java windows-5.0
|
||||||
java/nio/channels/AsynchronousChannelGroup/GroupOfOne.java windows-5.0
|
java/nio/channels/AsynchronousChannelGroup/GroupOfOne.java windows-5.0
|
||||||
java/nio/channels/AsynchronousChannelGroup/Identity.java windows-5.0
|
java/nio/channels/AsynchronousChannelGroup/Identity.java windows-5.0
|
||||||
java/nio/channels/AsynchronousChannelGroup/Restart.java windows-5.0
|
java/nio/channels/AsynchronousChannelGroup/Restart.java windows-5.0
|
||||||
|
java/nio/channels/AsynchronousChannelGroup/Unbounded.java windows-5.0
|
||||||
java/nio/channels/AsynchronousDatagramChannel/Basic.java windows-5.0
|
java/nio/channels/AsynchronousDatagramChannel/Basic.java windows-5.0
|
||||||
java/nio/channels/AsynchronousFileChannel/Lock.java windows-5.0
|
java/nio/channels/AsynchronousFileChannel/Lock.java windows-5.0
|
||||||
java/nio/channels/AsynchronousServerSocketChannel/Basic.java windows-5.0
|
java/nio/channels/AsynchronousServerSocketChannel/Basic.java windows-5.0
|
||||||
|
@ -196,18 +196,16 @@ public class Basic {
|
|||||||
|
|
||||||
System.out.println("-- connect to non-existent host --");
|
System.out.println("-- connect to non-existent host --");
|
||||||
|
|
||||||
// test failure
|
// test that failure to connect closes the channel
|
||||||
InetAddress badHost = InetAddress.getByName("1.2.3.4");
|
|
||||||
if (!badHost.isReachable(10*1000)) {
|
|
||||||
|
|
||||||
ch = AsynchronousSocketChannel.open();
|
ch = AsynchronousSocketChannel.open();
|
||||||
try {
|
try {
|
||||||
ch.connect(new InetSocketAddress(badHost, 9876)).get();
|
ch.connect(genSocketAddress()).get();
|
||||||
throw new RuntimeException("Connection should not be established");
|
|
||||||
} catch (ExecutionException x) {
|
} catch (ExecutionException x) {
|
||||||
}
|
// failed to establish connection
|
||||||
if (ch.isOpen())
|
if (ch.isOpen())
|
||||||
throw new RuntimeException("Channel should be closed");
|
throw new RuntimeException("Channel should be closed");
|
||||||
|
} finally {
|
||||||
|
ch.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
server.close();
|
server.close();
|
||||||
@ -219,12 +217,8 @@ public class Basic {
|
|||||||
AsynchronousSocketChannel ch;
|
AsynchronousSocketChannel ch;
|
||||||
|
|
||||||
// asynchronous close while connecting
|
// asynchronous close while connecting
|
||||||
InetAddress rh = InetAddress.getByName("1.2.3.4");
|
|
||||||
if (!rh.isReachable(3000)) {
|
|
||||||
InetSocketAddress isa = new InetSocketAddress(rh, 1234);
|
|
||||||
|
|
||||||
ch = AsynchronousSocketChannel.open();
|
ch = AsynchronousSocketChannel.open();
|
||||||
Future<Void> result = ch.connect(isa);
|
Future<Void> connectResult = ch.connect(genSocketAddress());
|
||||||
|
|
||||||
// give time to initiate the connect (SYN)
|
// give time to initiate the connect (SYN)
|
||||||
Thread.sleep(50);
|
Thread.sleep(50);
|
||||||
@ -232,14 +226,13 @@ public class Basic {
|
|||||||
// close
|
// close
|
||||||
ch.close();
|
ch.close();
|
||||||
|
|
||||||
// check that AsynchronousCloseException is thrown
|
// check that exception is thrown in timely manner
|
||||||
try {
|
try {
|
||||||
result.get();
|
connectResult.get(5, TimeUnit.SECONDS);
|
||||||
throw new RuntimeException("Should not connect");
|
} catch (TimeoutException x) {
|
||||||
|
throw new RuntimeException("AsynchronousCloseException not thrown");
|
||||||
} catch (ExecutionException x) {
|
} catch (ExecutionException x) {
|
||||||
if (!(x.getCause() instanceof AsynchronousCloseException))
|
// expected
|
||||||
throw new RuntimeException(x);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("-- asynchronous close when reading --");
|
System.out.println("-- asynchronous close when reading --");
|
||||||
@ -811,4 +804,21 @@ public class Basic {
|
|||||||
bufs[i] = genBuffer();
|
bufs[i] = genBuffer();
|
||||||
return bufs;
|
return bufs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// return random SocketAddress
|
||||||
|
static SocketAddress genSocketAddress() {
|
||||||
|
StringBuilder sb = new StringBuilder("10.");
|
||||||
|
sb.append(rand.nextInt(256));
|
||||||
|
sb.append('.');
|
||||||
|
sb.append(rand.nextInt(256));
|
||||||
|
sb.append('.');
|
||||||
|
sb.append(rand.nextInt(256));
|
||||||
|
InetAddress rh;
|
||||||
|
try {
|
||||||
|
rh = InetAddress.getByName(sb.toString());
|
||||||
|
} catch (UnknownHostException x) {
|
||||||
|
throw new InternalError("Should not happen");
|
||||||
|
}
|
||||||
|
return new InetSocketAddress(rh, rand.nextInt(65535)+1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user