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 Mon, 20 Apr 2009 03:15:08 GMT
Tim Ellison wrote:
> 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.

Our tests are all written in java, I think it's better to keep it. How about 
move these platform depended tests to platform directory, like UnixSocketTest or 
WinSocketTest?

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


-- 
Best Regards,
Regis.

Mime
View raw message