harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Zhang" <zhanghuang...@gmail.com>
Subject Re: [classlib][luni] new test in tests.api.java.net.SocketTest failed on my Windows XP sp2
Date Thu, 19 Apr 2007 09:02:02 GMT
On 4/19/07, LvJimmy´╝îJing <firepure@gmail.com> wrote:
>
> 2007/4/19, Andrew Zhang <zhanghuangzhu@gmail.com>:
> > On 4/19/07, Ruth Cao <ruoshen.c@gmail.com> wrote:
> > >
> > > Tim Ellison wrote:
> > > > Ruth Cao wrote:
> > > >
> > > >> You are right, Vladimir.
> > > >>
> > > >> It is just because the 'port' variable is set to 8080 and on some
> > > >> machines this port has already been occupied.  The test case will
> pass
> > > >> if we use Support_PortManager.getNextPort() on my side.
> > > >>
> > > >
> > > > Please don't use the PortManager, just open port 0 and let the OS
> > > > allocate a free port.  There are examples in the existing tests.
> > > >
> > > > Regards,
> > > > Tim
> > > >
> > > >
> > > Yes, I agree that we should use port 0 in almost all the test cases.
> > > However, it seems that this test case is a little bit special. It
> > > requires to initialize a ServerSocket to connect 0.0.0.0 after
> > > connecting localhost successfully.  If we use port 0 and 0.0.0.0 at
> the
> > > same time, the ServerSocket constructed will be invalid.
> >
> >
> > Sorry Ruth, what did you mean here? A server socket  will connect to
> > somewhere?
> >
> > Could you please explain the scenario a bit more clearly?
> >
>
> I may explain you the interesting scenario :)
> If we create a ServerSocket with localhost, port X (X is not zero),
> close it,  and create another ServerSocket with 0.0.0.0,port X, this
> process in RI is fine, but Harmony fails.
> If we create a ServerSocket with localhost, port 0, close it,  and
> create another ServerSocket with 0.0.0.0,port 0, this process both
> fails on RI and Harmony when create the second ServerSocket.


Thanks Jimmy, interesting. But  I wrote following test case which  runs well
against RI:
public void test() throws Exception {
        byte[] localAddress = {127,0,0,1};
        byte[] anyAddress = {0,0,0,0};
        InetAddress address = InetAddress.getByAddress(localAddress);
// create a server socket with localhost, port 0
        ServerSocket server = new ServerSocket(0, 5, address);
// close it
        server.close();
        address = InetAddress.getByAddress(anyAddress);
// create another server socket with 0.0.0.0, 0
        server = new ServerSocket(0, 5, address);
// close it
        server.close();
    }
Did I misuderstand the scenario?

You see these two process are not the same and so that we can not use
> port 0 in the test.
>
>
> > Thus, shall we assign a rarely-used port (e.g. 50000), or continue using
> > > Support_PortManager? Any ideas? Suggestions?
> > >
> > > --
> > > Regards,
> > >
> > > Ruth Cao
> > > China Software Development Lab, IBM
> > >
> > >
> > >
> >
> >
> > --
> > Best regards,
> > Andrew Zhang
> >
>
>
> --
>
> Best Regards!
>
> Jimmy, Jing Lv
> China Software Development Lab, IBM
>



-- 
Best regards,
Andrew Zhang

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message