Is this necessary? I thought it was already fixed during M9 close down? I object to having platform specific Java code like this. We push these behavior differences into the native code.
Regards, Tim [email protected] wrote: > Author: regisxu > Date: Fri Apr 17 02:36:00 2009 > New Revision: 765837 > > URL: http://svn.apache.org/viewvc?rev=765837&view=rev > Log: > Apply fix for HARMONY-6092 > > Since SocketTest.test_getInputStream are failed both on RI and Harmony with > the same behaviors, fix the test case to pass on Linux. > > Modified: > > harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java > > Modified: > harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java > URL: > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java?rev=765837&r1=765836&r2=765837&view=diff > ============================================================================== > --- > harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java > (original) > +++ > harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java > Fri Apr 17 02:36:00 2009 > @@ -35,6 +35,7 @@ > import java.net.SocketTimeoutException; > import java.net.UnknownHostException; > import java.security.Permission; > +import java.util.Locale; > > import org.apache.harmony.luni.net.PlainSocketImpl; > > @@ -860,19 +861,55 @@ > > InputStream in = pingClient.getInputStream(); > in.read(new byte[42]); > - > - // Check EOF > - assertEquals(-1, in.read()); > + if (isUnix()) { > + try { > + in.read(); > + fail("Should throw SocketException"); > + } catch (SocketException e) { > + // expected > + } > + } else { > + // Check EOF > + assertEquals(-1, in.read()); > + } > > in.close(); > > - // No exception when reading a closed stream > - assertEquals(-1, in.read()); > + if (isUnix()) { > + try { > + in.read(); > + fail("Should throw SocketException"); > + } catch (SocketException e) { > + // expected > + } > + try { > + in.read(new byte[5]); > + fail("Should throw SocketException"); > + } catch (SocketException e) { > + // expected > + } > + } else { > + // No exception when reading a closed stream > + assertEquals(-1, in.read()); > + assertEquals(-1, in.read(new byte[5])); > + } > > pingClient.close(); > pingServer.close(); > } > > + private boolean isUnix() { > + String osName = System.getProperty("os.name"); > + > + // only comparing ASCII, so assume english locale > + osName = (osName == null ? null : > osName.toLowerCase(Locale.ENGLISH)); > + > + if (osName != null && osName.startsWith("windows")) { //$NON-NLS-1$ > + return false; > + } > + return true; > + } > + > /** > * @tests java.net.Socket#getKeepAlive() > */ > > >
