harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "LvJimmy´╝îJing" <firep...@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 08:21:18 GMT
2007/4/19, Andrew Zhang <zhanghuangzhu@gmail.com>:
> On 4/19/07, Leo Li <liyilei1979@gmail.com> wrote:
> >
> > Personally I prefer Support_PortManager. As a tool, it can rescue us from
> > choosing specific port to use. Despite of its defect, I believe it is
> > possible to innovate it to fullfill our demand. From my experience, it
> > works
> > well on windows but has some problem on linux.
> >

I don't catch here, if Support_PortManager may cause problem, why
prefer Support_PortManager? :)

> > Furthermore, if we would like to use a specific port but not predefined at
> > compile time, as the case of Ruth, maybe we can adopt a method of ad-hoc,
> > that is to try a specific port, if it is occupied, try another till it
> > works.
>

In this special case, it may be workable (apply try...catch to ignore
exception that we've know and try to get the exception that we
excepted), but the code may be very ugly.

>
> I think at most we need a utility method:
> ServerSocket NetworkUtil.startServerSocket() {
>  return new ServerSocket(0);
> }
> Why do we need to:
> 1. open a server socket on free port
> 2. get the server socket port
> 3. close it
> 4. pass the port to the test case
> 5. the test case opens a server socket on this port
> Isn't it the same as:
> The test case opens a server socket on free port? Or did I missing
> something?
>

Ah yes I agreed. That's the poor method PortManger.getNextPortsForUDP,
and I've explained why this may cause problem.

> 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.
> > >
> > > 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
> > >
> > >
> > >
> >
> >
> > --
> > Leo Li
> > China Software Development Lab, IBM
> >
>
>
>
> --
> Best regards,
> Andrew Zhang
>


-- 

Best Regards!

Jimmy, Jing Lv
China Software Development Lab, IBM

Mime
View raw message