harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Regis <xu.re...@gmail.com>
Subject Re: svn commit: r765837 - /harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java
Date Fri, 17 Apr 2009 10:42:18 GMT
RI has the different behaviors on Linux and Windows in this test case, and 
Harmony has the exactly the same behaviors, so I think our implementation is OK.

And there are some other similar cases in SocketTest, which failed on Linux but 
passed on Windows, I think it's why it is in  exclude.linux.x86.drl. If we fixed 
them, SocketTest could be moved from exclude list.


Tim Ellison wrote:
> 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
> 
> regisxu@apache.org 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()
>>       */
>>
>>
>>
> 


-- 
Best Regards,
Regis.

Mime
View raw message