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] java.net.ServerSocketTest fails - need help
Date Fri, 08 Dec 2006 01:28:57 GMT
On 12/8/06, Zakharov, Vasily M <vasily.m.zakharov@intel.com> wrote:
>
> Andrew,
>
> Sure, we can reserve some port, but it means that we would experience
> occasional fails of the test from time to time, that's not very good.


why would we experience occasional fails? because of port conflict?
If so, I think it doesn't happen on our build system since we know some
fixed ports should be reserved.
And we'll document it in "how to run Harmony test" tutorial. I think most
developers are willing to reserve some unknown ports for running Harmony
test (don't tell them to close msn/gtalk/ie/firefox... :))

Probably we may check the port using ServerSocket before testing?
> It's acceptance, not compliance testing, look like it's not a big
> problem.
>
> Also, for all tests except the test_setReuseAddressZ(),
> we way check the port by using Socket, not ServerSocket.


Then how to verify Socket functionality? :)

So, I'd suggest the following measures:
>
> - For all tests, that could use port 0, use port 0.
> By the way, is there a chance that asking port 0 would return a
> TIME_WAIT port
> that cannot be reused?


It's complicated... even if some java api returns a TIME_WAIT port, how can
we guarantee that the port is still  TIME_WAIT when running setReuseAddress
code?

- For all tests except test_setReuseAddressZ() use Socket to verify if
> the port is free.


theoretically, it doesn't 100% solve port confliction either. What if a port
is occupied by other application after Socket test and before test code? :)


- For test_setReuseAddressZ() test, use ServerSocket to verify the port
> is free
> or use the fixed port number from the end of port space (6xxxx).


Since we have to use some fixed port, why not use it for simplicity?

Andrew, what do you think?


To sum up, IMHO, reversing some ports for running test is acceptable and
simple. :)

Vasily
>
>
>
> -----Original Message-----
> From: Andrew Zhang [mailto:zhanghuangzhu@gmail.com]
> Sent: Wednesday, December 06, 2006 12:59 PM
> To: dev@harmony.apache.org
> Subject: Re: [classlib][luni] java.net.ServerSocketTest fails - need
> help
>
> On 12/6/06, Alexey Petrenko <alexey.a.petrenko@gmail.com> wrote:
> >
> > I do not think that reserving one of widely used ports for tests is a
> good
> > idea.
> > Since user can run http server on his machine for example. And I do
> > not think that he will be happy to switch it off each time.
> >
> > I think that we can reserve some port near the end of the port space.
> > Somethong like 63527 or so.
>
>
> Exactly! Does Harmony have lucky number? :)
>
> Another approach is to try another port if ServerSocket reports that
> > the port is busy (I do not remember does ServerSocket throw different
> > exception for busy port or not...)
>
>
> But it's a test for ServerSocket. We have to know whether this port is
> used
> before testing ServerSocket.
>
> For other tests, we've agreed to use port 0 to get a 100% free port.
> Sounds
> reasonable?
>
> SY, Alexey
>
> 2006/12/6, Tony Wu <wuyuehao@gmail.com>:
> > > I think it is reasonable if some essential configuration should be
> > > done at first when running harmony tests, especially in java.net. My
> > > opinion is to fix some regular used port, like 80, 8080, etc. Users
> > > should guarantee that these ports are available when running
> testcases
> > > (we could document this in our instruction for running test).
> > >
> > >
> > > On 12/6/06, Andrew Zhang <zhanghuangzhu@gmail.com> wrote:
> > > > On 12/6/06, Zakharov, Vasily M <vasily.m.zakharov@intel.com>
> wrote:
> > > > >
> > > > >
> > > > > > oh... Interesting. It's the test for ServerSocket. Some tests
> like
> > > > > > constructor test have to test not only 0, but also specified
> port.
> > > > > > Nevertheless, I think it's ok to use port 0 for the case
> described
> > in
> > > > > > Harmony-2338. Comments?
> > > > >
> > > > > That's exactly the problem - you should test how the
> constructors
> > > > > (and methods like bind()) handle the specified port numbers, but
> for
> > > > > that you have to get those numbers fronm somewhere.
> > > >
> > > >
> > > > So shall we reserve a port for running Harmony test and document
> it?
> > > >
> > > > Using port 0 makes the test running, but reduces it's testing
> value.
> > > > > So it's a give&take solution.
> > > >
> > > >
> > > > Agree.
> > > >
> > > > Vasily
> > > > >
> > > > > -----Original Message-----
> > > > > From: Andrew Zhang [mailto:zhanghuangzhu@gmail.com]
> > > > > Sent: Wednesday, December 06, 2006 7:33 AM
> > > > > To: dev@harmony.apache.org
> > > > > Subject: Re: [classlib][luni] java.net.ServerSocketTest fails -
> need
> > > > > help
> > > > >
> > > > > On 12/6/06, Andrew Zhang <zhanghuangzhu@gmail.com> wrote:
> > > > > >
> > > > > >
> > > > > >
> > > > > > On 12/6/06, Zakharov, Vasily M <vasily.m.zakharov@intel.com>
> > wrote:
> > > > > > >
> > > > > > >
> > > > > > > I've investigated the
> > > > > http://issues.apache.org/jira/browse/HARMONY-2338
> > > > > > > issue,
> > > > > > > the detailed description of the problem is available at
the
> JIRA
> > > > > page.
> > > > > > >
> > > > > > > Could anyone qualified in java.net please look into it
and
> > suggest
> > > > > how
> > > > > > > this should be fixed?
> > > > > > >
> > > > > > > There's a problem with tests.api.java.net.ServerSocketTest
> test
> > > > > design
> > > > > > > that uses "random" ports for testing and fails when those
> ports
> > > > > happen
> > > > > > > to be occupied by other applications.
> > > > > >
> > > > > >
> > > > > > Hi Zakharov, I think we've agreed to use port 0 to select a
> free
> > port
> > > > > in
> > > > > > test case.
> > > > > >
> > > > > > But we're doing this lazily. I'll fix ServerSocketTest soon.
> > Thanks!
> > > > > >
> > > > >
> > > > > oh... Interesting. It's the test for ServerSocket. Some tests
> like
> > > > > constructor test have to test not only 0, but also specified
> port.
> > > > > Nevertheless, I think it's ok to use port 0 for the case
> described
> > in
> > > > > Harmony-2338. Comments?
> > > > >
> > > > > I see many apparent possible fixes for the problem, but none of
> them
> > > > > > > looks good enough to implement immediately - they all have
> > drawbacks
> > > > > and
> > > > > > >
> > > > > > > I'm not a java.net guru to judge which of those drawbacks
> are
> > > > > essential
> > > > > > > and which are not.
> > > > > > >
> > > > > > > Thank you!
> > > > > > >
> > > > > > > Vasily Zakharov
> > > > > > > Intel Enterprise Solutions Software Division
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Best regards,
> > > > > > Andrew Zhang
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Best regards,
> > > > > Andrew Zhang
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Best regards,
> > > > Andrew Zhang
> > > >
> > > >
> > >
> > >
> > > --
> > > Tony Wu
> > > China Software Development Lab, IBM
> > >
> >
>
>
>
> --
> Best regards,
> Andrew Zhang
>



-- 
Best regards,
Andrew Zhang

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