Paulex,

Great!

Thank you very much !

Best regards,
Andrew

On 6/29/06, Paulex Yang <[EMAIL PROTECTED]> wrote:

If no one objects, I'm volunteer to re-layout the nio module's test
according to our test convention proposal to accommodate the platform
dependent tests.

Jimmy, Jing Lv wrote:
> Andrew Zhang wrote:
>> Hello everybody,
>>
>> I noticed there are 8 FIXMEs in SocketChannelTest, which are mainly
>> caused
>> by platform differences.
>>
>> Take following FIXME as example:
>>
>>
>>    public void testCFII_ServerStartLater_NonBlock() throws Exception {
>>        // ensure
>>        ensureServerClosed();
>>        this.channel1.configureBlocking(false);
>>        statusNotConnected_NotPending();
>>        // connect
>>        assertFalse(this.channel1.connect(localAddr1));
>>        statusNotConnected_Pending();
>>
>>        ensureServerOpen();
>>
>>        try {
>>            assertFalse(this.channel1.finishConnect());
>>            statusNotConnected_Pending();
>>            this.channel1.close();
>>        } catch (ConnectException e) {
>>            // FIXME: assertEquals(e.getMessage(), "Connection
refused");
>>        }
>>    }
>> The process of this test looks like:
>> client socket connect (server is closed) -> open server ->
>> finishConnect .
>>
>> RI acts differently on windows and Linux:
>> On windows, finishConnect returns false.
>> On Linux, finishConnect throws ConnectException instead of returning
>> false.
>>
>> and Harmony acts the exactly SAME as RI.
>>
>
> Deeply trace into Harmony code, I find it is the difference of
> windows/Linux system call. In both platform the test try to call a
> select to detect whether connected, however the return value differs,
> (Linux return a value means "connect refused" ,which cause a
> exception). I believe Harmony is correct in code as it behaves the
> same as RI.
>
> Maybe the testcase shall be refactored, I remember there's discussion
> on mailing but draw no good conclusion, though there are 3 idea about
> platform dependent testcase in my memory:
> 1. add it to platform dependent list, like Harmony's exclude list, run
> only on certain platform. Is it Mark or George's idea?
> 2. check platform in the testcase and run, e.g., check system property
> "OS.name". But it seems a bad practice;
> 3. remove them all until we find a better way.
> IMO, the first way suggests here is reasonable, but need a
> modification on build.xml. Otherwise let's remove them until we find a
> better way.
>
> However it is very interesting, Java says it "build once, run
> everywhere", but it does not always appear the same in the same
> operation :)
>
>> Could anyone give some suggestions on such platform dependent tests?
>> Remove them? or other solutions?
>>
>> Personally,  I prefer to remove these tests.
>> Any suggestions are highly appreciated!
>>
>> Thanks!
>>
>> Best regards,
>>
>>
>
>


--
Paulex Yang
China Software Development Lab
IBM



---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Andrew Zhang
China Software Development Lab, IBM

Reply via email to