harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Zhang" <zhanghuang...@gmail.com>
Subject Re: [test] Jetty integration progress ? (was Re: [classlib] jetty based tests)
Date Thu, 17 Aug 2006 02:38:23 GMT
Hi folks,

I'd like to say something more about jetty integration. We should reach an
agreement on how to integrate/use jetty in Harmony. There are some concerns
I can image now:

1. Where to put jetty? support or luni module or somewhere else? It depends
on question 2.

2. How to use jetty? How many jetty instances are there? Singleton or
multiple instances? In other word, shall we start only one jetty server at
the beginning before running all tests? or will we start/destroy embedded
jetty server at will in any test case? Seems jetty supports both options.

3. How to write jetty based test?. Multi-thread network test always is a
problem to us. I found it's also hard to be theoretically.

According to the description above, I suggest put jetty in support module,
and encapsulate a class (i.e Support_JettyServer) with some public methods
for test writing (i.e getJettyPort(), setHandler(), set...). The advantage
of this approach hides all jetty details in support. Once jetty support
class is ready, all modules can write http tests in the same way.

Any suggestions are highly appreciated! Thanks!

On 8/1/06, Andrew Zhang <zhanghuangzhu@gmail.com> wrote:
>
>  Hi folks,
>
> I volunteer to work on excluded tests in luni module, most of which are
> dependent on external servers(http server, socks proxy and etc.).
>
> As we discussed some months earlier, we'd integrate Jetty to Harmony test
> framework for eliminating external http server, but seems no more progress.
>
> Any volunteer to do this job? :-)
>
> Thanks!
>
>
> On 5/23/06, Stepan Mishura <stepan.mishura@gmail.com > wrote:
> >
> > Hi George, Paulex,
> >
> > Thanks for your answers. As a preliminary result - your convinced me and
> > I'm
> > going to be volunteer to evaluate jetty integration to classlib test
> > suite.
> >
> > Do anybody work on integrating jetty http server to move net tests out
> > of
> > exclude list?
> >
> > Thanks,
> > Stepan.
> >
> > On 5/23/06, George Harley < george.c.harley@googlemail.com > wrote:
> > >
> > > Stepan Mishura wrote:
> > > > Hi George, Tim
> > > >
> > > > I'd like to clarify the following questions:
> > > > 1) Configuring
> > > > As I understood we say that the server is 'embedded' when we can
> > > > start/stop
> > > > it within Ant without additional configuration steps. And all we
> > need
> > > > to do
> > > > is just download required jars. Right?
> > > >
> > > > What about Eclipse users?
> > >
> > > Hi Stepan,
> > >
> > > In addition to be being start-able, stop-able and configurable from
> > Ant
> > > and XML config files, Jetty can also be embedded into the Java code of
> > a
> > > test case or test suite. Configuration, starting and stopping are all
> > > possible. Eclipse users should not be disadvantaged.
> > >
> > >
> > > >
> > > > 2) Time to run test suite
> > > > May be it is hard to estimate but anyway - will the test suite run
> > > > slow down
> > > > if we'll use jetty instead of mock objects? How much?
> > >
> > > Depends on configuration. Configure and start the server in the
> > setup()
> > > of a JUnit TesCase (and stopping the server in the teardown()) would
> > > obviously be slower than doing the equivalent in a JUnit TestSetup
> > > descendent. Start up is a lot less than half a second on my machine.
> > >
> > > Is there some performance benchmark for tests that is at risk here ?
> > >
> > >
> > > >
> > > > 3) Testing
> > > > Quoting Tim from 'local server thread': "There is no way to force a
> > > > server
> > > > to send you a chunked response using regular HTTP headers, so in
> > this
> > > > case
> > > > the server and client have an understanding that when the client
> > asks
> > > > for a
> > > > particular resource the server will send it back in chunks."
> > > >
> > > > With mock objects this can be done with no problems and HARMONY-164
> > > > demonstrates the possible way. Also are we going to create negative
> > > > tests,
> > > > for example, for broken server response? I think yes. Can jettyserver
> > > be
> > > > used for negative testing?
> > >
> > > Yes. You can send back any error.
> > >
> > >
> > > >
> > > > See other comments below
> > > >
> > > > On 5/22/06, George Harley wrote:
> > > >>
> > > >> Stepan Mishura wrote:
> > > >> > On 5/19/06, Tim Ellison wrote:
> > > >> >>
> > > >> >> Stepan Mishura wrote:
> > > >> >> <snip>
> > > >> >> > I'm OK only if we separate tests with Jetty from common
test
> > suite
> > > >> >> run.
> > > >> >>
> > > >> >> Why?
> > > >> >
> > > >> >
> > > >> > Because each external dependency complicates 'normal' test suite
> > > >> run ( I
> > > >> > don't want to face with situation when to run Harmony test suite
> > I
> > > >> > have to
> > > >> > configure and run 20 different external servers even they are
> > easy
> > > >> > configurable). As far as I remember we agreed to use mock objects
> > -
> > > so
> > > >> > let's
> > > >> > use them! For example, in this case there is no need in jettyserver.
> > > >> >
> > > >> > I'm not against 'jetty based tests' but I'd prefer to separate
> > such
> > > >> > tests.
> > > >> >
> > > >> > Thanks,
> > > >> > Stepan.
> > > >> >
> > > >>
> > > >> Hi Stepan,
> > > >>
> > > >> Just seen this note and think that my previous append on the "Re:
> > svn
> > > >> commit: r407752" thread sums up my thoughts. Allow me to quote
> > myself:
> > > >>
> > > >> <paste>
> > > >> Jetty or equivalent is a good basis for such local server stubs. It
> > is
> > > >> fast, it is lightweight,
> > > >
> > > >
> > > > Fast and lightweight as what?
> > > > I saw sometimes ago java server that has jar size 4k. And
> > > > jetty-6.0.0beta6.jar is 423k size.
> > > >
> > >
> > >
> > > Not sure of your point here. Is there some test file footprint
> > benchmark
> > > that is at risk here ? If there is a better, faster, more lightweight
> > > server that would suit our purposes then let's hear about it so that
> > we
> > > can investigate whether or not it may be used with our network tests.
> > >
> > > >
> > > >> it can be started and stopped very simply from
> > > >> within Ant (so that it only runs for the duration of a specified
> > batch
> > > >> of unit tests) and may also be completely controlled from Java test
> > > code
> > > >> so that we can configure its behaviour for any test case from
> > within
> > > >> that test case.
> > > >
> > > >
> > > > Good.
> > > >
> > > > It's architecture means that we do not have to run it as
> > > >> a complete web server but can stub out any aspect of its runtime
> > > >> behaviour we wish in order to suit the purposes of the test(s).
> > > >
> > > >
> > > > What about 'chunked response'? Can a testcase force jetty server to
> > > > send it
> > > > a chunked response?
> > >
> > > Yes. The API provides options to do this. Chunks are encoded as per
> > > RFC2616.
> > >
> > >
> > > Best regards,
> > > George
> > >
> > > >
> > > > I don't really understand why such network tests making use of a
> > small,
> > > >> embedded server running locally would need to be considered as
> > outside
> > > >> of the "normal test flow".
> > > >> </paste>
> > > >
> > > >
> > > > Because I consider adding jetty server as precedent for adding other
> > > > dependencies to the "normal test flow". I believe that "normal test
> > > flow"
> > > > should be fast and lightweight as much as possible. Each additional
> > > > dependency or configuration step adds a brick(even it light) to
> > > > developer's
> > > > large. As the result classlib test suite may become very slow and
> > hard
> > > to
> > > > configure. All I want is to understand - do we really need jettyserver
> > > > inside it.
> > > >
> > > > Thanks,
> > > > Stepan.
> > > >
> > > > We are not talking about an external server here and we are not
> > talking
> > > >> about developers having to carry out complex configuration
> > manoeuvres
> > > >> when running the tests. That is something that nobody wants. The
> > > >> motivation here is purely to get more of the java.net tests out of
> > the
> > > >> "excludes" sin bin.
> > > >>
> > > >> Best regards,
> > > >> George
> > > >>
> > > >>
> > > >> > Regards,
> > > >> >> Tim
> > > >> >>
> > > >> >> --
> > > >> >>
> > > >> >> Tim Ellison (t.p.ellison@gmail.com)
> > > >> >> IBM Java technology centre, UK.
> > > >> >>
> > > >> >>
> > > ---------------------------------------------------------------------
> > > >> >> Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > >> >> To unsubscribe, e-mail:
> > harmony-dev-unsubscribe@incubator.apache.org
> > > >> >> For additional commands, e-mail:
> > > >> harmony-dev-help@incubator.apache.org
> > > >> >>
> > > >> >>
> > > >> >
> > > >> >
> > > >>
> > > >>
> > > >>
> > ---------------------------------------------------------------------
> > > >> Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > >> To unsubscribe, e-mail:
> > harmony-dev-unsubscribe@incubator.apache.org
> > > >> For additional commands, e-mail:
> > harmony-dev-help@incubator.apache.org
> > > >>
> > > >>
> > > >
> > > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> > >
> > >
> >
> >
> > --
> > Thanks,
> > Stepan Mishura
> > Intel Middleware Products Division
> >
> > ------------------------------------------------------
> > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> >
> >
>
>
> --
> Andrew Zhang
> China Software Development Lab, IBM
>



-- 
Andrew Zhang
China Software Development Lab, IBM

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