harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@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 Sat, 18 Apr 2009 20:31:28 GMT
Regis wrote:
> 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.

It wasn't the fact that there is a difference that I object to here, but
the way you have achieved it does not fit in the Harmony architecture.

These types of differences are pushed into the native code.  I believe
that this should be done here too.

Regards,
Tim



> 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()
>>>       */
>>>
>>>
>>>
>>
> 
> 

Mime
View raw message